首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Python将HTML转成PDF

主要使用的是wkhtmltopdf的Python封装——pdfkit

安装

1. Install python-pdfkit:

2. Install wkhtmltopdf:

Debian/Ubuntu:

Redhat/CentOS

MacOS

使用

一个简单的例子:

你也可以传递一个url或者文件名列表:

也可以传递一个打开的文件:

如果你想对生成的PDF作进一步处理, 你可以将其读取到一个变量中:

你可以制定所有的 wkhtmltopdf 选项 http://wkhtmltopdf.org/usage/wkhtmltopdf.txt. 你可以移除选项名字前面的 '--' .如果选项没有值, 使用None, False or * 作为字典值:

默认情况下, PDFKit 将会显示所有的 wkhtmltopdf 输出. 如果你不想看到这些信息,你需要传递一个 quiet 选项:

由于wkhtmltopdf的命令语法 , TOC 和 Cover 选项必须分开指定:

当你转换文件、或字符串的时候,你可以通过css选项指定扩展的 CSS 文件。

你也可以通过你的HTML中的meta tags传递任意选项:

配置

每个API调用都有一个可选的参数。这应该是 调用的一个实例. 采用configuration 选项作为初始化参数。可用的选项有:

二进制文件所在的位置。默认情况下pdfkit会尝试使用which(在类UNIX系统中) 或where(在Windows系统中)来判断

的前缀指定meta tags(元标签) - 默认情况是pdfkit-

示例 :针对wkhtmltopdf不在系统路径中(不在$PATH里面)

PATH里面):

问题

:

确保 wkhtmltopdf 在你的系统路径中(PATH), 会通过 configuration进行了配置 (详情看上文描述)。 在Windows系统中使用where wkhtmltopdf命令 或 在 linux系统中使用which wkhtmltopdf会返回 wkhtmltopdf二进制可执行文件所在的确切位置.

IOError: 'Command Failed'

如果出现这个错误意味着 PDFKit不能处理一个输入。你可以尝试直接在错误信息后面直接运行一个命令来查看是什么导致了这个错误 (某些版本的 wkhtmltopdf会因为段错误导致处理失败)

正常生成,但是出现中文乱码

确保两项:

1)、你的系统中有中文字体

2)、在html中加入

下面是我随便写的一个HTML表格:

下面是生成的PDF截图

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180702B0M39400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券