Подтвердить что ты не робот

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

Как я могу программно преобразовать документы RTF в PDF

4b9b3361

Ответ 1

OpenOffice.org может быть запущен в режиме сервера (т.е. без какого-либо графического интерфейса), может читать RTF файлы и выводить файлы PDF.

Ответ 2

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

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

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

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

ИЗМЕНИТЬ

Вот более старое сообщение, которое имеет некоторую общность с вашим вопросом.


РЕДАКТИРОВАТЬ 2

Из ваших комментариев видно, что вы находитесь в Linux и открываете либо С++, либо Java. Определенно использовать вариант 2.

  • JODConverter (Java): библиотека позаботится о нерестинге OpenOffice в режиме безглавых и говорит Uno к ней от вашего имени. Вы предоставляете JODConverter имя входного и выходного файлов, а также типы ввода и вывода (например, rtf и pdf), и когда он возвращается к вам, выходной файл готов.
  • С++: вы можете использовать fork + exec one (или больше для балансировки нагрузки). Экземпляры 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.

Ответ 3

Четыре года опоздали на вечеринку здесь, но я использую Ted в своем веб-приложении. Я генерирую RTF программно, а затем использую rtf2pdf.sh script, включенный в пакет, для создания PDF. Раньше я пытался OOo и unoconv, но Тед оказался быстрее и надежнее в своем приложении.

Ответ 4

Используйте PDFCreator, бесплатный pdf-принтер. Просто распечатайте в формате pdf. Вы можете управлять этим через COM. Пример кода находится в папке COM каталога установки.

Ответ 5

PDFCreator для окон является самым простым для отдельных документов.

Также возможно автоматизировать создание PDF для больших наборов документов путем преобразования их в XML и использования XSLT и XSL-FO. Для этого есть множество учебных пособий.

Для конкретного языка, такого как python, существуют библиотеки для вывода в PDF довольно тривиально.

Единственным преимуществом XML над другими более простыми решениями является расширяемость. Вы также можете программно выводить свой документ в формате RTF, HTML, TXT или практически в любом другом текстовом формате.

Ответ 6

LibreOffice может конвертировать RTF-документы в PDF через командную строку.

Здесь указаны инструкции по установке на CentOS.

И это пример, чтобы инициировать преобразование из кода PHP:

<?php shell_exec('libreoffice4.2 --headless --invisible --norestore --convert-to pdf test.rtf'); ?>

Ответ 7

PrimoPDF. Он действует как виртуальный принтер, поэтому вы просто печатаете его, а выталкиваете PDF файл.