html5转换thymeleaf语法,使用Itext7+thymeleaf 实现html转PDF功能

使用Itext7+thymeleaf 实现html转PDF功能html

方案:ide

1:导入依赖字体

2:准备字体、导出文件的路径、写好Thymeleaf的html模板spa

3:设置字体,字符集code

4:设置传入Thymeleaf的html模板参数htm

5:在导出的目录下建立一个pdf文件对象

6:将html元素转换到PDF中模板引擎

[Maven: com.itextpdf:layout:7.1.7] utf-8

com.itextpdf.layout.font.FontProvider  ### 支持自定义字体,中文及加粗(引入字体时须要用英文名称)文档

FontProvider fontProvider = new FontProvider();

fontProvider.addFont(fontProvider.getClass().getClassLoader().getResource("font/simsun.ttf").getPath());

fontProvider.addFont(fontProvider.getClass().getClassLoader().getResource("font/simhei.ttf").getPath());

fontProvider.addStandardPdfFonts();

[Maven: com.itextpdf:html2pdf:2.1.5]

com.itextpdf.html2pdf.ConverterProperties ### 设置属性,包括字体,字符集等

ConverterProperties converterProperties = new ConverterProperties();

converterProperties.setFontProvider(fontProvider);

converterProperties.setCharset("utf-8");

[Maven: org.thymeleaf:thymeleaf:3.0.11.RELEASE]

org.thymeleaf.context.Context ### 设置传入Thymeleaf的html模板参数

Context ctx = new Context();

ctx.setVariable("baseUrl", (String)extraMap.get("baseUrl"));

建立一个PDF文件,并将html元素转换到PDF中

[Maven: com.itextpdf:layout:7.1.7]

com.itextpdf.layout.Document  ### 建立PDF文档对象

[Maven: com.itextpdf:html2pdf:2.1.5]

com.itextpdf.html2pdf.HtmlConverter   ### html转换器将html->pdf

[Maven: org.thymeleaf:thymeleaf:3.0.11.RELEASE]

org.thymeleaf.ThmplateEngine  ### thymeleaf模板引擎类,将html模板转化为String

//中文Invoice

File invoiceFileZh = new File("PDF路径.pdf");

Document documentZh = new Document(new PdfDocument(new PdfWriter(new FileOutputStream(invoiceFileZh))), PageSize.A4);

documentZh.setMargins(10, 20, 10, 20);//设置边距

HtmlConverter.convertToElements(templateEngine.process("invoice/en.html", ctx), converterProperties)

.stream().forEach(iElement -> documentZh.add((IBlockElement) iElement));

documentZh.close(); 关闭文档流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值