尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

java freemarker(ftl)模板填充导出PDF,支持中文乱码

java freemarker(ftl)模板填充导出PDF,支持中文乱码
📅 发布时间:2026/6/18 22:07:33

添加依赖

        <dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.32</version></dependency><dependency><groupId>com.openhtmltopdf</groupId><artifactId>openhtmltopdf-pdfbox</artifactId><version>1.0.10</version></dependency>

java代码

    public void exportPdf(String html, String outputPath) throws Exception {PdfRendererBuilder builder = new PdfRendererBuilder();builder.useFastMode();// 注册思源宋体——关键点builder.useFont(() -> getClass().getClassLoader().getResourceAsStream("xxx/siyuansongti.ttf"), "Source Han Serif CN");builder.useFont(() -> getClass().getClassLoader().getResourceAsStream("xxx/DejaVuSans-7.ttf"), "DejaVu Sans");builder.withHtmlContent(html, null);builder.toStream(new FileOutputStream(outputPath));builder.run();}@GetMapping("test")public void test() throws Exception{Configuration cfg = new Configuration(Configuration.VERSION_2_3_32);cfg.setDefaultEncoding("UTF-8");cfg.setClassLoaderForTemplateLoading(this.getClass().getClassLoader(),"templates");Template tpl = cfg.getTemplate("xxx/index.ftl");StringWriter writer = new StringWriter();tpl.process(buildDto(), writer);exportPdf(writer.toString(), "D:/xxx.pdf");}

ftl模板使用字体库

文件名:xxx.ftl

ps:处理中文乱码

        body {font-family: "Source Han Serif CN", "DejaVu Sans";font-size: 12px;margin: 0;padding: 0;}

字体库

https://chenyanbin-software.oss-cn-guangzhou.aliyuncs.com/%E5%AD%97%E4%BD%93%E5%BA%93/DejaVuSans-7.ttf

https://chenyanbin-software.oss-cn-guangzhou.aliyuncs.com/%E5%AD%97%E4%BD%93%E5%BA%93/siyuansongti.ttf

更多字体库:https://www.mianfeiziti.com/thread-491.htm

 

作者:陈彦斌
出处:https://www.cnblogs.com/chenyanbin/
关注: 点我哟(^U^)ノ~YO

相关新闻

  • 2025 最新仿石漆厂家权威推荐榜:真石漆 / 绿色环保仿石漆优质品牌精选仿石漆/真石漆/绿色真石漆/有资质的仿石漆公司推荐
  • 2025年纱线烘干机制造厂权威推荐榜单:气流烘干机/筒子烘干机/快速烘干机源头制造厂精选
  • CF1630C Paint the Middle

最新新闻

  • 雀魂数据分析终极神器:3步解锁你的麻将潜能提升秘籍
  • 深入解析8位MCU电机控制SDK:ADC缓冲模式、LED与开关驱动实战
  • MetalLB v0.13到v0.14技术架构转型:从ConfigMap到CRD的现代化迁移实践
  • 052、回流焊与波峰焊基础
  • 终极免费等距图表工具:FossFLOW完全指南与一键部署方案
  • 2026江浙沪线下零基础AI培训避坑指南:从转行到高薪就业的理性选择 - 品牌报告

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号