Начало | Python-форум | Python и Vim | Буква Ё | Формат RTF

readable RTF Система Orphus

Автор: Евгений Миньковский, 8 декабря 2003 г.

Почему?

Существует много хороших способов обработки текста при помощи разнообразных языков программирования. Тут уже упоминались Python и Perl, есть и другие, но роднит их одна общая черта: все они работают с простым текстом. Ни один из них не может непосредственно работать с каким-нибудь закрытым форматом вроде формата «Microsoft Word», который и форматом-то назвать трудно, так как он меняется от версии к версии настолько катастрофично, что даже сама компания Microsoft не в состоянии обеспечить совместимость между различными версиями своих продуктов. Между тем только слепой не видит, что пользователей ворованного програмного продукта «Microsoft Word» немало. Бесполезно объяснять этим людям, что они неправы, хотя изъять у них те деньги, что они украли у Билли Гейтса было бы поучительно.

Выходов из этой ситуации как минимум два:

Как?

Формат RTF открыт. Его описание можно найти на сайте Microsoft в формате, который невозможно прочитать не имея на своей машине Word'а, или в формате help файла для текстового редактора vim который можно читать чем угодно, далеко не только vim'ом. Мы можем работать с форматом RTF не нарушая законодательства. Внутри файла в формате RTF символы отсутствующие в таблице latin-1 представлены в шестнадцатеричных кодах. В большинстве случаев, если мы заменим эти коды на соответствующие буквы, RTF не испортится, но станет вполне читаем.

Пример

[...пропущено...]
\par \page }{\f17\fs28 Дорогие ребята! \par }\pard \s15\qj\fi709\nowidctlpar\widctlpar\adjustright {\f17\fs28 В этой книге вам предлагаются интересные математические задачи, к которым даны подсказки, решения и ответы. \par Не обязательно решать всё подряд. Если какая-нибудь задача показалась вам слишком трудной или неинтересной}{\f0\fs28 \u8722- }{\f17\fs28 можете ее пропустить. Не огорчайтесь,
[...пропущено...]

Такой текст нетрудно обрабатывать различными скриптами, например расставить в нём букву Ё, при помощи одного из скриптов предлагаемых на этом сайте. Ещё раз подчеркну, что обратного преобразования не требуется: приведённый здесь RTF корректен с точки зрения формата и нормально воспринимается программой Microsoft Word (настолько, насколько эта программа вообще в состоянии что-то воспринимать).

Использование

В командной строке скажите:
[python] readablertf.py [опции] файлы и/или директории

Утилита изготовляет читабельные RTF файлы. Если указана директория, будут обработаны все RTF файлы в ней, Если указаны файлы, то будут обработаны они. Таким образом, чтобы обработать все файлы в текущем каталоге, надо сказать:

readablertf.py .

Опции:

  • -h, --help — Показать справку
  • -eENCODING, --rtf-encoding=ENCODING — Внутренняя кодировка RTF файла (по умолчанию cp1251)
  • -r, --recursive — Рекурсивно обрабатывать каталоги производя поиск в поддиректориях
  • -n, --no-backup — Не создавать резервных копий.
  • -q, --quiet — Работать молча
  • -v, --version — Напечатать номер версии и выключиться, этот номер должен присутствовать во всех багрепортах.

    Скачать

    readablertf.py текущая версия 0.1


  • Начало положено глубокой осенью 2003 года, 28 ноября... © Анабар | Vasily Ivanov | outerspace[at]anabar[dot]ru