Generar excel desde liberoffce
Paso uno: Instalar LibreOffice para Windows.
1.1 Ir al sitio web oficial de LibreOffice.
libreoffice.org/
1.2 Descargar
1.2.1 Paso uno: Ingrese al sitio web oficial y haga clic para descargar.
1.2.2 Paso 2: Elige la versión que se adapte a tu sistema.
1.2.2 Paso 3: Haz clic en Descargar en el cuadro rojo.
1.3 Instalación y Configuración
1.3.1 Paso 1: Haga doble clic en el archivo descargado.
1.3.2 Paso 2: Haga clic en Siguiente.
1.3.3 Paso 3: Seleccione Personalizar aquí.
1.3.4 Paso 4: Puede usar el Lujin predeterminado aquí o elegir instalar Lujin usted mismo.
1.3.5 Paso 5: Haga clic en Siguiente.
1.3.6 Paso 6: Haga clic para instalar.
1.3.7 Paso 7: Si Windows10 => Haga clic con el botón derecho del mouse y seleccione Atributo = & gt Configuración avanzada del sistema = & gt Variables de entorno = & gt Encuentre la ruta de la variable de entorno del sistema, cree y agregue la ruta D: \LibreOffice\program (tenga en cuenta que esta ruta está configurada de acuerdo con su propia instalación de Lujin, la mía está instalada en la unidad D).
1.3.8 Paso 8 Luego abra la ventana de comando cmd con windows+R = & gt e ingrese officeopen libre office para indicar que la instalación se realizó correctamente.
Paso 2: Utilice el código Java para operar LibreOffice para convertir archivos (doc, ppt, xls) en archivos PDF.
1.1: Abra IDEA o eclipse para crear un proyecto SpringBoot.
pom.xml
& lt? versión xml = "1.0" codificación = "UTF-8"? & gt& ltproject xmlns = " . Aplicación Liu . viable . convertidor & lt;/groupId & gt;
><Version>v 1.4.2</version>
</dependency> p>
<Dependency>
<groupId>org.spring framework.boot</groupId>
<artifactId>prueba de inicio de arranque de spring</artifact id>
<scope>test</scope>
</dependency>
</dependencies>
& ltbuild>
& ltplugin>
& ltplugin> p>
& ltgroupId & gtorg . spring framework & lt;/groupId & gt;
& ltartifactId & gtspring-boot-maven-plugin</artifact id & gt;
& lt/plugin & gt;
& lt/plugins >
</build></project>12345678910111213141516171819202122232425262728293031323334353637383940
1.2 Cree ConvertOfficePDFUtils. clase java. Elija el nombre del archivo usted mismo
/**
* @Describe la clase de herramienta libreoffice
* @Author holle
* @create 2020/12/24
* @Desde 1.0.0
*/package com .vista previa utils; importar org slf4j . 4j. fábrica de registradores; importar org. marco de primavera. servicio estereotipo; importar Java io. Registrador estático = fábrica de registradores. . get Logger(convertofficepdfutils . class);
>**
*Utilice libreOffice para convertir documentos de Office a pdf.
* @param archivo de entrada? Dirección del archivo de destino
* @param pdfCarpeta de salida del archivo
* @return
*/
conversión booleana estática públicaOfficePDF(archivo de entrada de cadena , String pdfFile){
inicio largo = sistema . hora actual millis();
Comando de cadena;
Indicador booleano;
string osName = system . getproperty(" OS . nombre ");
if(osname . contains(" Windows ")){
comando = " cmd/c start soffice -headless -invisible-convertir-a pdf:writer _ pdf _ Exportar "+archivo de entrada+"-outdir "+archivo pdf;
}else{
comando = " libre office- sin cabeza- invisible-convertir-a pdf:writer _ pdf _ Exportar "+archivo de entrada+"-outdir "+archivo pdf;
}
flag =executeLibreOfficeCommand(comando);
p>final largo = sistema. hora actual millis();
Logger.debug ("Tiempo: {} ms ", fin-inicio);
Indicador de retorno;
}
/**
*Ejecutar comando comando
* @param comando
* @return
*/
Ejecución booleana estática públicaLibreOfficeCommand(comando de cadena){
Logger.info("Iniciar conversión...");
Flujo del proceso; // El proceso puede controlar la ejecución del subproceso u obtener la información del subproceso.
Pruebe {
logger . debug(" convertoffice 2 pdf cmd:{ } ", comando);
proceso = Runtime.getRuntime(). exec(command); el método exec() indica a la máquina virtual Java que cree un proceso hijo para ejecutar el programa ejecutable especificado y devolver la instancia del objeto de proceso correspondiente al proceso hijo.
//Los dos siguientes pueden obtener iostream.
InputStream errorStream = proceso . get errorStream();
InputStream InputStream = proceso . getinputstream()
} catch (IOException e) {
logger error(" convertoffice 2 pdf { } error ", comando,
Devuelve falso
}
int estado de salida); = 0;
Intenta {
salir estado = proceso esperar(); // Espere a que se complete el subproceso antes de ejecutar. El valor de retorno es el valor de retorno del subproceso secundario y devolver 0 indica un final normal.
//El segundo método que acepta el valor de retorno
int I = proceso. exit value() //Recibir el valor de retorno después de la ejecución.
logger . debug(" I-"+I);
} catch (InterruptedException e) {
logger error(" ¿excepción interrumpida? convertOffice2PDF { }", comando, e);
Devuelve falso
}
if (exitStatus!= 0) {
logger . error (" convertoffice 2 pdf cmd estado de salida { } ", estado de salida);
} De lo contrario {
logger (" convertoffice 2 pdf cmd estado de salida { } ", estado de salida );
}
proceso . destroy(); // Destruye el proceso hijo
Logger.info("La conversión finaliza...");< / return true 8596061626364656667686970717273747576777879
1.3 Crear una clase de prueba
/**
* @Descripción Clase de prueba
* @author holle
* @create 2020/12/24
* @Since 1.0.0
*/ paquete com.test; import com.file.preview.filepreviewapplication; importar com.file.preview.utils.convertofficepdfutils; importar org.JUnit.test; importar org.JUnit.runner.run con; importar marco de prueba de primavera. prueba. contexto. JUnit 4. corredor de clase Spring JUnit 4. clase) @ prueba de arranque de primavera. . class) clase pública TestOffice {
@resource
privada ConvertOfficePDFUtils ConvertOfficePDFUtils;
@test
public void JunintTestPDF(){
inicio largo = sistema . hora actual millis();
ruta src de cadena = " C:/Users/holler/ Desktop/*/*.
docx ", des path = " C:/Users/holler/Desktop/* ";
String command = " ";
string osName = system . getproperty(" OS . name ");
if(osname . contains(" Windows ")){
//Ingrese el comando cmd; Agregar: srcPath indica la ruta donde se encuentra el archivo; la ruta de la salida del archivo.
command = " so ffice-headless-convert-to pdf "+src path+"-outdir "+desPath;
convertofficepdfutils . /p>
}
final largo = sistema . hora actual millis();
salida del sistema . ));
p>}
} ?1234567891011121314151617181920212223242526272829303132333435363738
ruta+"-outdir "+desPath;
convertofficepdfutils .executelibreofficecom hombre d( comando);
}
long end = sistema . hora actual millis();
sistema println(" Hora:{ } ms "+ (fin-inicio));
}
}