Freemarker convierte a PDF y luego a jpg

La integración de Spring Boot con FreeMarker se puede lograr agregando dependencias en el archivo pom.xml. Por ejemplo, la siguiente es la configuración Spring Boot pom.xml que integra FreeMarker:

xml Copiar código <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency>

Una vez que haya terminado de generar la plantilla de FreeMarker, puede seguir los siguientes pasos para convertirla en una imagen:

  1. Utilice FreeMarker para representar la plantilla en HTML.

  1. Convierta HTML a PDF utilizando herramientas como Flying Saucer o ITextRenderer .

  1. Utilice herramientas de conversión de PDF (como PdfBox o ImageMagick ) para convertir PDF a formatos de imagen (como JPEG, PNG, etc.).

El siguiente es un código de muestra para convertir HTML a imágenes usando Flying Saucer y PdfBox :

java Copiar código importar org.apache.pdfbox.pdmodel.PDDocument;

importar org.apache.pdfbox.rendering.PDFRenderer;

importar org.xhtmlrenderer.pdf.ITextRenderer;

importar java.awt.image.BufferedImage;

importar java.io.ByteArrayOutputStream;

importar java.io.File;

importar java.io.FileOutputStream;

importar java.util.Base64;

importar javax.imageio.ImageIO;

publicclassHtmlToImageConverter {

publicstaticvoidconvert (cadena html, cadena de archivo de salida, cadena de formato de imagen) lanza una excepción {

// Usa Flying Saucer para representar HTML en PDFITextRendererrenderer=newITextRenderer();

renderizador.setDocumentFromString(html);

renderizador.layout();

ByteArrayOutputStreambaos=newByteArrayOutputStream();

renderizador.createPDF(baos);

renderizador.finishPDF();

// Utilice PDFBox para convertir PDF a imagen PDDocumentdocument= PDDocument.load(baos.toByteArray());

PDFRendererpdfRenderer=newPDFRenderer(documento);

BufferedImageimage= pdfRenderer.renderImageWithDPI(0, 300);

//Convierte BufferedImage en una imagen en el formato especificado y la guarda en el disco

ImageIO.write(imagen, imageFormat, newFileOutputStream(newFile(outputFile)));

}

}

En el código anterior, el parámetro html es la cadena HTML que se va a convertir, el parámetro outputFile es la ruta del archivo de la imagen de salida y el parámetro imageFormat es el formato de la imagen de salida (como JPEG o PNG). Este código se puede utilizar llamando al siguiente método:

java Copiar código Stringhtml=// Generar HTML a partir de la plantilla FreeMarker

HtmlToImageConverter.convert(html, "salida.jpg", "jpg");

Es importante tener en cuenta que el proceso de conversión puede llevar mucho tiempo, especialmente cuando la complejidad de la plantilla es alta. Por lo tanto, se recomienda utilizar un grupo de subprocesos para manejar las tareas de conversión cuando se utiliza este método para evitar bloquear el subproceso principal.

Supongo que te gusta

Origin blog.csdn.net/heihei_100/article/details/129725716
Recomendado
Clasificación