Thymeleaf模板引擎生成的html字符串转换成pdf

embedded/2024/11/22 23:49:17/
依赖引入implementation("org.springframework.boot:spring-boot-starter-thymeleaf")implementation("org.xhtmlrenderer:flying-saucer-pdf")

将ITemplateEngine注入到spring管理的类中,

Context context = new Context();
context.setVariable("name", wasteDisposalSiteDTO.getName());
String  processHtml= iTemplateEngine.process("hazardousWaste", context);//hazardousWaste是html模板文件路径,需要在配置文件中设置//spring:thymeleaf:prefix: classpath:/templates/ 基本路径//下载到浏览器// 设置响应类型 pdfresponse.setContentType(MediaType.APPLICATION_PDF_VALUE);// 设置响应编码response.setCharacterEncoding(StandardCharsets.UTF_8.name());response.setHeader(HttpHeaders.CONTENT_DISPOSITION, ContentDisposition.attachment().filename("1" + ".pdf", StandardCharsets.UTF_8).build().toString());// 使用ByteArrayOutputStream来捕获PDF字节流try (ByteArrayOutputStream os = new ByteArrayOutputStream()) {// 创建ITextRenderer对象ITextRenderer renderer = new ITextRenderer();ITextFontResolver fontResolver = renderer.getFontResolver();ClassPathResource classPathResource = new ClassPathResource("/font/simsun.ttc");//加载字体路径,避免生成的pdf加载不出来汉字。fontResolver.addFont(classPathResource.getPath(), BaseFont.IDENTITY_H, BaseFont.EMBEDDED);renderer.setDocumentFromString(processHtml);renderer.layout();renderer.createPDF(os);// 将生成的PDF字节流写入到HTTP响应的输出流中response.getOutputStream().write(os.toByteArray());response.getOutputStream().flush();} catch (DocumentException e) {e.printStackTrace();response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "PDF generation failed");}
//...

http://www.ppmy.cn/embedded/139737.html

相关文章

【实用技能】使用 TX Text Control 创建带有嵌入式附件的 PDF 文档

TX Text Control .NET Server for ASP.NET(下载试用最新版)是一款Web应用程序的文档处理控件,包括用于 ASP.NET、ASP.NET Core 和 Angular 的文档编辑和查看的客户端包。目前TX Text Control .NET Server for ASP.NET 支持 .NET 5、.NET 6 和…

uniapp 城市选择插件

uniapp城市选择插件 如上图 地址 完整demo <template><view><city-selectcityClick"cityClick":formatName"formatName":activeCity"activeCity":hotCity"hotCity":obtainCitys"obtainCitys":isSearch&quo…

【系统架构设计师】真题论文: 论软件需求获取技术及应用(包括解题思路和素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2011年 试题4)解题思路论文素材参考软件需求获取的目标与重要性软件需求获取技术软件需求获取技术的应用案例真题题目(2011年 试题4) 软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的…

学习路之phpstudy--安装mysql5.7后在my.ini文件中无法修改sql_mode

windows环境下使用phpstudy安装mysql5.7后需要修改mysql中的sql_mode配置&#xff0c;但是在phpstudy中打开mysql配置文件my.ini后&#xff0c; 通过查找找不到sql_mode或sql-mode&#xff0c; 此时无法在my.ini文件中直接进行修改&#xff0c;可以使用mysql命令进行修改&#…

数据分析-49-时间序列信息编码之采用虚拟变量

文章目录 1 基本概念1.1 虚拟变量(one-hot)1.2 时间特征2 模拟数据2.1 日期序列2.2 目标序列3 编码虚拟变量(one-hot)3.1 年份编码3.2 月份编码3.3 星期几编码4 拟合模型4.1 构建数据集(每月编码)4.2 构建数据集(每日编码)5 参考附录1 基本概念 1.1 虚拟变量(one-hot) 虚拟变…

项目上线之后,出现过线上问题吗?怎么排查和解决的?

在面试中&#xff0c;相信大家都遇到过这个问题。 本文将通过训练营内部抽奖项目的问题案例——抽奖结果通知延迟和抽奖列表加载缓慢&#xff0c;讲清楚它们的解决方法和优化策略。 回答思路 这些问题都是在我负责的项目中出现过的&#xff0c;给我留下了深刻的印象。 一、…

大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…

药方新解:Spring Boot中药实验管理系统设计

3系统分析 3.1可行性分析 通过对本中药实验管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本中药实验管理系统采用SSM框架&#xff0c;JAVA作为开发语…