Freemarker конвертирует в PDF, а затем в jpg.

Интеграция Spring Boot с FreeMarker может быть достигнута путем добавления зависимостей в файл pom.xml. Например, ниже представлена ​​конфигурация pom.xml Spring Boot, которая интегрирует FreeMarker:

xml Скопируйте код <dependent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependent>

После завершения создания шаблона FreeMarker вы можете использовать следующие шаги для преобразования его в изображение:

  1. Используйте FreeMarker для преобразования шаблона в HTML.

  1. Преобразуйте HTML в PDF с помощью таких инструментов, как Flying Saucer или ITextRenderer .

  1. Используйте инструменты преобразования PDF (например, PdfBox или ImageMagick ) для преобразования PDF в форматы изображений (например, JPEG, PNG и т. д.).

Ниже приведен пример кода для преобразования HTML в изображения с помощью Flying Saucer и PdfBox :

java Скопировать код import org.apache.pdfbox.pdmodel.PDDocument;

импортировать org.apache.pdfbox.rendering.PDFRenderer;

импортировать org.xhtmlrenderer.pdf.ITextRenderer;

импортировать java.awt.image.BufferedImage;

импортировать java.io.ByteArrayOutputStream;

импортировать java.io.File;

импортировать java.io.FileOutputStream;

импортировать java.util.Base64;

импортировать javax.imageio.ImageIO;

publicclassHtmlToImageConverter {

publicstaticvoidconvert(String html, String outputFile, String imageFormat) выдает исключение {

// Используем летающую тарелку для рендеринга HTML в PDFITextRendererrenderer=newITextRenderer();

renderer.setDocumentFromString(html);

рендерер.макет();

ByteArrayOutputStreambaos = newByteArrayOutputStream();

renderer.createPDF(баос);

рендерер.finishPDF();

// Используйте PDFBox для преобразования PDF в изображение PDDocumentdocument= PDDocument.load(baos.toByteArray());

PDFRendererpdfRenderer=newPDFRenderer(документ);

BufferedImageimage = pdfRenderer.renderImageWithDPI (0, 300);

//Конвертируем BufferedImage в картинку в указанном формате и сохраняем на диск

ImageIO.write(изображение, imageFormat, newFileOutputStream(newFile(outputFile)));

}

}

В приведенном выше коде параметр html — это строка HTML, которую необходимо преобразовать, параметр outputFile — это путь к файлу выходного изображения, а параметр imageFormat — это формат выходного изображения (например, JPEG или PNG). Этот код можно использовать, вызвав следующий метод:

java Скопировать код Stringhtml=// Создать HTML из шаблона FreeMarker

HtmlToImageConverter.convert(html, «output.jpg», «jpg»);

Важно отметить, что процесс преобразования может занять очень много времени, особенно если сложность шаблона высока. Поэтому при использовании этого метода рекомендуется использовать пул потоков для обработки задач преобразования, чтобы избежать блокировки основного потока.

Guess you like

Origin blog.csdn.net/heihei_100/article/details/129725716