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
目录
相关文章
|
5月前
|
移动开发 资源调度 JavaScript
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)
这篇文章介绍了在Vue移动端网页中使用`pdfh5`和`vue-pdf`两个插件来实现PDF文件的预览,包括滚动查看、缩放、添加水印、分页加载、跳转指定页数等功能。
4815 0
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)
|
6月前
|
弹性计算 运维 自然语言处理
阿里云OS Copilot测评:重塑Linux运维与开发体验的智能革命
阿里云OS Copilot巧妙地将大语言模型的自然语言处理能力与操作系统团队的深厚经验相结合,支持自然语言问答、辅助命令执行等功能,为Linux用户带来了前所未有的智能运维与开发体验。
|
6月前
|
人工智能 运维 自然语言处理
当Linux遇上AI:探索操作系统中的智能新纪元
阿里云的OS Copilot是专为Linux打造的智能助手,利用大模型提供自然语言交互、命令辅助及运维优化。它简化编程任务,生成脚本框架,提供代码审查建议,适合开发者和运维人员。
915 0
当Linux遇上AI:探索操作系统中的智能新纪元
|
6月前
|
Ubuntu Linux 网络安全
群晖搭建网页版Linux Ubuntu系统并实现远程访问
群晖搭建网页版Linux Ubuntu系统并实现远程访问
101 1
|
6月前
|
机器学习/深度学习 自然语言处理 运维
正式邀测! OS Copilot——一款基于大模型构建的 Linux 智能操作系统助手
重塑操作系统交互新体验,开启您的智能化系统管理之旅。
|
6月前
|
弹性计算 运维 自然语言处理
属于Basis运维的、在Linux平台上运行的大模型测评 OS Copilot智能助手测评
OS Copilot是阿里云为Linux打造的智能操作系统助手,基于大模型,助用户进行自然语言问答、命令执行和系统运维。它简化了Linux操作,适合新手和运维人员。测评者作为IT架构师,发现OS Copilot使非技术背景人员也能操作Linux,接入命令可在官方文档找到。测试显示,通过"co"命令可与OS Copilot交互,实现生产任务融合。该工具提高了工作效率,尤其是对于遗忘具体命令时,非常有帮助。文档清晰,适合生产环境使用,值得进一步探索。
124 0
|
7月前
|
资源调度 JavaScript Ubuntu
Linux系统之安装Calcium网页计算器
【6月更文挑战第11天】Linux系统之安装Calcium网页计算器
84 1
|
8月前
|
Linux 测试技术 网络安全
Linux系统之部署2048网页小游戏
【5月更文挑战第5天】Linux系统之部署2048网页小游戏
131 1
Linux系统之部署2048网页小游戏
|
6月前
|
算法
「AIGC」readLink实现url识别pdf、网页标题和内容
AIGC算法实现服务,通过Express接收URL,识别内容类型:HTML使用Cheerio解析,PDF用`pdf-parse`。自定义函数提取标题和内容。示例代码展示了如何处理HTTP响应,提取HTML的`<title>`及PDF文本,并提供错误处理。服务器运行在端口3000。
68 0
|
6月前
|
运维 监控 大数据
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署