Dokumentenkonvertierung mit Collabora Online, JODConverter und unoconv

JODConverter (für Java OpenDocument Converter) ist ein weitverbreitetes Werkzeug, das Dokumentenkonvertierung automatisiert. unoconv ist ein Python-Tool mit einem ähnlichen Zweck. Lesen Sie hier Details darüber, warum Sie einen Wechsel zum Collabora Online Backend von JODConverter in Betracht ziehen sollten oder kommunizieren Sie direkt mit Collabora Online.

Zu den von diesen Tools unterstützten Formaten gehören OpenDocument, PDF, HTML, Microsoft Office-Formate (DOC/DOCX/RTF, XLS/XLSX, PPT/PPTX) und viele mehr. Sie können als Java/Python-Bibliothek, als Kommandozeilenwerkzeug oder als Webanwendung verwendet werden. Neuere Versionen haben ein JODConverter-Backend, das Collabora Online direkt anstelle von LibreOffice verwendet.

Was sind die Vorteile der Verwendung von Collabora Online für die Dokumentkonvertierung?

  • Verbesserte Leistung im Vergleich zum „Start-up Convert Shutdown“-Ansatz
  • Die REST-API ist zuverlässiger als das Starten von LibreOffice im Server-Modus und die Kommunikation über Remote-UNO
  • Sicherer, weil die Konvertierung in einer isolierten Umgebung erfolgt und dieser mehrschichtige Ansatz Ihre Infrastruktur (von äußeren zu inneren Ebenen) schützt:
    • Läuft unkompliziert in einer Virtuellen Maschine oder einem Docker-Container
    • Isolation der Dokumentendaten in per Dokument chroots
    • Seccomp-bpf: innerhalb dieses chroot sind (fast) keine Systemaufrufe erlaubt
    • Sehr schlankes Dateisystem innerhalb des chroot: keine Shell etc.
Vorteile JODConverter unoconv Collabora Online
Viele Dateiformate Ja Ja Ja
Einmalige Einrichtungskosten Nein Nein Ja
Standard REST-API Nein Nein Ja
Unkomplizierte Isolation in VM / Docker Nein Nein Ja
Dokument-Isolation Nein Nein Ja
Syscall Filter Nein Nein Ja
Schlankes Dateisystem Nein Nein Ja

Das bedeutet, dass Sie die Konvertierung von Dokumenten mit Collabora Online sowohl eine verbesserte Leistung als auch eine höhere Sicherheit bietet.

Leistung

Das erste Diagramm zeigt, wie Collabora Online im Vergleich zum LibreOffice Backend und unoconv von JODConverter abschneidet, wenn wir das Threading betrachten und die Anzahl der innerhalb einer Sekunde konvertierten Dokumente messen:


Möchten Sie CODE ausprobieren und einrichten?

Holen Sie es sich hier!

Sie können sehen, dass Collabora Online nicht nur eine bessere Anfangsleistung hat, sondern auch besser skaliert, je mehr Threads Sie verwenden. (Wir vergleichen Curl-Aufrufe für Collabora Online mit Java-Kommandozeilenaufrufen von JODConverter und Python-Kommandozeilenaufrufen von unoconv.)

Building

Wenn Sie JODConverter mit seinem Collabora Online Backend ausprobieren möchten:

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-*/

Starten

  • Beispiel:
    bin/jodconverter-cli -c https://localhost:9980/ -f pdf README.txt
  • Das Input-Format wird automatisch erkannt, -f definiert das Output-Format.
  • Die URL ist Ihre Collabora Online Server-URL, es ist der https:// Wert von der Installationsanweisung.

Die Collabora Online REST-API direkt verwenden

  • Falls Sie nicht bereits JODConverter verwenden, können Sie z. B. direkt die REST-API verwenden:
    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
  • Alternativ können Sie die HTML-Formulare verwenden, um z. B. das Format festzulegen:
    curl -F "data=@test.txt" -F "format=pdf" https://localhost:9980/lool/convert-to > out.pdf

Unterstützte Formate

Unterstützte Eingabeformate:

Dokumente Input formats
Writer Dokumente sxw (betrachten), odt and fodt (bearbeiten)
Calc Dokumente sxc (view), ods and fods (edit)
Impress Dokumente sxi (betrachten), odp and fodp (bearbeiten)
Draw Dokumente sxd (view), odg und fodg (edit)
Diagramm-Dokumente odc (bearbeiten)
Text Master-Dokumente sxg (betrachten), odm (bearbeiten)
Text Vorlagen-Dokumente stw (betrachten), ott (bearbeiten)
Writer Master-Dokument Vorlagen otm (bearbeiten)
Tabellenkalkulationsvorlagen-Dokumente stc (betrachten), ots (bearbeiten)
Präsentationsvorlagen-Dokumente sti (betrachten), otp (bearbeiten)
Zeichnungsvorlagen-Dokumente std (betrachten), otg (bearbeiten)
Base Dokumente odb (bearbeiten)
Erweiterungen oxt (bearbeiten)
MS Word doc and dot (bearbeiten)
MS Excel xls (bearbeiten)
MS PowerPoint ppt (bearbeiten)
OOXML Textverarbeitung docx und docm (bearbeiten), dotx und dotm (betrachten)
OOXML Tabellenkalkulation xltx and xltm (betrachten), xlsx and xlsb and xlsm (bearbeiten)
OOXML Päsentation pptx, pptm, potx, potm (bearbeiten)
Andere 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 (betrachten)
Andere dif, slk, csv, dbf, oth, rtf, txt, etc (bearbeiten)

Unterstützte Ausgabeformate für Writer/Calc/Impress:

Dokumente Ausgabeformate
Writer doc for MS Word 97, docm for MS Word 2007 XML VBA, docx for MS Word 2007 XML, fodt for OpenDocument Text Flat XML, html for HTML (StarWriter), odt for writer8, ott for writer8_template, pdf for writer_pdf_Export, rtf for Rich Text Format, txt for Text, xhtml for XHTML Writer File, png for writer_png_Export
Calc csv for Text – txt – csv (StarCalc), fods for OpenDocument Spreadsheet Flat XML, html for HTML (StarCalc), ods for calc8, ots for calc8_template, pdf for calc_pdf_Export, xhtml for XHTML Calc File, xls for MS Excel 97, xlsm for Calc MS Excel 2007 VBA XML, xlsx for Calc MS Excel 2007 XML, png for calc_png_Export
Impress fodp for OpenDocument Presentation Flat XML, html for impress_html_Export, odg for impress8_draw, odp for impress8, otp for impress8_template, pdf for impress_pdf_Export, potm for Impress MS PowerPoint 2007 XML Template, pot for MS PowerPoint 97 Vorlage, pptm for Impress MS PowerPoint 2007 XML VBA, pptx for Impress MS PowerPoint 2007 XML, pps for MS PowerPoint 97 Autoplay, ppt for MS PowerPoint 97, svg for impress_svg_Export, swf for impress_flash_Export, xhtml for XHTML Impress File, png for impress_png_Export
Draw fodg for draw_ODG_FlatXML, html for draw_html_Export, odg for draw8, pdf for draw_pdf_Export, svg for draw_svg_Export, swf for draw_flash_Export, xhtml for XHTML Draw File, png for draw_png_Export

Vertrauen in das lokale Online-HTTP-Zertifikat von Java

Dies ist nur erforderlich, wenn Sie ein selbstsigniertes Zertifikat für Ihre Online-Installation besitzen.

  • Das Zertifikat erhalten:
    openssl s_client -connect localhost:9980 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
  • Fügen Sie es in eine als certfile.txt benannte Datei ein.
  • Importieren Sie es in den Java Schlüsselspeicher (Das Default-Passwort lautet changeit):
    keytool -importcert -keystore $JAVA_HOME/jre/lib/security/cacerts -alias mycert -file certfile.txt

Abhängig vom Wert von $JAVA_HOME müssen Sie möglicherweise das Keytool mit Root-/ Administrator Rechten ausführen.

Fazit

  • Nutzen Sie JODConverter bereits? – ziehen Sie in Betracht, auf das sicherere Backend von Collabora Online umzusteigen.
  • Nutzen Sie Collabora Online via JodConverter oder unoconv? – Ziehen Sie einen Wechsel zu unserer unkomplizierten REST Konvertierungs-API in Betracht (Java Beispiel-Code, Python Beispiel-Code).
  • Benutzen Sie ein anderes Werkzeug? – Prüfen Sie, ob eine Standardlösung von Collabora Online Ihren Leistungs- und Konvertierungsanforderungen entspricht.

Benötigen Sie Unterstützung und Hilfe bei der Integration der Dokumentkonvertierung in Ihr Produkt? Zögern Sie nicht, uns eine E-Mail zu senden:

Kontaktieren Sie uns!