开发者社区> 玄学酱> 正文

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

简介:
+关注继续查看

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  






作者:Ravi Saive
来源:51CTO

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
HTML5新增核心工具——canvas
原文:HTML5新增核心工具——canvas Canvas元素称得上是HTML5的核心所在,它是一个依靠JavaScript绘制华丽图像的元素。 Canvas由一个可绘制地区HTML代码中的属性定义决定高度和宽度,JavaScript代码可以访问该地区,通过一套完整的绘图功能类似于其他通用二维的API,从而生成动态的图形。
922 0
13个最常用的CSS和HTML快速开发工具
1)CleverCSS CleverCSS是个为CSS开发而产生的小型的标记语言,它的设计灵感来自Python,使得能够以一种简洁、结构化的方式构建样式表。在很多方面,它比CSS2更加爱简洁和强大。
1245 0
如何让智能客服成为企业的生产力工具?
2021年10月21日,阿里巴巴达摩院“新一代企业智能服务论坛”在杭州圆满举行。达摩院产品创新中心阿里云智能客服业务总经理王巍巍分享了阿里云智能客服最新进展,包括全渠道全场覆盖的云上产品矩阵,从智能服务向智能营销场景延伸的解决方案,国内首创的智能策略中心;号召客户和生态伙伴共同探讨智能服务行业未来发展动向。
13941 0
分享10个必备的简化Web设计的HTML5工具
这个文章是适合真正想去做HTML5应用的设计人员和开发人员阅读。这里我将不再重复HTML5开发的重要性。因为大家都已经知道这点。这里我收集了10个HTML5的工具帮助你在不同的方面简化你的开发和设计。如果你也喜欢这个文章,请在我们的网站GBin1留言支持! 1. FindmebyIP 一个列出了所有浏览器对于HTML5支持细节的网站。
882 0
前端答疑-chrome开发者工具正确食用-看网页源码
写这个文章,是因为在今天早上,有两个兄弟找我要源码。有图有真相。 我震惊于都 9102年了,身为了一个正(xie)经(xin)前端er,还不会看控制台?
22 0
MaxCompute 助力衣二三构建智能化运营工具
本文由衣二三CTO程异丁为大家讲解了如何基于MaxCompute构建智能化运营工具。 衣二三作为亚洲最大的共享时装平台,MaxCompute是如何帮助它解决数据提取速度慢、数据口径差异等问题呢?程异丁通过衣二三数据体系架构,从用户运营应用、商品运营应用以及算法推荐系统三方面给大家剖析了MaxCompute是如何助力衣二三构建智能化运营工具的。
2863 0
+关注
玄学酱
这个时候,玄酱是不是应该说点什么...
20709
文章
438
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载