テキストを RTF に変換する

色付けや装飾をしないと余り意味が無いわけですが(^^;
入力は UTF-8 なテキストを stdin から、出力 stdout となっています.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from sys import stdin, stdout
write = stdout.write

font_name = u'MS Pゴシック'.encode('cp932')
font_size = 10

def rtf_encode(s):
  result = ""
  for c in s:
    if ord(c) > 0x7f:
      result += "\\'%x" % ord(c)
    else:
      if c in ['\\', '{', '}']:
        result += '\\'
      result += c
  return result

write(r'{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset128 %s;}}' % rtf_encode(font_name))
write('\r\n')
write(r'\viewkind4\uc1\pard\lang1041\f0\fs%d ' % (font_size * 2))
for s in stdin:
  write(rtf_encode(s.rstrip('\r\n').decode('utf-8').encode('cp932')))
  write('\\par\r\n')
write('}\r\n')