使用 Python 制作属于自己的 PDF 电子书

之前介绍过一篇如何将 PDF 转换为图片的文章(

点击这里查看

),今天分享的则是如何将 HTML 保存为 PDF。

熟练利用好这招,可以试着自己把精品网页内容做成 PDF 电子书。

作者:taceywong

来源:http://www.cnblogs.com/taceywong/p/5643978.html

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

安装

1. Install python-pdfkit:

2. Install wkhtmltopdf:

使用

一个简单的例子:

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

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

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

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

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

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

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

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

配置

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

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

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

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

问题

:

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

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

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

确保两项:

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

2)、在html中加入**

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

下面是生成的PDF截图

另也可直接使用:https://pdfcrowd.com/#convertbyinput

题图:pexels,CC0 授权。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180202A0E8ZR00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励