Java实现将HTML代码转成PDF格式文件
程序员文章站
2022-05-28 16:45:58
...
Java实现将HTML代码转成PDF格式文件
大家好,今天在工作中遇到一个需要将HTML转成PDF的一个功能,于是查资料,研究了一下,找到的大部分都是使用jar包的,使用pom依赖的很少,这是个人认为还比较简单的一个使用pom依赖的方式,现在自己做一个总结。
本人也是一个刚入行的小白,如果有不对的地方希望,大家包涵并指出,大家一起进步。加油!
首先引入HTML代码转PDF格式文件的pom依赖
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>flying-saucer-pdf-itext5</artifactId>
<version>9.0.3</version>
</dependency>
编写工具类
public void html2pdf(String htmlContent, File pdfFile) throws Exception {
OutputStream os = new FileOutputStream(pdfFile);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(htmlContent);
// 中文
ITextFontResolver fontResolver = renderer.getFontResolver();
ClassPathResource resource = new ClassPathResource("static/fonts/simsun.ttc"); // 下面有截图
System.err.println(resource.toString());
fontResolver.addFont(resource.getURL().toString(), BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
renderer.layout();
renderer.createPDF(os);
os.close();
}
逻辑代码
public static void main(String[] args) {
// 准备HTML模板代码
String htmlTemplate = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n" +
"<html lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\">\n" +
"<head>\n" +
"<meta charset=\"UTF-8\"></meta>\n" +
"<title>测试页面</title>\n" +
"</head>\n" +
"<body style=\"font-family: SimSun;\">\n"+
"<p class=\"test\">协议编号:ZRXY-201707021</p>\n"+
"<p><strong>债权转让</strong><strong>协议</strong></p>\n"+
"<p><strong>甲方(转让方):123</strong></p>\n"+
"<p style=\"color:red;\">地址:天津市</p>\n"+
"<p>姓名:张三</p>\n"+
"<p>身份证号:2222222222</p>\n"+
"<p><strong>乙方(受让方):详见附表1</strong></p>\n"+
"<p><strong>丙方(</strong><strong>居间</strong><strong>服务方):</strong><strong>XXXX网络科技有限公司</strong></p>\n"+
"<p><strong>注册号:2588888888</strong></p>\n" +
"<p>地址: 天津市滨海高新区</p>\n" +
"<p>法定代表人:王五</p>\n" +
"<p> </p>\n"+
"<p><strong>鉴于:</strong></p>\n"+
"<p>现甲乙丙三方本着互惠互利的原则,经过平等协商就乙方受让甲方债权相关事宜特签订本《债权转让协议》(以下简称“本协议”),并承诺共同遵守。</p>\n"+
"<p><strong>2.1转让的债权资产详情</strong></p>\n"+
"<table border=\"none;\" style=\"width:90%;border-collapse:collapse;\">\n"+
"<tbody>\n"+
" <tr>\n"+
" <td>\n"+
" <p><strong>转让的债权资产本金金额</strong></p>\n"+
" </td>\n"+
" <td>13593.86</td>\n"+
" <td>\n"+
" <p><strong>债权转让垫付利息</strong></p>\n"+
" </td>\n"+
" <td>28.61</td>\n"+
" <td>\n"+
" <p><strong>债权资产转让日期</strong></p>\n"+
" </td>\n"+
" <td>2017-07-02</td>\n"+
" </tr>\n"+
" <tr>\n"+
" <td>\n"+
" <p><strong>借款利率</strong></p>\n"+
" </td>\n"+
" <td>12.80<strong>%</strong></td>\n"+
" <td>\n"+
" <p><strong>还款方式</strong></p>\n"+
" </td>\n"+
" <td colspan=\"3\">一次性还本付息</td>\n"+
" </tr>\n"+
" <tr>\n"+
" <td>\n"+
" <p><strong>原担保措施</strong></p>\n"+
" </td>\n"+
" <td colspan=\"6\">\n"+
" <p><strong>债务人正常还款</strong></p>\n"+
" </td>\n"+
" </tr>\n"+
" <tr>\n"+
" <td>\n"+
" <p><strong>手续费</strong></p>\n"+
" </td>\n"+
" <td colspan=\"6\">0.00</td>\n"+
" </tr>\n"+
" <tr>\n"+
" <td>\n"+
" <p><strong>债权资产转让价款</strong></p>\n"+
" </td>\n"+
" <td colspan=\"6\">13622.47</td>\n"+
" </tr>\n"+
" </tbody>\n"+
"</table>\n" "</body>\n" +
"</html>\n";
System.err.println(htmlTemplate); // HTML模板完整内容
File file = new File("D:/a/测试.pdf"); // 创建文件对象
try {
htmPdfUtil.html2pdf(htmlTemplate, file); // 调用封装好的工具类
} catch (Exception e) {
e.printStackTrace();
}finally {
System.err.println("转换完成");
}
}
中文样式路径截图
上一篇: 三有两无