Python书籍的新变化,自己实现不花钱读遍所有Python书籍!

初学者有什么不懂的可以私信我——我刚整理了一套2018最新的0基础入门教程,无私分享,获取方法:看下面这个图,即可获取,内附:开发工具和安装包,以及系统学习路线图。

首要运用的是wkhtmltopdf的Python封装——pdfkit

安装 1. Install python-pdfkit: pip install pdfkit 2. Install wkhtmltopdf: sudo apt-get install wkhtmltopdfsudo yum intsall wkhtmltopdfbrew install Caskroom/cask/wkhtmltopdf 运用 一个简略的例子: import pdfkit pdfkit.from_url('http://google.com', 'out.pdf') pdfkit.from_file('test.html', 'out.pdf') pdfkit.from_string('Hello!', 'out.pdf') 你也能够传递一个url或者文件名列表: pdfkit.from_url(['google.com', 'yandex.ru', 'engadget.com'], 'out.pdf') pdfkit.from_file(['file1.html', 'file2.html'], 'out.pdf') 也能够传递一个打开的文件: with open('file.html') as f: pdfkit.from_file(f, 'out.pdf') 如果你想对生成的PDF作进一步处理, 你能够将其读取到一个变量中:

# 设置输出文件为False,将结果赋给一个变量 pdf = pdfkit.from_url('http://google.com', False)

请点击此处输入图片描述

你能够制定所有的 wkhtmltopdf 选项. 你能够移除选项名字前面的 '--' .假如选项没有值, 运用 None,Falseor * 作为字典值:

options = { 'page-size': 'Letter', 'margin-top': '0.75in', 'margin-right': '0.75in', 'margin-bottom': '0.75in', 'margin-left': '0.75in', 'encoding': "UTF-8", 'no-outline': None } pdfkit.from_url('http://google.com', 'out.pdf', options=options)

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

options = { 'quiet': '' } pdfkit.from_url('google.com', 'out.pdf', options=options)

因为wkhtmltopdf的指令语法 , TOC 和 Cover 选项有必要分开指定:

toc = { 'xsl-style-sheet': 'toc.xsl' } cover = 'cover.html' pdfkit.from_file('file.html', options=options, toc=toc, cover=cover)

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

# 单个 CSS 文件 css = 'example.css' pdfkit.from_file('file.html', options=options, css=css) # Multiple CSS files css = ['example.css', 'example2.css'] pdfkit.from_file('file.html', options=options, css=css)

请点击此处输入图片描述

你也能够经过你的HTML中的meta tags传递恣意选项:

body = """ Hello World! """ pdfkit.from_string(body, 'out.pdf') #with --page-size=Legal and --orientation=Landscape

配置

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

wkhtmltopdf —— wkhtmltopdf二进制文件地点的方位。默认状况下 pdfkit 会测验运用 which (在类UNIX体系中) 或 where (在Windows体系中)来判别.

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

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

config = pdfkit.configuration(wkhtmltopdf='/opt/bin/wkhtmltopdf')) pdfkit.from_string(html_string, output_file, configuration=config)

请点击此处输入图片描述

问题

IOError:'No wkhtmltopdf executable found':

保证 wkhtmltopdf 在你的体系途径中( $PATH), 会经过 configuration进行了配置 (详情看上文描述)。 在Windows体系中运用 where wkhtmltopdf指令 或 在 linux体系中运用 which wkhtmltopdf会回来 wkhtmltopdf二进制可执行文件地点的确切方位.

IOError:'Command Failed'

假如呈现这个过错意味着 PDFKit不能处理一个输入。你能够测验直接在过错信息后边直接运行一个指令来检查是什么导致了这个过错 (某些版本的 wkhtmltopdf会因为段过错导致处理失利)

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

保证两项:

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

2)、在html中加入**

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

charset="UTF-8">

width="400"border="1">

align="left">Item....align="right">1

align="left">衣服align="right">$241.10

align="left">化妆品align="right">$30.00

align="left">食物align="right">$730.40

align="left">tOTALalign="right">$1001.50

下面是生成的PDF截图

请点击此处输入图片描述

今天的文章给大家带到这里,一直在坚持给大家更新文章,如果对你有所帮助,可以多多转发和关注。

初学者有什么不懂的可以私信我——我刚整理了一套2018最新的0基础入门教程,无私分享,获取方法:看下面这个图,即可获取,内附:开发工具和安装包,以及系统学习路线图。

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

扫码关注云+社区

领取腾讯云代金券