Есть ли бесплатный способ конвертировать RTF в PDF?

У вас есть несколько вариантов в зависимости richtextformat от:

  • платформы, на которых будет работать ваше приложение.
  • будет ли ваше приложение серверным (например, веб-сервисом, который вы настроили один раз, а затем он запускается) или широко доступным настольным приложением (например, чем-то, что должно быть легко загружено и установлено многими людьми)
  • готовы ли вы приложить немного или больше усилий по программированию, чтобы решение заработало.
  • гибки ли вы в выборе языка программирования, который вы будете использовать?

Вот несколько вариантов:

  1. PDFCreator + COM
    • Только для Windows
    • подходит как для настольных, так и для серверных приложений.
    • средний объем программирования.
    • любой язык, на котором вы можете говорить на COM.
  2. OpenOffice (+ JODConverter - необязательно)
    • Кросс-платформенный (Windows, Linux и т. д.)
    • подходит для серверных приложений, так как OpenOffice требует загрузки более 100 МБ
    • низкие затраты на программирование
    • Java (при использовании JODConverter) или любой язык, который может взаимодействовать с OpenOffice's UNO
  3. IText + Apache POI
    • Кросс-платформенный (Windows, Linux и т. д.)
    • подходит как для настольных, так и для серверных приложений.
    • большие усилия по программированию
    • Java

ИЗМЕНИТЬ

Вот rtf older post, который имеет некоторое rtf сходство с вашим вопросом.


ИЗМЕНИТЬ 2

Из rtf ваших комментариев я вижу, что richtextformat вы работаете в Linux и открыты rtf для C++ или Java. Обязательно используйте вариант 2.

  • JODConverter (Java): библиотека заботится о создании OpenOffice в режиме без заголовка и разговоре с ним Uno от вашего имени. Вы предоставляете JODConverter имя файла ввода и вывода, а также типы ввода и вывода (например, rtf и pdf), и когда он возвращается вам, выходной файл готов.
  • C++: вы можете разветвить + выполнить один (или несколько, для балансировки нагрузки) экземпляров OpenOffice в автономном режиме (soffice будет прослушивать запросы UNO на сокете, например, порт 8100). В вашем приложении используйте Uno/CPP, чтобы проинструктировать OpenOffice о необходимости выполнить преобразование так же, как это делает JODConverter (см. исходный код JODConverter, чтобы узнать, как это сделать.)

/opt/openoffice.org3/program/soffice.bin \
-accept=socket,host=127.0.0.1,port=8100;urp; \
-headless -nocrashreport -nodefault \
-nolockcheck -nologo -norestore

Я успешно использую JODConverter из приложения Java для преобразования различных типов документов (некоторые документы, динамически создаваемые из шаблонов) в pdf.

pdf

rtf

2022-09-13T03:10:12+00:00
Вопросы с похожей тематикой, как у вопроса:

Есть ли бесплатный способ конвертировать RTF в PDF?