Conversión de documentos con Collabora Online, JODConverter y unoconv

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.
Beneficio JODConverter unoconv Collabora 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?

¡Consiguelo aquí!

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.

¿Necesitas soporte y ayuda para integrar la conversión de documentos en tu producto? No dudes en enviarnos un correo electrónico:

¡Contactanos!