pyrtf3 - python rtf writer




Есть ли модуль Python для преобразования RTF в обычный текст? (6)

В идеале, мне нужен модуль или библиотека, которая не требует доступа суперпользователя к установке; У меня ограниченные привилегии в моей рабочей среде.


OpenOffice имеет считыватель RTF. Вы можете использовать python для скрипта OpenOffice, см. Здесь для получения дополнительной информации .

Вероятно, вы можете попробовать использовать волшебный ком-объект в Windows для чтения всего, что пахнет ms-двоичным. Я бы не рекомендовал этого.

На самом деле синтаксический анализ необработанных данных, вероятно, будет не очень сложным, см. Этот пример, написанный в .bat / QBasic.

DocFrac - бесплатный конвертер с открытым исходным кодом между RTF, HTML и текстом. Доступны платформы Windows, Linux, ActiveX и DLL. Вероятно, будет довольно легко обернуть его в python.

RTF::TEXT::Converter - расширение Perl для преобразования RTF в текст . (если у вас есть проблемы с DocFrac).

Официальный формат форматированного текстового формата (RTF), версия 1.7, Microsoft.

Удачи (с ограниченными привилегиями в вашей рабочей среде).



И наоборот, если вы хотите легко писать RTF с Python, вы можете использовать сторонний модуль rtflib . Это довольно новый и незавершенный модуль, но все же очень мощный и полезный. Ниже приведен пример, который пишет «привет мир» в расширенном тексте в RTF под названием helloworld.rtf. Это очень примитивный пример, и модуль также можно использовать для добавления цветов, курсива, таблиц и многих других аспектов богатого текста в файлы RTF.

from rtflib import *
file = RTF("helloworld.rtf")
file.startfile()
file.addstrict()
file.addtext("hello world")
file.writeout()

Существует хорошая библиотека pyrtf-ng для универсальной обработки RTF.


Я столкнулся с одним и тем же, и я пытался сам его закодировать. Это не так просто, но вот что я имел, когда решил пойти на приложение с командной строкой. Его рубин, но вы можете легко адаптироваться к python. Есть мусор, чтобы очистить, но вы можете увидеть более или менее идею.

f = File.open('r.rtf','r')
 b=0
 p=false
 str = ''
 begin
    while (char = f.readchar)
        if char.chr=='{'
   b+=1 
   next
  end
        if char.chr=='}'
   b-=1 
   next
  end
  if char.chr=='\\'
   p=true
   next
  end
  if p==true && (char.chr==' ' or char.chr=='\n' or char.chr=='\t' or char.chr=='\r')
   p=false 
   next
  end
  if p==true && (char.chr=='\'')
#this is the source of my headaches. you need to read the code page from the header and encode this.
   p=false 
   str << '#'
   next
  end
  next if b>2
  next if p
  str << char.chr
    end
rescue EOFError
end
f.close

Я только что наткнулся на pyrtflib - там не так много (какой-либо) документации, это своего рода случай установки, а затем с помощью встроенной функции help (), чтобы узнать, что доступно и что все делает.

Сказав, что в моем маленьком пробном запуске его функции rtf.Rtf2Html.getHtml () он прошел достаточно хорошо. Я не пробовал функцию Rtf2Txt, но, учитывая более простой характер преобразования rtf в открытый текст, он должен делать все, что я ожидал.







rtf