摘要:一什么是是一个开源的,使用渲染引擎,把转换为文件的命令行工具。可以通过命令行参数输出默认的文档,通过命令行参数也可指定以格式输出当前处理文档的目录到指定文件。

一、什么是 wkhtmltopdf?

wkhtmltopdf 是一个开源的,使用Qt WebKit 渲染引擎,把 html 转换为 pdf 文件的命令行工具。wkhtmltopdf 还有一个双胞胎兄弟 wkhtmltoimage,顾名思义,它可以把 html 转换为 image 图片。

简单的讲,wkhtmltopdf 用于把网页转换成 pdf 文件。

详情可以参考:
官网
github地址

二、简单使用 1. 下载

下载对应操作系统的安装文件:下载地址

2. 使用

安装成功后就可以通过命令来直接使用了,它的命令格式为

wkhtmltopdf [GLOBAL OPTION]... [OBJECT]... 

[GLOBAL OPTION] 是用来添加全局参数的区域, [OBJECT] 是用来添加 wkhtmltopdf 对象(wkhtmltopdf 把对象分为 3 类,后文有详细内容)的区域,如果有多个对象,则按顺序放入。 则用以指定输出的 PDF 文件。

3. 示例

使用默认参数,把 csdn 网页转为 pdf 的示例如下:

➜  ~ wkhtmltopdf https://www.csdn.net /Users/kevin/Desktop/csdn.pdf
Loading pages (1/6)
QFont::setPixelSize: Pixel size <= 0 (0)                     ] 61%
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
三、对象和参数详解

命令 wkhtmltopdf [GLOBAL OPTION]... [OBJECT]... 中,OBJECT 表示一个对象。在 wkhtmltopdf 中,wkhtmltopdf 可以把多个对象输出到文件中,其中每个对象可以是页面对象,封面对象和大纲对象。对象按照命令行中的顺序,输出到pdf的结果文件里。

1. 页面对象

页面对象使用以下方式将单个网页的内容放入输出文档中

(page)?  [PAGE OPTION]...

(page)? 表示 page可以省略不写,即在不标明的时候,默认为页面对象。为页面对象所设置的参数可以被放置在全局参数域([GLOBAL OPTIONS])和页面参数域([PAGE OPTIONS])中,程序会根据实际情况在所有参数中找到合适的参数应用到页面、页眉和页脚。

2. 封面对象

封面对象可以简单理解为是特殊的页面对象,能在页面对象上使用的参数,在封面对象上也都能使用。
区别在于:

封面对象输出的页面不会在TOC中出现

封面对象输出的页面不会包含页眉和页脚

封面对象的使用方式为

cover  [PAGE OPTION]...
3. 大纲对象

toc 是 table of content 的缩写,就是目录的意思,该对象会在输出文档中加入目录。其使用方式为

toc [TOC OPTION]...

所有能够在页面对象中使用的参数都可以用到大纲对象,并且还有许多的针对大纲对象的参数可以应用到大纲对象中。大纲是通过 XSLT 生成的,这意味着它可以被定义成任何你想看到的样子。可以通过命令行参数 --dump-default-toc-xsl 输出默认的 XSLT 文档,通过 --dump-outline 命令行参数也可指定以 XML 格式输出当前处理文档的目录到指定文件。后文会有详细的参数介绍

:以下参数信息基于 wkhtmltopdf 2018 年 6 月 11 号发布的 0.12.5 版本,其他版本可以到官网查看具体信息

命令行选项有两种:
选项可以基于每个对象或在全局中指定选项区域。
“全局选项”部分中的选项只能放置在全局选项区域
而额外的命令行选项可以为每一个对象指定或在全局区域(GLOBAL OPTION)中进行全局指定

下列说明中的全局选项只能被放置在全局区域

1. 全局参数
  • 可重复的意思是可以多次设置该参数,用以指定多个参数值 ↩
  • 这相当于进行了如下四个设置:--header-left="[webpage]" --header-right="[page]/[toPage]" --top 2cm --header-line ↩ 一、什么是 wkhtmltopdfwkhtmltopdf 是一个开源,使用Qt WebKit 渲染引擎,把 html 换为 pdf 文件命令工具wkhtmltopdf 还有一个双胞胎兄弟 wkhtmltoimage,顾名思义,它可以把 html 换为 image 图片。 简单讲,wkhtmltopdf 用于把...

    Web应用程序如何创建 PDF

    ...眉和页脚结束。在我之前推文时,最受欢迎选项是wkhtmltopdf,以及使用无头Chrome和Puppeteer打印。 WKHTMLTOPDF wkhtmltopdf 接受HTML文件或多个文件,以及样式表,并将其换为PDF。它通过使用WebKit渲染引擎来实现这一点。 因此,...

    AlexTuan

    PHP -------wkhtmltopdf使用方法

    ...单HTML代码,复杂HTML+css无法生成。网上找到了强大wkhtmltopdf。 二.wkhtmltopdf介绍 工具全名叫 "wkhtmltopdf" ; 是一个使用 Qt WebKit 引擎做渲染,能够把html 文档换成 pdf 文档 或 图片(image) 命令工具。(强调一下:是 “命...

    draveness

    初识wkhtmltopdf

    ...通table,图表引用了https://www.chartjs.org/ 遇到问题详见wkhtmltopdf chartjs 在网上查了下前后端都可以将html生成pdf,考虑到实现效果以及效率,最后决定将化工作在服务端使用PHP完成。本着最好不要额外安装软件原则,...

    Towers

    初识wkhtmltopdf

    ...通table,图表引用了https://www.chartjs.org/ 遇到问题详见wkhtmltopdf chartjs 在网上查了下前后端都可以将html生成pdf,考虑到实现效果以及效率,最后决定将化工作在服务端使用PHP完成。本着最好不要额外安装软件原则,...

    April

    阅读 1607·2019-08-30 15:53

  • 前端面试题-和的区别

    阅读 2882·2019-08-30 14:14

  • JS基础入门篇(二十)—事件和事件对象(一)

    阅读 2403·2019-08-29 15:36

  • 《SVG精髓》笔记(二)

    阅读 877·2019-08-29 14:11

  • Asp.net mvc 知多少(一)

    阅读 1101·2019-08-27 11:04

  •