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

17

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

    
задан user63898 25.02.2009 в 16:18
источник

8 ответов

17

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

ответ дан Joachim Sauer 25.02.2009 в 16:47
источник
14

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

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

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

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

ИЗМЕНИТЬ

Вот более старая должность который имеет некоторую общность с вашим вопросом.

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

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

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

    
ответ дан vladr 25.02.2009 в 17:25
источник
3

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

    
ответ дан Mark 08.11.2013 в 14:26
источник
2

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

    
ответ дан jle 25.02.2009 в 16:21
источник
2

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

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

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

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

    
ответ дан Jon W 25.02.2009 в 16:33
источник
2

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

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

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

<?php shell_exec('libreoffice4.2 --headless --invisible --norestore --convert-to pdf test.rtf'); ?>
    
ответ дан shasi kanth 04.04.2014 в 11:59
источник
0

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

    
ответ дан Steve Melnikoff 26.02.2009 в 00:26
источник
0

Посмотрите принтер PDF

    
ответ дан 25.03.2009 в 14:25
источник