Starten Sie Docker von Java aus, um Office-Dokumente in PDF zu konvertieren

1. Zuallererst

2. Installieren Sie Docker

Installieren Sie Docker unter CentOS. Siehe offizielle Seite für Details https://docs.docker.com/engine/installation/linux/docker-ce/centos/

yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce
systemctl enable docker
systemctl start docker

3. Docker-Einstellungen

(1) Erstellen Sie ein Image von CentOS7

docker pull centos:centos7
docker run -it centos:centos7 /bin/bash

(2) Führen Sie LibreOffice- und IPA-Schriftarten ein

yum update -y
yum install libreoffice* ipa-*-fonts

(3) Erstellen Sie einen Arbeitsordner

mkdir /tmp/
exit

(4) Überprüfen Sie die CONTAINER-ID von Docker

docker ps -a

(5) Commit mit dem Namen "Büro" Geben Sie die CONTAINER ID ein, die zuvor in * $ {CONTAINER ID} * bestätigt wurde.

docker commit ${CONTAINER ID} office

(6) Überprüfen Sie, ob es ordnungsgemäß funktioniert Es wird davon ausgegangen, dass die Datei "/var/tmp/test.xlsx" unter CentOS vorhanden ist. Bei normaler Ausführung wird "/var/tmp/test.pdf" generiert.

docker run --rm=true -it -v /var/tmp:/tmp office libreoffice --headless --nologo --nofirststartwizard --convert-to pdf --outdir /tmp /tmp/test.xlsx

4. Java-Codierung

Dies ist ein Beispiel, um Docker mit der Java-Prozessklasse zu starten.


	/**
	 *Über Docker in PDF konvertieren
	 * @param excelFileName
	 * @param pdfFileName
	 * @return
	 * @throws InterruptedException
	 */
    public boolean convertPDF(String excelFileName) throws InterruptedException {

		//Befehlsspezifikation starten
		String[] command = {
				"docker", "run", "--rm=true", "-v", "/var/tmp:/tmp", "office", "libreoffice", "--headless"
                , "--nologo", "--nofirststartwizard", "--convert-to", "pdf", "--outdir"
                ,"/tmp", "/tmp/"+excelFileName };

        ProcessBuilder pb = new ProcessBuilder(command);

		try {
            //Befehlsausführung
			Process process = pb.start();

            //Warten Sie auf das Ergebnis der Befehlsausführung
			int ret = process.waitFor();

            //Standardausgabe
			InputStream is = process.getInputStream();	
			printInputStream(is);

            //Standart Fehler
			InputStream es = process.getErrorStream();	
			printInputStream(es);

		}
		catch (Exception e) {
			return false;

		}

		return true;
    }
    
	/**
	 *Standard- / Fehlerausgabe anzeigen
	 * @param is
	 * @throws IOException
	 */
    public static void printInputStream(InputStream is) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(is));
		try {
			for (;;) {
				String line = br.readLine();
				if (line == null) break;
				System.out.println(line);
			}
		} finally {
			br.close();
		}
	}

Recommended Posts

Starten Sie Docker von Java aus, um Office-Dokumente in PDF zu konvertieren
Java-Anwendungen konvertieren Word-Dokumente (DOC / DOCX) in PDF
Konvertieren Sie von der Java-UTC-Zeit in die JST-Zeit
Java fügt vorhandenen PDF-Dokumenten Seitenzahlen hinzu
[Java] PDF-Version konvertieren
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Von Java zu Ruby !!
Konvertieren Sie Java Enum Enumeration und JSON von und nach Jackson
Migration von Cobol nach JAVA
Java fügt PDF eine Tabelle hinzu
Neue Funktionen von Java7 bis Java8
Stellen Sie eine Verbindung von Java zu PostgreSQL her
Konvertieren Sie von ○ Monaten in ○ Jahre ○ Monate
So konvertieren Sie Java Base
Verwenden von Docker von Java Gradle
[Java] Konvertiert ArrayList in Array
Von ineffektivem Java zu effektivem Java
Java zum Extrahieren von PDF-Textinhalten
Java fügt Hyperlinks zu Word-Dokumenten hinzu
[Java] Konvertiere 1 in N Liste in Karte
Java soll ab heute dabei sein
Von Java zu VB.NET-Writing Kontrastmemo-
Java, Schnittstelle für Anfänger
Fügen Sie dem PDF-Dokument ein Wasserzeichen zu Java hinzu
Der Weg von JavaScript nach Java
[Java] So konvertieren Sie vom Typ String in den Pfadtyp und erhalten den Pfad
[Android] Konvertieren Sie Android Java-Code in Kotlin
Java zeichnet Formen in PDF-Dokumenten
[Java] Konvertierung von Array zu Liste
Aktualisieren Sie MySQL mit Docker von 5.7 auf 8.0
Java fügt Formularfelder zu PDF hinzu
[Java] Konvertieren Sie ein Array in ArrayList * Achtung
Untersuchen Sie den Ersatz von Docker zu Podman.
[Rails] Wie man von erb zu haml konvertiert
Konvertieren Sie alle Android-Apps (Java) in Kotlin
[Java] Konvertiert Null vom Objekttyp in String-Typ
Stellen Sie mit Eclipse eine Verbindung von Java zu MySQL her
Konvertieren Sie SVG-Dateien in Java in PNG-Dateien
[Docker] Kopieren Sie Dateien aus dem Docker-Container auf den Host
Von der Installation von Eclipse bis zur Ausführung von Java (PHP)
Post to Slack von Play Framework 2.8 (Java)
Java: So senden Sie Werte von Servlet zu Servlet
[Java] Fluss vom Quellcode zur Ausführung
Konvertieren von Farbtemperatur in RGB (sRGB)
Einführung in die Überwachung von Java Touching Prometheus
Vorsichtsmaßnahmen bei der Migration von VB6.0 auf JAVA
Fügen Sie Word-Dokumenten in Java Fußnoten hinzu
Memo für die Migration von Java nach Kotlin
Typkonvertierung vom Java Big Decimal-Typ zum String-Typ
[Java] Von zwei Listen zu einer Array-Liste
Upsert von Java SDK zu Azure Cosmos DB
Konvertiert vom String-Zeiger der C-Sprache zum Swift-String-Typ
R von Java ausführen Ich möchte rJava ausführen
Stellen Sie über eine Java-Anwendung eine Verbindung zu Aurora (MySQL) her