wkhtmltopdf 0.12.6 中文文档(精心整理)

2023-12-04 12:32

本文主要是介绍wkhtmltopdf 0.12.6 中文文档(精心整理),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

wkhtmltopdf 0.12.6 中文文档

说明

  1. 示例的测试代码均在 Windows10 的 Linux子系统 中进行;
  2. 原文档地址:https://wkhtmltopdf.org/usage/wkhtmltopdf.txt
  3. 版本名称: wkhtmltopdf 0.12.6 (with patched qt)

概述

wkhtmltopdf patched qt 是将一个或多个HTML页面合并为一个PDF文档的应用程序。

基本语法

wkhtmltopdf [GLOBAL OPTION]... [OBJECT]... <output file>

GLOBAL OPTION : 全局选项
OBJECT: 输入的文档对象,即网页(页面对象)、封面、目录中任何对象
output file: 输出的PDF文件, 如../dir/file_name.pdf

文档对象

wkhtmltopdf能够将多个对象(页面对象、封面、目录等)合并输出到一个PDF文件中,这个对象可以是网页(页面对象)、封面、目录中的任何一个或多个。
这些对象输出到PDF文件中的顺序,可以通过命令行中的选项参数配置。
配置选项参数,既可以针对每个对象配置选项参数,也可以配置全局选项。

配置选项参数有两种方式:

  1. 配置全局选项
  2. 配置页面选项,针对输入的文档对象配置参数

注意:
全局选项只能在 全局选项区域 [GLOBAL OPTION] 处配置,也就是 wkhtmltopdf 后面的位置
只针对某个输入文档对象的配置选项,紧跟在输入对象之后,进行配置

> 页面对象

页面对象是将输入的单个网页的内容输出到PDF文档中。

页面对象的参数可以配置在全局选项区域 [GLOBAL OPTION] 或 页面选项区域 [PAGE OPTION] 的位置。
在下方的【页面选项】、【页眉页脚选项】部分,可以找到适合你需求的选项配置。

语法

(page)? <input url/file name> [PAGE OPTION]...

input url/file name: 输入的页面文件对象
PAGE OPTION:页面选项

示例

wkhtmltopdf https://www.baidu.com/ --no-images  /mnt/d/pdf/baidu.pdf

> 封面对象

封面对象是将输入的单个网页的内容输出到PDF文档中。

封面对象生成的PDF页面,不会出现在目录中,也没有页眉和页脚。

所有页面对象的选项(页面选项),对于封面对象同样也适用。

语法

  cover <input url/file name> [PAGE OPTION]...

示例

wkhtmltopdf --footer-center '页脚内容'  cover https://www.baidu.com/ --no-images https://www.baidu.com/more/ --no-images  /mnt/d/pdf/baidu.pdf

> 目录对象

目录对象是将内容中的 <h?> 标签生成目录,然后把目录的内容输出到PDF文档中。

所有页面对象的选项(页面选项),对于目录对象同样也适用,另外目录对像还有自己对应的专门【目录选项】。

目录是通过XSLT样式表生成的,这意味着可以对其进行自定义样式设置,使其外观符合您的样式要求。

要想了解目录如何自定义样式,可以通过wkhtmltopdf --dump-default-toc-xsl 选项,查看默认样式配置,然后可以通过--dump-outline选项,将生成的大纲(目录)保存到文件中,进行查看修改对应样式。要想了解更多内容,请查看【大纲选项】。

语法

   toc [TOC OPTION]...

全局选项

> 帮助与输出

选项描述默认/值可选值
-h, --help显示帮助
-H, --extended-help显示详细的帮助说明
–htmldoc输出HTML格式的帮助
–readme输出 readme 文档
–license输出许可证信息并退出
-V, --version输出版本信息并退出
–manpage输出man配置说明
–log-level 设置日志级别infonone, error, warn,info
-q, --quiet不输出任何日志,(同 --log-level none)

> 页面尺寸与方向

选项描述默认/值可选值
-B, --margin-bottom 设置页面下边距0
-L, --margin-left 设置页面左边距10mm
-R, --margin-right 设置页面右边距10mm
-T, --margin-top 设置页面上边距0
–page-width 页面宽度,值需带单位
–page-height 页面高度,值需带单位
-s, --page-size 页面尺寸A4A4, Letter, 等
-O, --orientation 设置纸张方向PortraitLandscape(横向) , Portrait(纵向)

> 输出PDF数量

选项描述默认/值可选值
–copies 输出副本的数量,也就是说一次性输出几份PDF1
–collate输出多个副本时进行校验默认选项
–no-collate输出多个副本时不校验

> 颜色图像分辨率

选项描述默认/值可选值
-d, --dpi 设置分辨率(基于X11的系统无效)96
-g, --grayscalePDF输出颜色为黑白色
–image-dpi PDF中嵌入的图像,缩放到该分辨率600
–image-quality jpeg图片压缩到这个质量94

> 其他

选项描述默认/值可选值
–cookie-jar 读取和写入cookie,从jar文件中存放jar文件路径
-l, --lowquality生成低质量文档;减少存储空间
–no-pdf-compression不压缩PDF文档(不建议使用)
–read-args-from-stdin从标准输入中读取命令行参数, 并应用到每个命令行,用于批处理
–title 生成PDF文档标题(不指定则使用第一个文档的标题)???
–use-xserver使用X服务器(没有X11,某些插件和其他东西可能无法工作)

页面选项

> HTTP、代理、cookie

选项描述默认/值可选值
–cookie 设置cookie,value应为url编码可重复
–custom-header 设置HTTP请求头可重复
–custom-header-propagation为每个加载的资源设置HTTP请求头,请求头的参数由–custom-header 指定
–no-custom-header-propagation不为每个加载的资源设置HTTP请求头
–bypass-proxy-for 可重复
-p, --proxy 使用代理
–proxy-hostname-lookup使用这个( --proxy)代理解析主机名
–username http授权用户名
–password Http认证密码,访问带账号密码的页面
–post 添加额外的POST字段可重复
–post-file 添加额外的文件可重复
–ssl-crt-path OpenSSL PEM格式的ssl客户端证书公钥的路径,optionally followed by intermediate ca and trusted certs
–ssl-key-password SSL客户端证书私钥密码
–ssl-key-path OpenSSL PEM格式的ssl客户端证书私钥的路径

> javascript 相关

选项描述默认/值可选值
–debug-javascript输出javascript调试信息
–no-debug-javascript不输出javascript调试信息默认选项
-n, --disable-javascriptweb页面禁用javascript
–enable-javascriptweb页面加载javascript默认选项
–javascript-delay 等待javascript完成的时间200单位毫秒
–run-script 页面加载完成后,运行此javascript
–stop-slow-scripts停止运行缓慢的javascripts默认选项
–no-stop-slow-scripts等待运行缓慢的javascripts
–window-status 等待window.status等于此字符串时,打印PDF页面

> 样式、显示、编码

选项描述默认/值可选值
–user-style-sheet 指定样式表,应用到每个页面
–default-header设置一个默认页眉,左侧是页面名称,右侧是页码;相当于设置 --header-left=’[webpage]’ --header-right=’[page]/[toPage]’ --top 2cm --header-line
–page-offset 设置起始页码0
–minimum-font-size 设置最小字号
–print-media-type使用print媒体类型代替screen类型
–no-print-media-type禁止用print媒体类型代替screen类型默认选项
–viewport-size <>设置视口大小,如果有自定义滚动条或css属性overflow 模拟窗口
–disable-smart-shrinking禁止使用WebKit pixel/dpi比值非恒定的智能缩放策略
–enable-smart-shrinking允许使用WebKit pixel/dpi比值非恒定的智能缩放策略默认选项
–zoom 设置生成PDF时,web页面的缩放比例1
–exclude-from-outline禁止当前页面添加到目录和大纲中
–include-in-outline允许当前页面添加到目录和大纲中默认选项
–encoding 设置输入文本的默认编码

> HTML、图片、背景

选项描述默认/值可选值
–checkbox-checked-svg 复选框选中状态,应用此svg文件
–checkbox-svg 复选框未选中状态,应用此svg文件
–radiobutton-checked-svg 复选框选中状态,应用此svg文件
–radiobutton-svg 复选框未选中状态,应用此svg文件
–disable-forms禁止将HTML表单字段转换为pdf表单字段默认选项
–enable-forms允许将HTML表单字段转换为pdf表单字段
–background打印PDF背景默认选项
–no-background不打印PDF背景
–images允许加载并打印图片默认选项
–no-images禁止加载并打印图片

> 链接挑转

选项描述默认/值可选值
–disable-external-links禁用PDF文档中的外部链接生成超链接
–enable-external-links允许PDF文档中的外部链接生成超链接默认选项
–disable-internal-links禁止PDF文档中的内部链接生成超链接
–enable-internal-links允许PDF文档中的内部链接生成超链接默认选项
–keep-relative-links相对路径的外部链接,生成相对路径超链接
–resolve-relative-links相对路径的外部链接,生成绝对路径超链接默认选项
–disable-toc-back-links禁止从节标题链接到目录默认选项
–enable-toc-back-links允许从节标题链接到目录

> 文件、缓存、文件加载失败、插件

选项描述默认/值可选值
–allow 加载文件夹中的一个或多个文件可重复
–disable-local-file-access禁止本地文件读取加载其他本地文件,除非设置–allow默认选项
–enable-local-file-access允许本地文件读取加载其他本地文件
–cache-dir Web缓存目录
–load-error-handling web页面加载失败的处理方式abortabort, ignore,skip
–load-media-error-handling 媒体文件加载失败的处理方式ignoreabort, ignore,skip
–disable-plugins禁用插件默认选项
–enable-plugins允许使用插件,但是插件可能不工作

页眉页脚选项

> 页眉页脚通用

选项描述默认/值可选值
–replace 用value值替换[name]变量,适用页眉页脚,不适用–footer-html可重复

> 页眉

选项描述默认/值可选值
–header-font-name 设置页眉字体Arial
–header-font-size 设置页眉字号12
–header-left 页眉左侧插入文本
–header-center 页眉中间插入文本
–header-right 页眉右侧插入文本
–header-html 添加html页面作为页眉
–header-line页眉下方的显示分割线
–no-header-line页眉下方的不显示分割线默认选项
–header-spacing 页眉与内容之间的间距0单位mm

> 页脚

选项描述默认/值可选值
–footer-font-name 设置页脚字体Arial
–footer-font-size 设置页脚字号12
–footer-left 页脚左侧插入文本
–footer-center 页脚中间插入文本
–footer-right 页脚右侧插入文本
–footer-html 添加html页面作为页脚
–footer-line页脚上方的显示分割线
–no-footer-line页脚上方的不显示分割线默认选项
–footer-spacing 页脚与内容之间的间距0单位mm

大纲选项(Outline)

大纲就是PDF阅读器中,用于显示导航跳转的部分

选项描述默认/值可选值
–dump-default-toc-xsl输出默认目录的xsl样式表到命令行面板
–dump-outline 保存大纲内容到文件中
–outlinePDF文件中包含大纲默认选项
–no-outline禁止PDF文件阅读器显示大纲内容
–outline-depth PDF文件中大纲的层级深度4

xsl是XML 样式表,相当于CSS 是 HTML 样式表

目录选项(TOC)

TOC 是 英文table of contents的缩写。

目录是PDF文件中的一个页面,和我们书本中的目录是一个意思。

选项描述默认/值可选值
–disable-dotted-lines目录中标题与页码之间不使用点线
–toc-header-text 目录的头部文字,一般设置为“目录”Table of Contents
–toc-level-indentation 目录中每一级标题,缩进的宽度1em
–disable-toc-links禁止从目录连接到节标题
–toc-text-size-shrink 目录中每一级标题的字号,缩放比例0.8
–xsl-style-sheet 指定目录使用的xsl样式表,可以自定义目录样式

解释说明

> 页面尺寸

默认的页面尺寸是 A4 纸大小,但是通过–page-size选项可以修改为其他的任何尺寸,例如A3、Letter、Legal。

更多页面尺寸查阅:https://doc.qt.io/archives/qt-4.8/qprinter.html#PaperSize-enum

如果要对页面设置其他尺寸大小可以使用 --page-width 和 --page-height 这两个选项。

> 从标准输入流中读取参数

主要应用于批处理。
如果需要批量转换许多页面,并且感到 wkhtmltopdf 速度很慢,那么可以尝试 --read-args-from-stdin 选项。
当使用--read-args-from-stdin选项时,批处理的每一行输入命令,都会与--read-args-from-stdin后的选项参数合并到一起,并应用到每一行命令中。

示例如下:

 echo "https://www.baidu.com/ baidu.pdf" >> cmdsecho "cover https://www.baidu.com/  http://www.people.com.cn/GB/208743/403202/403212/index.html people.pdf" >> cmdswkhtmltopdf --read-args-from-stdin --no-images < cmds

echo 的两行命令用于生成批处理文件cmds,
最后一行wkhtmltopdf --read-args-from-stdin --no-images < cmds用于读取cmds中的命令,
并把 --no-images 选项与每一个输入命令合并后,输出PDF文件,
以上示例会输出两个PDF文件,baidu.pdf 和 people.pdf。

> 设置代理

默认情况下,代理信息将从环境变量中读取:proxy、 all_proxy 和 http_proxy,

代理设置也能通过 -p, --proxy <proxy> 选项配置

用 BNF 设置代理如下:

<type> := "http://" | "socks5://"
<serif> := <username> (":" <password>)? "@"
<proxy> := "None" | <type>? <string>? <host> (":" <port>)?

如果不熟悉 BNF配置,下面是一些示例:

http://user:password@myproxyserver:8080
socks5://myproxyserver
None

> 页眉页脚

使用 --header-* and --footer-* 选项,可以把页眉、页脚添加到PDF文档中。

在使用一些选项(如 --header-left)设置页眉、页脚的文本字符串中,可以使用以下变量:

这些变量将被替换为相应的值。

变量简介说明
[page]页码当前正在打印的页数
[frompage]第一页的页码要打印的第一页的页码,因为第一页的页码可能不是1
[topage]总页码要打印的最后一页的页码
[webpage]url地址当前正在打印页面的URL地址
[section]节名当前正在打印的节名称
[subsection]小节名当前正在打印的小节名称
[date]当前日期系统本地格式的当前日期
[isodate]当前日期ISO 8601扩展格式的当前日期
[time]当前时间系统本地格式的当前时间
[title]页面标题当前页面对象的标题
[doctitle]文档标题输出文档的标题
[sitepage]站点页码当前web页面中正在转换的页面的编号
[sitepages]站点总页数当前web页面中正在转换的页面数

例如,在页面右上角显示“当前是第x页|共y页”, 设置页眉选项如下:

--header-right "当前是第[page]页|共[topage]页"

页眉、页脚也支持用html文档设置。

例如,通过设置--header-html header.html选项,header.html中内容如下:

  <!DOCTYPE html><html><head><script>function subst() {var vars = {};var query_strings_from_url = document.location.search.substring(1).split('&');for (var query_string in query_strings_from_url) {if (query_strings_from_url.hasOwnProperty(query_string)) {var temp_var = query_strings_from_url[query_string].split('=', 2);vars[temp_var[0]] = decodeURI(temp_var[1]);}}var css_selector_classes = ['page', 'frompage', 'topage', 'webpage', 'section', 'subsection', 'date', 'isodate', 'time', 'title', 'doctitle', 'sitepage', 'sitepages'];for (var css_class in css_selector_classes) {if (css_selector_classes.hasOwnProperty(css_class)) {var element = document.getElementsByClassName(css_selector_classes[css_class]);for (var j = 0; j < element.length; ++j) {element[j].textContent = vars[css_selector_classes[css_class]];}}}}</script></head><body style="border:0; margin: 0;" onload="subst()"><table style="border-bottom: 1px solid black; width: 100%"><tr><td class="section"></td><td style="text-align:right">Page <span class="page"></span> of <span class="topage"></span></td></tr></table></body></html>

从示例中可以看出,参数以GET方式发送到页眉、页脚的html文档,如下形式。

http://www.xxx.com/header.html?page=xxx&frompage=xxx&topage=xxx&webpage=xxx&section=xxx&subsection=xxx&date=xxx&isodate=xxx&time=xxx&title=xxx&doctitle=xxx&sitepage=xxx&sitepages=xxx

页眉、页脚的html文档也支持自定义参数--header-html header.html?abc=123,在html文档的url中,自定义参数将自动与默认参数拼接到一起,如下:

http://www.xxx.com/header.html?page=xxx&frompage=xxx&topage=xxx&webpage=xxx&section=xxx&subsection=xxx&date=xxx&isodate=xxx&time=xxx&title=xxx&doctitle=xxx&sitepage=xxx&sitepages=xxx&abc=123

> 大纲

大纲就是PDF阅读器中,用于显示导航跳转的部分,不属于PDF文档中的一部分,主要是方便阅读器浏览导航使用。

Wkhtmltopdf 用 patched qt 支持PDF大纲(也称为书签),可以通过设置--outline (默认选项)选项实现。

大纲是根据 <h?>(h1–h6) 标签生成的,有关如何实现的详细说明,请参见目录部分。

如果 <h?> 标签在HTML文档中嵌套的层级非常深,那么大纲树的层级也会变得非常深。可以通过--outline-depth选项来设置大纲的层级深度。

> 目录

TOC 是 英文table of contents的缩写。

目录是PDF文件中的一个页面,和我们书本中的目录是一个意思。

目录是根据web文档中的 <h?>(h1–h6) 标签生成。

首先生成一个XML文档,然后使用XSLT将其转换为HTML。

  1. 生成目录

通过向命令行添加toc对象,可以将目录添加到文档中,示例如下:

wkhtmltopdf toc https://doc.qt.io/archives/qt-4.8/qstring.html qstring.pdf
  1. 保存大纲到文件中

通过使用 --dump-outline 选项,将生成的xml大纲文档转储到文件(示例中:toc.xml)中,可以查看生成的XML文档。例如:

wkhtmltopdf --dump-outline toc.xml https://doc.qt.io/archives/qt-4.8/qstring.html qstring.pdf
  1. 指定目录样式表

通过使用 --xsl-style-sheet 选项,指定生成目录的XSLT样式表文档。

wkhtmltopdf toc --xsl-style-sheet my.xsl https://doc.qt.io/archives/qt-4.8/qstring.html qstring.pdf
  1. 查看默认样式表

通过使用 --dump-default-toc-xsl 选项,把默认的XSLT样式表输出到命令行面板中。这对于自定义样式表,将是一个很好的参考建议。

 wkhtmltopdf --dump-default-toc-xsl

XML文档位于命名空间"http://wkhtmltopdf.org/outline"之中,它有一个名为"outline" 的根节点,它包含许多“item”节点。一个“item”节点,可以包含任意数量的“item”节点。这些是项目所代表部分的概要小节。项目节点具有以下属性:

 The XML document is in the namespace "http://wkhtmltopdf.org/outline" it has aroot node called "outline" which contains a number of "item" nodes. An itemcan contain any number of item. These are the outline subsections to thesection the item represents. A item node has the following attributes:
  • “title” 章节的名称
  • “page” 章节所在位置的页码
  • “link” 从链接跳转到该章节的URL。(a URL that links to the section.)
  • “backLink” 从章节返回锚点的链接。(the name of the anchor the section will link back to.)

其他的 TOC 选项只影响默认样式表,因为它们在指定自定义样式表时将无法工作。

联系我们

如果有任何问题反馈,请查看https://wkhtmltopdf.org/support.html

这篇关于wkhtmltopdf 0.12.6 中文文档(精心整理)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/453466

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo