freemarker转成PDF再转jpg
创始人
2025-06-01 21:25:20

Spring Boot 集成 FreeMarker 可以通过在 pom.xml 文件中添加依赖项来实现。例如,以下是集成 FreeMarker 的 Spring Boot pom.xml 配置:

xmlCopy codeorg.springframework.bootspring-boot-starter-freemarker

完成 FreeMarker 模板的生成之后,你可以使用以下步骤将其转换成图片:

  1. 使用 FreeMarker 将模板渲染成 HTML。

  1. 将 HTML 使用工具(如 Flying Saucer 或 ITextRenderer)转换为 PDF。

  1. 使用 PDF 转换工具(如 PdfBox 或 ImageMagick)将 PDF 转换为图片格式(如 JPEG、PNG 等)。

以下是使用 Flying Saucer 和 PdfBox 将 HTML 转换为图片的示例代码:

javaCopy codeimport org.apache.pdfbox.pdmodel.PDDocument;

import org.apache.pdfbox.rendering.PDFRenderer;

import org.xhtmlrenderer.pdf.ITextRenderer;

import java.awt.image.BufferedImage;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.util.Base64;

import javax.imageio.ImageIO;

publicclassHtmlToImageConverter {

publicstaticvoidconvert(String html, String outputFile, String imageFormat)throws Exception {

// 使用 Flying Saucer 将 HTML 渲染为 PDFITextRendererrenderer=newITextRenderer();

renderer.setDocumentFromString(html);

renderer.layout();

ByteArrayOutputStreambaos=newByteArrayOutputStream();

renderer.createPDF(baos);

renderer.finishPDF();

// 使用 PDFBox 将 PDF 转换为图片PDDocumentdocument= PDDocument.load(baos.toByteArray());

PDFRendererpdfRenderer=newPDFRenderer(document);

BufferedImageimage= pdfRenderer.renderImageWithDPI(0, 300);

// 将 BufferedImage 转换为指定格式的图片并保存到磁盘

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

}

}

在上述代码中,html 参数是要转换的 HTML 字符串,outputFile 参数是输出图片的文件路径,imageFormat 参数是输出图片的格式(如 JPEG 或 PNG)。可以通过调用以下方法来使用该代码:

javaCopy codeStringhtml=// 从 FreeMarker 模板中生成 HTML

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

需要注意的是,转换过程可能会非常耗时,特别是当模板复杂度较高时。因此,建议在使用此方法时使用线程池来处理转换任务,以避免阻塞主线程。

相关内容

热门资讯

陕西省首届单板滑雪F级挑战赛在... 来源:环球网 第十二届全国大众冰雪季暨陕西省单板滑雪(F级)挑战赛12月27日在宝鸡鳌山滑雪度假区迎...
银兰高铁三年来累计发送旅客91... 中新网银川12月29日电 (记者 杨迪)2025年12月29日是银兰高铁贯通运营三周年,记者当天从中...
面向应届生,北京朝阳区多所学校... 转自:北京日报客户端北京市朝阳区教育委员会所属事业单位面向应届毕业生及出站博士后公开招聘公告按照北京...
迪普科技:投资者询问实控人承诺... 投资者提问:请问:2022 年浙江证监局责令郑树生继续履行转让承诺。实控人目前是怎么落实的?如何来完...
中密控股:投资者指其进取心不足... 投资者提问:董秘你好!看看公司股价和业绩,增长幅度连通胀都比不上,股价已经5年没涨了,可怜呀!关键是...