Есть ли бесплатный способ конвертировать RTF в PDF?
Ответ 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 файл.
Ответ 8
Посмотрите PDF-принтер