将html文件转换成pdf示例

java 转换 html 到pdf有许多类库,今天我们介绍一下第三方免费的类库openpdf。
1. openpdfopenpdf是免费的java类库 ,遵从lgpl 和 mpl协议,所以基本上能够可以随意使用。openpdf是基于itext的,目前来说也是维护的比较好的java操作pdf的开源软件。
话不多说,且看所需要的依赖,
org.jsoup jsoup 1.13.1 com.openhtmltopdf openhtmltopdf-core 1.0.6 com.openhtmltopdf openhtmltopdf-pdfbox 1.0.6jsoup可以将html文件转换成输入流等,也可以遍历html的dom节点,提取元素及样式等。
2. 示例本篇示例将以下html文件转换成pdf
.center_div { border: 1px solid #404e94; margin-left: auto; margin-right: auto; background-color: #f6d0ed; text-align: left; padding: 8px; } table { width: 100%; border: 1px solid black; } th, td { border: 1px solid black; } body,html,input{font-family:msyh;} hello java north! convert html to pdf. role name title marksman ashe the frost archer mages annie the dark child 射手 凯塔琳 皮城女警 以上html用浏览器打开如下,乱码是因为中文字体不识别,下面转换的时候会加载对应的字体来进行转换。
使用java转换html到pdf代码如下:
public class htmltopdfopensource { public static void main(string[] args) throws ioexception { htmltopdfopensource htmltopdfopensource = new htmltopdfopensource(); htmltopdfopensource.generatepdfbyopenhtmltopdf(); } private void generatepdfbyopenhtmltopdf() throws ioexception { file inputhtml = new file(e:javanorthjava-study-notejavaopensourcesrcmainresourcestest.html); //加载html文件 document document = jsoup.parse(inputhtml, utf-8); document.outputsettings().syntax(document.outputsettings.syntax.html); //引入资源目录,可以单独引入css,图片文件等 string baseuri = filesystems.getdefault() .getpath(javaopensourcesrcmainresources) .touri().tostring(); try (outputstream os = new fileoutputstream(javaopensourcesrcmainresourcestestopenleagueoflegends1.pdf)) { pdfrendererbuilder builder = new pdfrendererbuilder(); builder.withuri(javaopensourcesrcmainresourcestestopenleagueoflegends1.pdf); builder.tostream(os); builder.withw3cdocument(new w3cdom().fromjsoup(document), baseuri); //引入指定字体,注意字体名需要和css样式中指定的字体名相同 builder.usefont(new file(javaopensourcesrcmainresourcesfontsmsyh.ttf),msyh,1,baserendererbuilder.fontstyle.normal, true); builder.run(); } }}使用java代码转换成pdf如下(示例中使用了微软雅黑中文字体):
上述html文件中增加如下 外部样式 :
并在resources目录下添加style.css文件,重新生成pdf文件如下。
3. 总结本片介绍了使用openpdf将html文件转换成pdf文件。同时也使用了自定义字体,外部样式。但是以下几点需要格外注意。
java代码中加载的字体名称要和html引用的css样式中的字体名相同 ({font-family:msyh;})。html文件标签节点必须闭合().否则解析会失败。

英特尔芯片一个远程劫持漏洞,你怎么看?
怎么看待汽车电子车载48V技术方案
消防应急照明强启接线
黄章透露魅族16X将于下个月发布,简直猝不及防
苹果新iPhone或将采用下一代版本的FaceID 速度将更快更可靠
将html文件转换成pdf示例
盘点手机处理器都有哪些
线绕型铑铁温度传感器的主要技术参数
NVIDIA Jetson Orin Nano 助力森云智能打造事件相机开发套件
数码眼镜diy制作教程 超炫酷
220v电热管怎么连接_220v电热管接线图
三大运营商对比分析哪家强
KUKA C1-C2机器人工作原理
集成电路封装失效机理
采样电阻的作用_采样电阻的选型
FPC国产化迫在眉睫 FPC可以在一定程度上替代PCB
ROG ZENITH II EXTREME主板高清图集
我国首条无人驾驶高铁,配备有机器人服务
研究人员利用人工智能技术可以更好的分析冠状病毒
武汉市安装新型路灯:可为手机进行无线充电