閱讀562 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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中國”

最後更新:2017-05-23 15:03:39

  上一篇:go  在 Linux 上用火狐瀏覽器保護你的隱私
  下一篇:go  開發者的實用 Vim 插件(三)