wkhtmltopdf:一個Linux中將網頁轉成PDF的智能工具
wkhtmltopdf 是一個開源、簡單而有效的命令行 shell 程序,它可以將任何 HTML (網頁)轉換為 PDF 文檔或圖像(jpg、png 等)。
wkhtmltopdf 是用 C++ 編寫的,并在 GNU/GPL (通用公共許可證)下發布。它使用 WebKit 渲染引擎將 HTML 頁面轉換為 PDF 文檔且不會丟失頁面的質量。這是一個用于實時創建和存儲網頁快照的非常有用且可信賴的解決方案。
wkhtmltopdf 的功能
- 開源并且跨平臺。
- 使用 WebKit 引擎將任意 HTML 網頁轉換為 PDF 文件。
- 添加頁眉和頁腳的選項
- 目錄生成 (TOC) 選項。
- 提供批量模式轉換。
- 通過綁定 libwkhtmltox 來支持 PHP 或 Python。
在本文中,我們將介紹如何在 Linux 系統下使用 tar 包來安裝 wkhtmltopdf。
安裝 Evince (PDF 瀏覽器)
讓我們在 Linux 系統中安裝 evince (一個 PDF 閱讀器)來瀏覽 PDF 文件。
- $ sudo yum install evince [RHEL/CentOS and Fedora]
- $ sudo dnf install evince [On Fedora 22+ versions]
- $ sudo apt-get install evince [On Debian/Ubuntu systems]
下載 wkhtmltopdf 源碼文件
使用 wget 命令根據你的 Linux 架構來下載 wkhtmltopdf 源碼文件,或者你也可以在 wkhtmltopdf 下載頁下載***的版本(目前***的穩定版是 0.12.4)
在 64 位 Linux 系統中:
- $ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
在 32 位 Linux 系統中:
- $ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-i386.tar.xz
在 Linux 中安裝 wkhtmltopdf
使用 tar 命令解壓文件到當前目錄中。
- ------ On 64-bit Linux OS ------
- $ sudo tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
- ------ On 32-bit Linux OS ------
- $ sudo tar -xvzf wkhtmltox-0.12.4_linux-generic-i386.tar.xz
為了能從任意路徑執行程序,將 wkhtmltopdf 安裝到 /usr/bin 目錄下。
- $ sudo cp wkhtmltox/bin/wkhtmltopdf /usr/bin/
如何使用 wkhtmltopdf?
我們會看到如何將遠程的 HTML 頁面轉換成 PDF 文件、驗證信息、使用 evince 在 GNOME 桌面中瀏覽創建的文件。
將 HTML 網頁轉成 PDF 文件
要將任意 HTML 頁面轉換成 PDF,運行下面的命令。它會在當前目錄下將頁面轉換成 10-Sudo-Configurations.pdf。
- # wkhtmltopdf http://www.tecmint.com/sudoers-configurations-for-setting-sudo-in-linux/ 10-Sudo-Configurations.pdf
示例輸出:
- Loading pages (1/6)
- Counting pages (2/6)
- Resolving links (4/6)
- Loading headers and footers (5/6)
- Printing pages (6/6)
- Done
瀏覽生成的 PDF 文件
為了驗證創建的文件,使用下面的命令。
- $ file 10-Sudo-Configurations.pdf
示例輸出:
- 10-Sudo-Configurations.pdf: PDF document, version 1.4
瀏覽生成的 PDF 文件細節
要瀏覽生成的文件信息,運行下面的命令。
- $ pdfinfo 10-Sudo-Configurations.pdf
示例輸出:
- Title: 10 Useful Sudoers Configurations for Setting 'sudo' in Linux
- Creator: wkhtmltopdf 0.12.4
- Producer: Qt 4.8.7
- CreationDate: Sat Jan 28 13:02:58 2017
- Tagged: no
- UserProperties: no
- Suspects: no
- Form: none
- JavaScript: no
- Pages: 13
- Encrypted: no
- Page size: 595 x 842 pts (A4)
- Page rot: 0
- File size: 697827 bytes
- Optimized: no
- PDF version: 1.4
瀏覽創建的文件
在桌面中使用 evince 查看***生成的 PDF 文件。
- $ evince 10-Sudo-Configurations.pdf
示例截圖:
在我的 Linux Mint 17 中看起來很棒。
在 PDF 中瀏覽網頁
給 PDF 創建頁面的 目錄(Table Of Content )(TOC)
要創建一個 PDF 文件的目錄,使用 toc 選項。
- $ wkhtmltopdf toc http://www.tecmint.com/sudoers-configurations-for-setting-sudo-in-linux/ 10-Sudo-Configurations.pdf
示例輸出:
- Loading pages (1/6)
- Counting pages (2/6)
- Loading TOC (3/6)
- Resolving links (4/6)
- Loading headers and footers (5/6)
- Printing pages (6/6)
- Done
要查看已創建文件的 TOC,再次使用 evince。
- $ evince 10-Sudo-Configurations.pdf
示例截圖:
看一下下面的圖。它上看去比上面的更好。
在 PDF 中創建網頁的目錄
wkhtmltopdf 選項及使用
更多關于 wkhtmltopdf 的使用及選項,使用下面的幫助命令。它會顯示出所有可用的選項。
- $ wkhtmltopdf --help