怎样把html转化为pdf文件

怎样把html转化为pdf文件,第1张

1、准备一个专业的html转pdf工具即可

2、打开HTML转PDF工具

3、选择需要转换的html网页

4、填写转换后的pdf文件名称

5、点击转换图标

6、转换完成后下载目录文件

7、下载成功后保存即可!

最近公司给了个任务,差不多的流程就是接受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

1 用Adobe Acroat 8.1.2,打开网页后,页面右键菜单中会出现一个“转换为Aobe PDF的选项,点击就可以转换。

 安装Adobe Acrobat后会默认在IE浏览器中添加PDF工具栏

该工具可以方便的将网页转化成PDF文档,或者添加入已有的PDF文档,Adobe PDF Explorer工具栏则可以在IE的收藏夹界面内管理window内的HTML文档与PDF文档的转化。

     2、安装单独的pdf虚拟打印机(pdffactory、ultra pdf等),通过网页的打印功能转换。

3使用客户端软件HTML2PDF_Pilot。

HTML2PDF_Pilot的截面如上图,很简洁。

如果只是要完成最简单的工作只需如箭头所示,点击上方的添加按钮添加HTML文档然后点击转换,稍等既可以完成一个HTML文档的转化工作。

两种方法的比较

灵活性:

PDF工具栏的方式相比客户端的方式要灵活许多。

在使用的过程中发现HTML2PDF_Pilot不能通过URL(网址)直接转化PDF文档,而工具栏只需在浏览的过程随意使用。

功能:在功能的环节上,客户端方式的HTML2PDF_Pilot就明显要比PDF工具栏要强大许多

工具栏只提供了最基本的保存和添加入已有文档的功能,而HTML2PDF_Pilot则提供了更为丰富的选项。

另外,如果需要批量转化网页文件的话,工具栏的方式也无法提供对应的功能。

其实还是有很多可以选择的方式,比如把网页转化为WORD的文件格式然后通过WPS软件来转化文档等,只要能灵活运用,html文件转PDF是非常简单的事情。


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

原文地址: http://outofmemory.cn/zaji/7046678.html

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

发表评论

登录后才能评论

评论列表(0条)

保存