《html转pdf-----wkhtmltopdf踩坑总结》

《html转pdf-----wkhtmltopdf踩坑总结》,第1张

最近公司给了个任务,差不多的流程就是接受json数据,然后最后生成图片。我想的办法是根据json数据生成html然后转成pdf。使用的语言是python。然后具体来说使用的工具就是使用python名为pdfkit的库去调用基于webkit的wkhtmltopdf。

目前来说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格式文件了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6275386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存