目前来说html转pdf最主流的程序就是wkhtmltopdf,但是坑还是挺多的而且网上资源不是很丰富,所以写一篇踩坑总结。
##1. 无法读取本地文件
显示在html上好好的本地图片,到了pdf上就读取不出来,但是来源于网络(给一个url)的图片却能完美读出来。
后来发现,原来在上一个版本0.12.5是可以读取的,到了0.12.6不能读取了是因为其中的一个参数--enable-local-file-access变为了非默认。在python中改这个参数的方法是
然后再在后续调用wkhtmltopdf中加载这个option(我一开始想的是把value改成True,结果一直报错,吐了)
##2. 无法解析latex格式的公式
在html使用了MathJax提供的js去解析latex格式的数学公式,在html界面可以完美显示,但是到了pdf中就解析不了,然后我以为是没有添加'enable-javascript'的问题。结果加上之后还是不行。然后我发现又有一个参数叫做'no-stop-slow-scripts'的参数,可以等到js运行完毕之后再进行pdf的转化。结果还是不行。
然后我就在想会不会js在运行的时候出了什么问题,加上了'debug-javascripts'的参数。果然发现在调用MathJax提供的链接的时候发现这个链接已经过期了(我也不知道为啥过期了在html界面还能完美展示。。。),把js里的链接换成了
https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-AMS-MML_HTMLorMML
完美解决
##3. 部分css失效
css3中的flex全部失效,所以大家得换一下!
当时遇到了一个讲的很好的博客,给大家分享一下,然后再放一个官方文档的链接
博客:https://www.jianshu.com/p/4d65857ffe5e
官方文档:https://wkhtmltopdf.org/usage/wkhtmltopdf.txt
可以借助电脑自带的打印功能来将其保存为PDF格式的文件。使用电脑自带的浏览器将该文件打开,然后点击打印按钮,在出现的选项中点击另存为PDF格式文件即可。具体的 *** 作方法如下:
1、在电脑上找到一个HTML文件,点击右键,选择需要的使用的浏览器打开。
2、页面跳转以后可以看到该HTML文件已经使用浏览器打开了。
3、在页面中点击鼠标右键,选择打印按钮。
4、此时在出现的打印机对话框中点击目标打印机的下拉箭头,选择另存为PDF。
5、选择为另存为PDF以后点击保存按钮。
6、在d出的文件保存对话框中选定文件的存储位置并点击保存按钮。
7、此时打开保存文件的位置即可看到该由HTML生成的PDF文件,点击进入。
8、页面跳转以后进入到该打开的PDF文件界面,至此就完成了HTML文件转换为PDF格式文件了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)