Lancez Docker à partir de Java pour convertir des documents Office en PDF

1.Tout d'abord

2. Installez Docker

Installez Docker sur CentOS. Voir la page officielle pour plus de détails 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. Paramètres Docker

(1). Créer une image de CentOS7

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

(2). Introduisez les polices LibreOffice et IPA

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

(3). Créer un dossier de travail

mkdir /tmp/
exit

(4). Vérifiez le CONTAINER ID de Docker

docker ps -a

(5). Commit avec le nom "office" Entrez le CONTAINER ID confirmé précédemment dans * $ {CONTAINER ID} *.

docker commit ${CONTAINER ID} office

(6). Vérifiez si cela fonctionne correctement On suppose que le fichier "/var/tmp/test.xlsx" existe sur CentOS. S'il est exécuté normalement, "/var/tmp/test.pdf" sera généré.

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

4. Codage Java

Ceci est un exemple pour démarrer le docker avec la classe de processus Java.


	/**
	 *Convertir en PDF via Docker
	 * @param excelFileName
	 * @param pdfFileName
	 * @return
	 * @throws InterruptedException
	 */
    public boolean convertPDF(String excelFileName) throws InterruptedException {

		//Spécification de la commande de démarrage
		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 {
            //Exécution de la commande
			Process process = pb.start();

            //Attendez le résultat de l'exécution de la commande
			int ret = process.waitFor();

            //Sortie standard
			InputStream is = process.getInputStream();	
			printInputStream(is);

            //Erreur standard
			InputStream es = process.getErrorStream();	
			printInputStream(es);

		}
		catch (Exception e) {
			return false;

		}

		return true;
    }
    
	/**
	 *Affichage de la sortie standard / d'erreur
	 * @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

Lancez Docker à partir de Java pour convertir des documents Office en PDF
Pour les applications Java, convertissez des documents Word (DOC / DOCX) en PDF
Convertir l'heure UTC Java en heure JST
Java ajoute des numéros de page aux documents PDF existants
[Java] Convertir la version PDF
Changements de Java 8 à Java 11
Somme de Java_1 à 100
De Java à Ruby !!
Convertir l'énumération Java et JSON vers et depuis Jackson
Migration de Cobol vers JAVA
Java ajoute un tableau au PDF
Nouvelles fonctionnalités de Java7 à Java8
Connectez-vous de Java à PostgreSQL
Conversion de ○ mois en ○ années ○ mois
Comment convertir la base Java
Utilisation de Docker depuis Java Gradle
[Java] Convertir ArrayList en tableau
De Java inefficace à Java efficace
Java pour extraire le contenu de texte PDF
Java ajoute des hyperliens aux documents Word
[Java] Convertir 1 en N liste en carte
Java sera impliqué dès aujourd'hui
De Java à VB.NET - Écriture de notes de contraste
Java, interface pour partir du débutant
Ajouter un filigrane à Java au document PDF
La route de JavaScript à Java
[Java] Comment convertir du type String en type Path et obtenir le chemin
[Android] Convertir le code Java Android en Kotlin
Java dessine des formes dans des documents PDF
[Java] Conversion d'un tableau à une liste
Mettre à jour MySQL de 5.7 à 8.0 avec Docker
Java ajoute des champs de formulaire au PDF
[Java] Convertit un tableau en ArrayList * Attention
Examinez le remplacement de Docker vers Podman.
[Rails] Comment convertir ERB en Haml
Convertir toutes les applications Android (Java) en Kotlin
[Java] Convertit null du type Object en type String
Connectez-vous de Java à MySQL à l'aide d'Eclipse
Convertir des fichiers SVG en fichiers PNG en Java
[Docker] Copie des fichiers du conteneur Docker vers l'hôte
De l'installation d'Eclipse à l'exécution de Java (PHP)
Publier sur Slack à partir de Play Framework 2.8 (Java)
Java: Comment envoyer des valeurs du servlet au servlet
[Java] Flux du code source à l'exécution
Conversion de la température de couleur en RVB (sRGB)
Introduction à la surveillance à partir de Java Touching Prometheus
Précautions lors de la migration de VB6.0 vers JAVA
Ajouter des notes de bas de page aux documents Word en Java
Mémo pour la migration de Java vers Kotlin
Conversion de type du type java Big Decimal au type String
[Java] De deux listes à une liste de tableaux
Upsert du SDK Java vers Azure Cosmos DB
Conversion du pointeur de chaîne de langage C en type Swift String
Exécuter R à partir de Java Je veux exécuter rJava
Connectez-vous à Aurora (MySQL) depuis une application Java