python之把HTML文件转换成PDF格式文档
前言
网上很多支持将html转pdf格式工具,有在线的、离线的;也有免费和收费的。本篇记录下使用脚本的方式进行格式转换操作
一、环境配置
1、安装pdfkit
pip install pdfkit (本篇在python 3.x上配置)
2、PC端安装 wkhtmltopdf,根据自动的电脑配置(32/64位)下载后傻瓜式安装即可
wkhtmltopdf下载地址:wkhtmltopdf
3、配置wkhtmltopdf
path4、wkhtmltopdf的参数详情:option
二、示例
1、全局参数
--collate 当输出多个副本时进行校验(这是默认设置)
--no-collate 当输出多个副本时不进行校验
--cookie-jar从提供的JAR文件中读写cookie数据
--copies设置输出副本的数量(默认主1),其实为1就够了
-d, --dpi指定一个要分辨率(这在 X11 系统中并没有什么卵用)
-H, --extended-help 相对 -h 参数,显示更详细的说明文档
-g, --grayscale 指定以灰度图生成PDF文档。占用的空间更小
-h, --help 显示帮助信息
--htmldoc 输出程序的html帮助文档
--image-dpi当页面中有内嵌的图片时, 会下载此命令行参数指定尺寸的图片(默认值是 600)
--image-quality当使用 jpeg 算法压缩图片时使用这个参数指定的质量(默认为 94)
--license 输出授权信息并退出-l,
--lowquality 生成低质量的 PDF/PS ,能够很好的节约最终生成文档所占存储空间
--manpage 输出程序的手册页-B,
--margin-bottom设置页面的 底边距-L,
--margin-left设置页面的 左边距 (默认是 10mm)-R,
--margin-right设置页面的 右边距 (默认是 10mm)-T,
--margin-top设置页面的 上边距-O,
--orientation设置为“风景(Landscape)”或“肖像(Portrait)”模式, 默认是肖像模块(Portrait)
--page-height页面高度-s,
--page-size设置页面的尺寸,如:A4,Letter等,默认是:A4
--page-width页面宽度
--no-pdf-compression 不对PDF对象使用丢失少量信息的压缩算法,不建议使用些参数, 因为生成的PDF文件会非常大。
-q, --quiet 静态模式,不在标准输出中打印任何信息
--read-args-from-stdin 从标准输入中读取命令行参数,后续会有针对此指令的详细介绍, 请参见 **从标准输入获取参数**
--readme 输出程序的 readme 文档
--title生成的PDF文档的标题,如果不指定则使用第一个文档的标题
-V, --version 输出版本信息后退出
2、实现代码
import pdfkit
#自定义参数
options={
'page-size':'A4', # 默认是A4 Letter etc
'margin-top':'0.05in', #顶部间隔
'margin-right':'2in', #右侧间隔
'margin-bottom':'0.05in', #底部间隔
'margin-left':'2in', #左侧间隔
'encoding':"UTF-8", #文本个数
'dpi':'96',
'image-dpi':'600',
'image-quality':'94',
'footer-font-size':'12', #字体大小
'no-outline':None
}
pdfkit.from_url('C:/Users/admin/Desktop/Appium之环境搭建篇.html','Appium之环境搭建篇.pdf', options=options)
3、运行结果
results遇到的坑:
1、图片会被分割,未解决(网上的案例说是把分页间隔给加大,但是实际效果不佳)
2、字体大小,参数中的字体大小设置不生效,未解决