JODConverter (para Java OpenDocument Converter) es una herramienta ampliamente utilizada que automatiza las conversiones de documentos. unoconv es una herrmienta de Python con un propósito similar. Puedes leer aquí los detalles sobre por qué deberías considerar cambiar al backend Collabora Online de JODConverter o hablar con el propio Collabora Online.
Los formatos admitidos de estas herramientas incluyen OpenDocument, PDF, HTML, formatos de Microsoft Office (DOC / DOCX / RTF, XLS / XLSX, PPT / PPTX) y muchos otros. Se pueden usar como una biblioteca Java/Python, una herramienta de línea de comandos o una aplicación web. Las versiones más nuevas tienen un back-end JODConverter que usa directamente Collabora Online en lugar de LibreOffice.
¿Cuáles son los beneficios de utilizar Collabora Online para la conversión de documentos?
- Rendimiento mejorado en comparación con el enfoque de inicio-conversión-apagado
- La REST API es más confiable que iniciar LibreOffice en modo servidor y comunicarse a través de UNO remoto
- Más seguro porque la conversión ocurre en un entorno aislado y este enfoque en capas protege tu infraestructura (desde las capas externas a las internas):
- Facil de ejecutar en una Máquina Virtual / Contenedor Docker
- Aislamiento de datos de documentos en chroots por documento
- Seccomp-bpf: dentro de ese chroot (casi) no se permiten llamadas al sistema
- Sistema de archivos extremadamente escaso dentro del chroot: sin shell, etc.
BeneficioJODConverterunoconvCollabora Online
Muchos formatos de archivo | Si | Si | Si |
Coste de inicio único | No | No | Si |
Estandar REST API | No | No | si |
Fácil aislamiento en VM / docker | No | No | Si |
Aislamiento de documentos | No | No | Si |
Filtro de llamada al sistema | No | No | Si |
Sistema de archivos dispersos | No | No | Si |
Esto significa que obtendrás un rendimiento mejorado y una mayor seguridad al convertir documentos con Collabora Online.
Rendimiento
El primer gráfico muestra el rendimiento de Collabora Online en comparación con el backend LibreOffice de JODConverter y unoconv cuando consideramos el enhebrado y medimos el número de documentos convertidos durante un segundo:

¿Quieres probar y configurar CODE?
Puedes ver que Collabora Online no solo tiene un rendimiento inicialmente superior, sino que también se escala mejor a medida que usas más hilos. (Comparamos las invoaciones curl para Collabora Online con las invocaciones en línea de comandos con java de JODConverter y las invocaciones de línea de comandos en python de unoconv.)
Construcción
Si deseas probar JODConverter con su backend Collabora Online:
git clone https://github.com/sbraconnier/jodconverter cd jodconverter sh gradlew build -x integTest distZip cd build/distributions unzip jodconverter-cli-*.zip cd jodconverter-cli-*/
Corriendo
- Ejemplo:
bin/jodconverter-cli -c https://localhost:9980/ -f pdf README.txt
- El formato de entrada se detecta automáticamente, -f determina el formato de salida.
- La URL es tu URL del servidor de Collabora Online, es elhttps:// valor de la guía de instalación.
Uso de la REST API en línea de Collabora directamente
- En caso de que aún no estés utilizando JODConverter, puedes usar la REST API directamente, por ejemplo:
curl -F "data=@test.txt" https://localhost:9980/lool/convert-to/pdf > out.pdf
curl -F "data=@test.txt" https://localhost:9980/lool/convert-to/png > out.png
- Alternativamente, puedeS usar los formularios HTML para especificar el formato, por ejemplo:
curl -F "data=@test.txt" -F "format=pdf" https://localhost:9980/lool/convert-to > out.pdf
Formatos soportados
Formatos de entrada admitidos:
Documentos | Formatos de entrada |
---|---|
Documentos de texto | sxw (ver), odt y fodt (editar) |
Documentos de cálculo | sxw (ver), odt y fodt (editar) |
Documentos de presentación | sxw (ver), odt y fodt (editar) |
Documentos Draw | sxw (ver), odt y fodt (editar) |
Documentos de gráficos | odc (editar) |
Documentos de textos maestros | sxg (ver), odm (editar) |
Documentos de plantillas de texto | sxg (ver), ott (editar) |
Documentos de texto de plantillas maestras | otm (editar) |
Documentos de plantilla de hoja de cálculo | stc (ver), ots (editar) |
Documentos de plantilla de presentación | sti (ver), otp (editar) |
Documentos de plantillas de dibujo | std (ver), otg (editar) |
Documentos base | odb (editar) |
Extensiones | oxt (editar) |
MS Word | doc y dot (editar) |
MS Excel | xls (editar) |
MS PowerPoint | ppt (editar) |
OOXML wordprocessing | docx y docm (editar), dotx y dotm (ver) |
OOXML spreadsheet | xltx y xltm (ver), xlsx y xlsb y xlsm (editar) |
OOXML presentation | pptx, pptm, potx, potm (editar) |
Otro | wpd, pdb, hwp, wps, wri, wk1, cgm, dxf, emf, wmf, cdr, vsd, pub, vss, lrf, gnumeric, mw, numbers, p65, pdf, jpg, jpeg, gif, png, etc (ver) |
Otro | dif, slk, csv, dbf, oth, rtf, txt, etc (editar) |
Formatos de salida admitidos para Writer/Calc/Impress:
Documentos | Formatos de salida |
---|---|
Writer | doc para MS Word 97, docm para MS Word 2007 XML VBA, docx para MS Word 2007 XML, fodt para OpenDocument Text Flat XML, html for HTML (StarWriter), odt para writer8, ott para writer8_template, pdf para writer_pdf_Export, rtf para Rich Text Format, txt para Text, xhtml para XHTML Writer File, png para writer_png_Export |
Calc | csv para Text – txt – csv (StarCalc), fods para OpenDocument Spreadsheet Flat XML, html para HTML (StarCalc), ods para calc8, ots para calc8_template, pdf para calc_pdf_Export, xhtml para XHTML Calc File, xls para MS Excel 97, xlsm para Calc MS Excel 2007 VBA XML, xlsx para Calc MS Excel 2007 XML, png para calc_png_Export |
Impress | fodp para OpenDocument Presentation Flat XML, html para impress_html_Export, odg para impress8_draw, odp para impress8, otp para impress8_template, pdf para impress_pdf_Export, potm para Impress MS PowerPoint 2007 Plantilla XML, pot para MS PowerPoint 97 Vorlage, pptm para Impress MS PowerPoint 2007 XML VBA, pptx para Impress MS PowerPoint 2007 XML, pps para MS PowerPoint 97 Autoplay, ppt para MS PowerPoint 97, svg para impress_svg_Export, swf para impress_flash_Export, xhtml para XHTML Impress File, png para impress_png_Export |
Draw | fodg para draw_ODG_FlatXML, html para draw_html_Export, odg para draw8, pdf para draw_pdf_Export, svg para draw_svg_Export, swf para draw_flash_Export, xhtml para XHTML Draw File, png para draw_png_Export |
Confiar en el certificado HTTP en línea local de Java
Esto solo es necesario si tiene un certificado autofirmado para tu instalación Online.
- obtener el certificado:
openssl s_client -connect localhost:9980 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
- pégalo en un archivo llamado certfile.txt
- Impórtalo al almacén de claves Java (la contraseña es changeit por defecto):
keytool -importcert -keystore $JAVA_HOME/jre/lib/security/cacerts -alias mycert -file certfile.txt
Dependiendo del valor de $JAVA_HOME, puedes neceistar ejecutar keytool con los privilegios root/Administrator.
Conclusiones
- ¿Usando ya JODConverter? – considera cambiar de usar el backend seguro de Collabora Online.
- ¿Usando Collabora Online a través de JodConverter o unoconv? – considera un cambio para usar nuestra conversión REST API (Java sample code, Python sample code).
- ¿Usando otra herramient? – evalúe si una solución estándar de Collabora Online satisface tus necesidades de rendimiento y conversión.