关于html导出pdf
公司最近要将html导出PDF。正好忙完手中的活研究了下
1.前端的有jspdf,只能做成PDF图片
2后端
有 itext 网上说5.*以上项目不开源的话收费,且有字体问题(没有亲测)
openPDF根据itext 4.*维护的,本来想用这个,无奈基本没有相关资料。
发现了wkhtmltopdf 支持win和linux 缺点就是需要插件,有点慢。胜在网上资料多。
具体实现大家自行百度,这里只聊一下对于vue等在这种渲染框架带来的坑。
1.当我运行vue实现网页之后发现生成的PDF为空白 添加
–debug-javascript(输出js调试参数)命令之后各种的 SyntaxError: Parse error
无语了。这是别人实现的页面,我才不想去改别人的代码,(自己的代码都懒得看)
2.在网上搜集的各种资料之后,都毫无进展。
于是一个大胆的想法出来了。
既然wkhtmltopdf js渲染不好。就让浏览器去做。然后将渲染后页面传给后端,wkhtmltopdf 禁用js --disable-javascript(禁止js参数)。在修改下html的 base 标签指向后端本地(主要是加载页面中的css文件)
标签为页面上的所有链接规定默认地址或默认目标。 通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白。 使用 标签可以改变这一点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括 、、、 标签中的 URL。
这样wkhtmltopdf 只做css渲染和dom渲染即可实现。
具体代码都写完在上。