que - ¿Hay una manera libre de convertir RTF a PDF?
rtf online (8)
Cuatro años tarde a la fiesta aquí, pero uso Ted en mi aplicación web. rtf2pdf.sh
RTF programáticamente, luego uso el script rtf2pdf.sh
incluido en el paquete para generar el PDF. Probé OOo y unoconv anteriormente, pero Ted demostró ser más rápido y más confiable en mi aplicación.
LibreOffice puede convertir documentos RTF a PDF a través de la línea de comandos.
Here están las instrucciones para instalarlo en CentOS.
Y este es un ejemplo para iniciar la conversión desde el código PHP:
<?php shell_exec(''libreoffice4.2 --headless --invisible --norestore --convert-to pdf test.rtf''); ?>
Mira la impresora PDF
Tienes una serie de opciones dependiendo de:
- las plataformas en las que se ejecutará su aplicación
- si su aplicación será una aplicación de servidor (por ejemplo, un servicio web que usted configura una vez y luego se ejecuta), o una aplicación de escritorio ampliamente disponible (por ejemplo, algo que muchas personas deben poder descargar e instalar fácilmente)
- Si está dispuesto a poner poco o más esfuerzo de programación para que la solución funcione
- Si eres flexible en cuanto al lenguaje de programación que usarás
Aquí hay algunas opciones:
- PDFCreator + COM
- Solo Windows
- adecuado para aplicaciones de escritorio y servidor
- esfuerzo de programación medio
- Cualquier idioma que te permita hablar COM.
- OpenOffice.org (+ JODConverter - opcional)
- Multiplataforma (Windows, Linux, etc.)
- adecuado para aplicaciones de servidor, ya que OpenOffice es una descarga de más de 100 MB
- bajo esfuerzo de programación
- Java (si usa JODConverter), o cualquier idioma que pueda interactuar con OpenOffice''s UNO
- IText + Apache POI
- Multiplataforma (Windows, Linux, etc.)
- adecuado para aplicaciones de escritorio y servidor
- alto esfuerzo de programación
- Java
EDITAR
Aquí hay una publicación más antigua que tiene algo en común con tu pregunta.
Editar 2
Veo por tus comentarios que estás en Linux y abierto a C ++ o Java. Definitivamente usa la opción 2.
-
JODConverter
(Java): la biblioteca se encarga de generarOpenOffice
en modo sin cabeza y hablarle aUno
en su nombre. Le proporciona aJODConverter
un nombre de archivo de entrada y salida, así como los tipos de entrada y salida (por ejemplo, rtf y pdf), y cuando vuelva a usted, el archivo de salida está listo. - C ++: puede bifurcar + exec uno (o más, para equilibrar la carga) instancias de OpenOffice en modo sin cabeza (soffice escuchará solicitudes UNO en un socket, por ejemplo, puerto 8100.) Desde su aplicación, use Uno/CPP para indicar a OpenOffice que realice la conversión de la misma manera que
JODConverter
haceJODConverter
(consulte el código fuente deJODConverter
paraJODConverter
cómo hacerlo).
/opt/openoffice.org3/program/soffice.bin /
-accept=socket,host=127.0.0.1,port=8100;urp; /
-headless -nocrashreport -nodefault /
-nolockcheck -nologo -norestore
Estoy utilizando con éxito JODConverter
desde una aplicación Java para convertir varios tipos de documentos (algunos documentos generados dinámicamente desde plantillas) a pdf
.
Utilice PDFCreator, una impresora pdf gratuita. Sólo imprime a pdf. Puedes controlar esto a través de COM. El código de ejemplo se encuentra en la carpeta COM del directorio de instalación.
PDFCreator es el más sencillo para documentos individuales.
También es posible automatizar la creación de PDF para grandes conjuntos de documentos convirtiéndolos a XML y utilizando XSLT y XSL-FO. Hay muchos tutoriales para esto por ahí.
Para un lenguaje específico, como python, existen bibliotecas para imprimir en PDF de forma bastante trivial.
La única ventaja de XML sobre otras soluciones más simples es la extensibilidad. También puede generar su documento mediante programación en formato RTF, HTML, TXT o en cualquier otro formato de texto.
OpenOffice.org puede ejecutarse en modo servidor (es decir, sin GUI), puede leer archivos RTF y puede generar archivos PDF.
PrimoPDF . Actúa como una impresora virtual, por lo que solo imprime en ella y saca un PDF.