wkhtmltopdf:一个 Linux 中将网页转成 PDF 的智能工具

简介:

wkhtmltopdf 是一个开源、简单而有效的命令行 shell 程序,它可以将任何 HTML (网页)转换为 PDF 文档或图像(jpg、png 等)。

wkhtmltopdf 是用 C++ 编写的,并在 GNU/GPL (通用公共许可证)下发布。它使用 WebKit 渲染引擎将 HTML 页面转换为 PDF 文档且不会丢失页面的质量。这是一个用于实时创建和存储网页快照的非常有用且可信赖的解决方案。

wkhtmltopdf 的功能

  1. 开源并且跨平台。
  2. 使用 WebKit 引擎将任意 HTML 网页转换为 PDF 文件。
  3. 添加页眉和页脚的选项
  4. 目录生成 (TOC) 选项。
  5. 提供批量模式转换。
  6. 通过绑定 libwkhtmltox 来支持 PHP 或 Python。

在本文中,我们将介绍如何在 Linux 系统下使用 tar 包来安装 wkhtmltopdf。

安装 Evince (PDF 浏览器)

让我们在 Linux 系统中安装 evince (一个 PDF 阅读器)来浏览 PDF 文件。

 
  1. $ sudo yum install evince [RHEL/CentOS and Fedora]
  2. $ sudo dnf install evince [On Fedora 22+ versions]
  3. $ sudo apt-get install evince [On Debian/Ubuntu systems]

下载 wkhtmltopdf 源码文件

使用 wget 命令根据你的 Linux 架构来下载 wkhtmltopdf 源码文件,或者你也可以在 wkhtmltopdf 下载页下载最新的版本(目前最新的稳定版是 0.12.4)

在 64 位 Linux 系统中:

 
  1. $ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

在 32 位 Linux 系统中:

 
  1. $ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-i386.tar.xz

在 Linux 中安装 wkhtmltopdf

使用 tar 命令解压文件到当前目录中。

 
  1. ------ On 64-bit Linux OS ------
  2. $ sudo tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
  3. ------ On 32-bit Linux OS ------
  4. $ sudo tar -xvzf wkhtmltox-0.12.4_linux-generic-i386.tar.xz

为了能从任意路径执行程序,将 wkhtmltopdf 安装到 /usr/bin 目录下。

 
  1. $ sudo cp wkhtmltox/bin/wkhtmltopdf /usr/bin/

如何使用 wkhtmltopdf?

我们会看到如何将远程的 HTML 页面转换成 PDF 文件、验证信息、使用 evince 在 GNOME 桌面中浏览创建的文件。

将 HTML 网页转成 PDF 文件

要将任意 HTML 页面转换成 PDF,运行下面的命令。它会在当前目录下将页面转换成 10-Sudo-Configurations.pdf

 
  1. # wkhtmltopdf http://www.tecmint.com/sudoers-configurations-for-setting-sudo-in-linux/ 10-Sudo-Configurations.pdf

示例输出:

 
  1. Loading pages (1/6)
  2. Counting pages (2/6)
  3. Resolving links (4/6)
  4. Loading headers and footers (5/6)
  5. Printing pages (6/6)
  6. Done

浏览生成的 PDF 文件

为了验证创建的文件,使用下面的命令。

 
  1. $ file 10-Sudo-Configurations.pdf

示例输出:

 
  1. 10-Sudo-Configurations.pdf: PDF document, version 1.4

浏览生成的 PDF 文件细节

要浏览生成的文件信息,运行下面的命令。

 
  1. $ pdfinfo 10-Sudo-Configurations.pdf

示例输出:

 
  1. Title: 10 Useful Sudoers Configurations for Setting 'sudo' in Linux
  2. Creator: wkhtmltopdf 0.12.4
  3. Producer: Qt 4.8.7
  4. CreationDate: Sat Jan 28 13:02:58 2017
  5. Tagged: no
  6. UserProperties: no
  7. Suspects: no
  8. Form: none
  9. JavaScript: no
  10. Pages: 13
  11. Encrypted: no
  12. Page size: 595 x 842 pts (A4)
  13. Page rot: 0
  14. File size: 697827 bytes
  15. Optimized: no
  16. PDF version: 1.4

浏览创建的文件

在桌面中使用 evince 查看最新生成的 PDF 文件。

 
  1. $ evince 10-Sudo-Configurations.pdf

示例截图:

在我的 Linux Mint 17 中看起来很棒。

在 PDF 中浏览网页

在 PDF 中浏览网页

给 PDF 创建页面的 目录Table Of Content(TOC)

要创建一个 PDF 文件的目录,使用 toc 选项。

 
  1. $ wkhtmltopdf toc http://www.tecmint.com/sudoers-configurations-for-setting-sudo-in-linux/ 10-Sudo-Configurations.pdf

示例输出:

 
  1. Loading pages (1/6)
  2. Counting pages (2/6)
  3. Loading TOC (3/6)
  4. Resolving links (4/6)
  5. Loading headers and footers (5/6)
  6. Printing pages (6/6)
  7. Done

要查看已创建文件的 TOC,再次使用 evince。

 
  1. $ evince 10-Sudo-Configurations.pdf

示例截图:

看一下下面的图。它上看去比上面的更好。

在 PDF 中创建网页的目录

在 PDF 中创建网页的目录

wkhtmltopdf 选项及使用

更多关于 wkhtmltopdf 的使用及选项,使用下面的帮助命令。它会显示出所有可用的选项。

 
  1. $ wkhtmltopdf --help

原文发布时间为:2017-04-01

本文来自云栖社区合作伙伴“Linux中国”

相关文章
|
4月前
|
JavaScript 前端开发
nodejs实现解析chm文件列表,无需转换为PDF文件格式,在线预览chm文件以及目录,不依赖任何网页端插件
nodejs实现解析chm文件列表,无需转换为PDF文件格式,在线预览chm文件以及目录,不依赖任何网页端插件
|
3月前
|
Web App开发 JavaScript 前端开发
网页VUE纯前端在线预览编辑Office,支持doc/docx、xls/xlsx、ppt/pptx、pdf等格式
随着互联网技术的不断发展,越来越多的企业开始采用在线办公模式,微软Office Word 是最好用的文档编辑工具,然而doc、docx、xls、xlsx、ppt、pptx等格式的Office文档是无法直接在浏览器中直接打开的,如果可以实现Web在线预览编辑OffIce,肯定会还带来了更高效、便捷的办公体验,为我们的工作带来了更多可能性。
529 0
|
1天前
|
人工智能 Python
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
14 0
|
28天前
|
缓存 Linux Windows
Linux下安装宋体以及微软雅黑字体-转PDF后不显示中文,以及中文乱码
Linux下安装宋体以及微软雅黑字体-转PDF后不显示中文,以及中文乱码
45 0
|
1月前
|
Linux iOS开发 MacOS
免费PDF转换和编辑工具 PDFgear 2.1.4
PDFgear是跨平台的PDF阅读与转换利器,支持Windows、MacOS和Linux。它提供多种阅读模式和丰富功能,如注释、签名、表单填写,可在不同设备上轻松编辑和转换PDF。软件界面简洁,操作直观,处理文件快速稳定,支持多种格式互转。
35 7
免费PDF转换和编辑工具 PDFgear 2.1.4
|
1月前
|
存储 Docker 容器
Star 8.3k!强烈推荐这款强大的 PDF 文件处理工具,PDF处理它全包了!
Star 8.3k!强烈推荐这款强大的 PDF 文件处理工具,PDF处理它全包了!
|
1月前
|
前端开发 JavaScript API
基于ElectronEgg&Python,从零开始打造一款免费的PDF桌面工具
基于ElectronEgg&Python,从零开始打造一款免费的PDF桌面工具
|
3月前
|
存储
如何解决网页中的pdf文件无法下载?pdf打印显示空白怎么办?
如何解决网页中的pdf文件无法下载?pdf打印显示空白怎么办?
176 0
|
4月前
|
存储 Python
Python自动化办公之PDF拆分工具
Python自动化办公之PDF拆分工具
|
4月前
|
Ubuntu 前端开发 Linux
django(六)使用wkhtmltopdf将网页导出PDF
如题,我需要使用python 将 网页 转成PDF文件,这里会用到wkhtmltopdf 我这里使用的是centos服务器。(使用ubuntu事会少很多,别问我为什么不用,我的web项目使用的是PHP,相对来说,centos部署web项目要比ubuntu要好) Python需要用到扩展 pdfkit
72 0