Ответ 1
OpenOffice.org может быть запущен в режиме сервера (т.е. без какого-либо графического интерфейса), может читать RTF файлы и выводить файлы PDF.
Как я могу программно преобразовать документы RTF в PDF
OpenOffice.org может быть запущен в режиме сервера (т.е. без какого-либо графического интерфейса), может читать RTF файлы и выводить файлы PDF.
У вас есть несколько параметров в зависимости от:
Вот несколько вариантов:
ИЗМЕНИТЬ
Вот более старое сообщение, которое имеет некоторую общность с вашим вопросом.
РЕДАКТИРОВАТЬ 2
Из ваших комментариев видно, что вы находитесь в Linux и открываете либо С++, либо Java. Определенно использовать вариант 2.
JODConverter
(Java): библиотека позаботится о нерестинге OpenOffice
в режиме безглавых и говорит Uno
к ней от вашего имени. Вы предоставляете JODConverter
имя входного и выходного файлов, а также типы ввода и вывода (например, rtf и pdf), и когда он возвращается к вам, выходной файл готов.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
.
Четыре года опоздали на вечеринку здесь, но я использую Ted в своем веб-приложении. Я генерирую RTF программно, а затем использую rtf2pdf.sh
script, включенный в пакет, для создания PDF. Раньше я пытался OOo и unoconv, но Тед оказался быстрее и надежнее в своем приложении.
Используйте PDFCreator, бесплатный pdf-принтер. Просто распечатайте в формате pdf. Вы можете управлять этим через COM. Пример кода находится в папке COM каталога установки.
PDFCreator для окон является самым простым для отдельных документов.
Также возможно автоматизировать создание PDF для больших наборов документов путем преобразования их в XML и использования XSLT и XSL-FO. Для этого есть множество учебных пособий.
Для конкретного языка, такого как python, существуют библиотеки для вывода в PDF довольно тривиально.
Единственным преимуществом XML над другими более простыми решениями является расширяемость. Вы также можете программно выводить свой документ в формате RTF, HTML, TXT или практически в любом другом текстовом формате.
LibreOffice может конвертировать RTF-документы в PDF через командную строку.
Здесь указаны инструкции по установке на CentOS.
И это пример, чтобы инициировать преобразование из кода PHP:
<?php shell_exec('libreoffice4.2 --headless --invisible --norestore --convert-to pdf test.rtf'); ?>
PrimoPDF. Он действует как виртуальный принтер, поэтому вы просто печатаете его, а выталкиваете PDF файл.
Посмотрите PDF-принтер