文章目录
度娘搜一搜其实很多在线转换网站,但我们都清楚,这些网站的特点是:质量差、转换量低、有水印、不支持漂浮页、下载过程繁琐……,总结就是:要充钱,下面放一个免费、高质量、无水印、无限转换量、支持漂浮页、一键导出、一劳永逸的教程
01 - 适用场合
教程适用于html web to PDF
以及html file to PDF
,还适合于漂浮页的PDF
导出,可以直接把某个在线网页进行转换,也可以把本地网页文件进行转换,最终都会转换成PDF
02 - 环境要求
Windows、Python 2.x 以上(如果不会安装Python的,直接下载一个Anaconda,一键安装后,打开Spyder就可以进行Python编程)
03 - 操作步骤
编程API来源于一个网站pdfcrowd,它提供免费的在线转换,但是在线转换有标记以及水印等问题,所以我们使用这个网页提供的API进行编程转换,这样就不会有标记和水印
3.1 - 注册账号
进入pdfcrowd,点击右上方的Sign up,填写用户名、密码和邮箱进行注册,然后到邮箱中确定注册,随后便自动返回页面登陆成功
3.2 - 安装pdfcrowd包
pdfcrowd是该网页提供的API,win+R
打开命令行,输入:pip install pdfcrowd
,随后安装完成
3.3 - 获取API Key
登陆成功后网页右上角点击自己的用户名,进入账户管理页面,在左侧点击Change API Key获得Key
,这个Key
需要在编程中使用
3.4 - 编程运行
注册时的用户名替换到your_name
中,上一步得到的key替换到your_key
中,网页地址 / 本地html文件替换到your_url / your_path
中,运行程序,在程序同一个目录下得到example.pdf
html web to PDF(网页转PDF)
import pdfcrowd
import sys
try:
# create the API client instance
client = pdfcrowd.HtmlToPdfClient('your_name', 'your_key')
# run the conversion and write the result to a file
client.convertUrlToFile('your_url', 'example.pdf')
except pdfcrowd.Error as why:
# report the error
sys.stderr.write('Pdfcrowd Error: {}\n'.format(why))
# handle the exception here or rethrow and handle it at a higher level
raise
html file to PDF(文件转PDF),
import pdfcrowd
import sys
try:
# create the API client instance
client = pdfcrowd.HtmlToPdfClient('your_name', 'your_key')
# run the conversion and write the result to a file
client.convertFileToFile('your_path', 'example.pdf')
except pdfcrowd.Error as why:
# report the error
sys.stderr.write('Pdfcrowd Error: {}\n'.format(why))
# handle the exception here or rethrow and handle it at a higher level
raise
3.5 - 运行结果
以小白的FreeRTOS主页为例,转换为PDF,效果如下:
转换的结果不是图片,而是与网页相符的文件+链接+图片,矢量格式,无限放大,无水印
另外还可以转换网页中的漂浮页,比如某些公司官网的电子offer,一般都是漂浮页,如果直接打印就会把漂浮页后面的内容也打印,此时可以先转换为PDF,稍加处理后再打印
04 - 总结
Python其实自带了一个html转PDF的模块pdfkit,本质上是wkhtmltopdf网页API的封装,与小白的操作异曲同工,但是用之前需要下载wkhtmltopdf这个软件,然后还需要设置它的路径,过程更加繁琐一点,而pdfkit的转换效果与pdfcrowd差不多,小白更喜欢简单易操作的pdfcrowd