ITextRenderer将PDF转换为HTML详细教程

引入依赖

复制代码
   <dependency>
      <groupId>org.xhtmlrenderer</groupId>
      <artifactId>flying-saucer-pdf-itext5</artifactId>
      <version>9.1.18</version>
  </dependency>

问题一:输出中文字体

下载字体simsun.ttc

下载链接:simsun.ttc · xiulian/fonts - Gitee.com

前端通过以下代码引入

css 复制代码
@Font-face{
font-family:"myFont",
src:url("下载的字体的路径")
}

后端通过一下代码引入

java 复制代码
ClassPathResource resource=new ClassPathResource("assets/font/simsun.ttc");
font.addFont(resource.getUrl.toString(),Base.IDENTITY_H,BaseFont.EMBDDED)

问题二:设置页面大小以及页面间距

css 复制代码
@Page{
size:A4;
margin:0
}

问题三:报错<link>没有以</link>结束

解决方案:在html中所有结束符都要加上</..>结束,例如<img></img>、<meta></meta>

问题四:图片和二维码不显示

ip地址加端口号加对应路径,列如本地http://localhost:81/admin/asset/top/png

总代码

前端

前端的html正常写就可以了,需要注意的就是样式里面的@page定义PDF样式的和@font-face引入字体以及每个html标签必须有结束符

后端

java 复制代码
@GetMapping()
public String exportPage(){
Ticket detail=ticketService.detail();
model.addAttribute("map",detail);
return "ticket/index";
}
java 复制代码
public void export(TicketParam param){
//二维吗生成
String code="图片路径";
File file=FileUtil.file(code);
if(!file.exists()){
FileUtil.mkParentDirs(file);
}
}
QRCodeUtil.generate("字符串",100,100,file);
//获取html
//通过okhttp访问上面的url地址获取html页面
相关推荐
_阿南_6 小时前
项目中新增给AI制定的代码规范
前端·程序员
名字还没想好☜7 小时前
React 实现暗黑模式切换:localStorage 持久化、SSR 首屏闪烁与跟随系统主题
前端·javascript·react.js·ecmascript·react·next.js
console.log('npc')8 小时前
Git 冲突与 AI 协助指南
前端·人工智能·git·大模型
鲲穹AI种草9 小时前
PDF 文档多格式转换处理,多款 PDF 处理工具能力客观记录
pdf·文档格式转换
爱学堂IT分享9 小时前
Cesium可视化系统实战课程-Cesium教程学习
前端
糖墨夕10 小时前
理解大语言模型:Agent 的“大脑”
前端·agent
Rain的Java大神之路10 小时前
JavaWeb开发如何解决跨域问题
java·前端·后端·nginx·web安全·面试·运维开发
cpolar技术支持10 小时前
浏览器也能跑本地 AI:用 Transformers.js + WebGPU 做一个最小推理 Demo,cpolar 给同事远程体验
前端·ai·cpolar·webgpu·transformers.js
计算机魔术师12 小时前
OpenAI 发布 GPT-6 Astra:多项基准刷新纪录, cybersecurity 能力达 Critical 阈值
前端
xy345312 小时前
Axure9.0中继器遮罩实现方法
前端·ui·html·axure·原型·产品设计