[JAVA] Für Sie, die beklagen, dass die Konvertierung von JODConverter + LibreOffice langsam ist

JODConverter


Der in den Straßen gefundene Beispielcode hat den folgenden Ablauf. Wenn jedoch der folgende Prozess ausgeführt wird, wird LibreOffice als externer Prozess gestartet und beendet, sodass der Prozess einige Zeit in Anspruch nimmt. Beispielsweise ist es nicht als Prozess geeignet, der für jede Anforderung einer Webanwendung ausgeführt wird.

OfficeManager officeManager = LocalOfficeManager.make();
officeManager.start();
//・ ・ ・
//Formatkonvertierung (weggelassen)
//・ ・ ・
officeManager.stop();

Die offiziell empfohlene Methode besteht darin, einen einzelnen Office Manager zu starten (), wenn die Web-App gestartet wird, ihn für alle Anforderungen freizugeben und stop () zu beenden, wenn die Web-App endet. https://github.com/sbraconnier/jodconverter/wiki/Web-Application


ExternalOfficeManager kann so wie es ist effektiv sein.

ExternalOfficeManager (JODConverter Local 4.3.0 API) https://www.javadoc.io/static/org.jodconverter/jodconverter-local/4.3.0/org/jodconverter/local/office/ExternalOfficeManager.html

[1] Starten Sie LibreOffice, indem Sie das Argument wie folgt angeben.

soffice.exe -accept="socket,host=127.0.0.1,port=2002;urp;"

[2] Verwenden Sie beim Konvertieren des Formats ExternalOfficeManager, um eine Verbindung zum gestarteten LibreOffice herzustellen. Dieser Vorgang kann relativ schnell ausgeführt werden.

OfficeManager officeManager = ExternalOfficeManager.make();
officeManager.start();
//Unterlassung
officeManager.stop();

Wie in Javadoc beschrieben, startet JOD Converter LibreOffice jedoch nicht neu, selbst wenn LibreOffice abnormal beendet wird.

Since this implementation does not manage the Office process, it does not support auto-restarting the process if it exits unexpectedly.

Recommended Posts

Für Sie, die beklagen, dass die Konvertierung von JODConverter + LibreOffice langsam ist
Ein Memo des Programms, mit dem Sie feststellen können, dass die Wahrscheinlichkeit eines Würfelwurfs etwa 1/6 beträgt
Für Sie, die von nun an der Leiter des Entwicklungsteams werden - Mindeststandardisierung -
Wenn der Schwebeflug von Eclipse schwer zu sehen ist
Löschen Sie die Migrationsdatei, die Sie nicht löschen konnten, vollständig
Da das Lesen von JdbcCodeList von TERASOLUNA langsam ist, habe ich versucht, mehrere gleichzeitig zu registrieren.
[Rails] So speichern Sie die Anforderungs-URL eines Benutzers, der nicht angemeldet ist, vorübergehend und kehren nach der Anmeldung zu dieser URL zurück
Überprüfen Sie die Grundkenntnisse von Rubin, die oft vergessen werden
[Java] Code, der schwer zu bemerken, aber furchtbar langsam ist
[PostgreSQL] Die Geschichte, dass Sie die Sitzung richtig schneiden müssen
Eine Sammlung von Mustern, die Sie kennen möchten, um den Code nicht zu komplizieren
So beheben Sie das Problem, dass beim Stoppen der Webanwendung kein Protokollierungsprotokoll ausgegeben wird
[Java-Anfänger] Konvertierung von Zeichenfolge in numerischen Wert - Was ist die parseInt-Methode der Integer-Klasse? ~
Die Geschichte von Collectors.groupingBy, die ich für die Nachwelt behalten möchte
Möchten Sie wissen, was Ruby n die Potenz von 2 ist? (Machturteil von 2)
Die in /lib/calendars.properties von Java jre festgelegte Millisekunde ist UTC
So identifizieren Sie den Pfad, auf dem leicht Fehler gemacht werden können
Erweiterung, die den an den Initialisierer von Combine.Future übergebenen Abschluss asynchron ausführt
Ist die von Ihnen verwendete Version von Elasticsearch mit Java 11 kompatibel?
Erstellen einer ArrayList, mit der Sie die Koordinaten einer zweidimensionalen Ebene eingeben und abrufen können
[RSpec] Wenn Sie die Instanzvariable des Controllers im Test verwenden möchten [Zuweisungen wird nicht empfohlen]
Über die Angelegenheit, die tendenziell mit ARG von Dockerfile verwechselt wird, einem mehrstufigen Build
Zusammenfassung der Tipps (Rails), die Sie vollständig verwenden können, da Sie verstehen, dass es sich um einen jQuery-Rabatt handelt