wkhtmltopdf:一個(gè)Linux中將網(wǎng)頁(yè)轉(zhuǎn)成PDF的智能工具
wkhtmltopdf 是一個(gè)開(kāi)源、簡(jiǎn)單而有效的命令行 shell 程序,它可以將任何 HTML (網(wǎng)頁(yè))轉(zhuǎn)換為 PDF 文檔或圖像(jpg、png 等)。
wkhtmltopdf 是用 C++ 編寫(xiě)的,并在 GNU/GPL (通用公共許可證)下發(fā)布。它使用 WebKit 渲染引擎將 HTML 頁(yè)面轉(zhuǎn)換為 PDF 文檔且不會(huì)丟失頁(yè)面的質(zhì)量。這是一個(gè)用于實(shí)時(shí)創(chuàng)建和存儲(chǔ)網(wǎng)頁(yè)快照的非常有用且可信賴(lài)的解決方案。
wkhtmltopdf 的功能
- 開(kāi)源并且跨平臺(tái)。
- 使用 WebKit 引擎將任意 HTML 網(wǎng)頁(yè)轉(zhuǎn)換為 PDF 文件。
- 添加頁(yè)眉和頁(yè)腳的選項(xiàng)
- 目錄生成 (TOC) 選項(xiàng)。
- 提供批量模式轉(zhuǎn)換。
- 通過(guò)綁定 libwkhtmltox 來(lái)支持 PHP 或 Python。
在本文中,我們將介紹如何在 Linux 系統(tǒng)下使用 tar 包來(lái)安裝 wkhtmltopdf。
安裝 Evince (PDF 瀏覽器)
讓我們?cè)?Linux 系統(tǒng)中安裝 evince (一個(gè) PDF 閱讀器)來(lái)瀏覽 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 命令根據(jù)你的 Linux 架構(gòu)來(lái)下載 wkhtmltopdf 源碼文件,或者你也可以在 wkhtmltopdf 下載頁(yè)下載***的版本(目前***的穩(wěn)定版是 0.12.4)
在 64 位 Linux 系統(tǒng)中:
- $ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
在 32 位 Linux 系統(tǒng)中:
- $ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-i386.tar.xz
在 Linux 中安裝 wkhtmltopdf
使用 tar 命令解壓文件到當(dāng)前目錄中。
- ------ 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
為了能從任意路徑執(zhí)行程序,將 wkhtmltopdf 安裝到 /usr/bin 目錄下。
- $ sudo cp wkhtmltox/bin/wkhtmltopdf /usr/bin/
如何使用 wkhtmltopdf?
我們會(huì)看到如何將遠(yuǎn)程的 HTML 頁(yè)面轉(zhuǎn)換成 PDF 文件、驗(yàn)證信息、使用 evince 在 GNOME 桌面中瀏覽創(chuàng)建的文件。
將 HTML 網(wǎng)頁(yè)轉(zhuǎn)成 PDF 文件
要將任意 HTML 頁(yè)面轉(zhuǎn)換成 PDF,運(yùn)行下面的命令。它會(huì)在當(dāng)前目錄下將頁(yè)面轉(zhuǎn)換成 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 文件
為了驗(yàn)證創(chuàng)建的文件,使用下面的命令。
- $ file 10-Sudo-Configurations.pdf
示例輸出:
- 10-Sudo-Configurations.pdf: PDF document, version 1.4
瀏覽生成的 PDF 文件細(xì)節(jié)
要瀏覽生成的文件信息,運(yùn)行下面的命令。
- $ 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
瀏覽創(chuàng)建的文件
在桌面中使用 evince 查看***生成的 PDF 文件。
- $ evince 10-Sudo-Configurations.pdf
示例截圖:
在我的 Linux Mint 17 中看起來(lái)很棒。
在 PDF 中瀏覽網(wǎng)頁(yè)
給 PDF 創(chuàng)建頁(yè)面的 目錄(Table Of Content )(TOC)
要?jiǎng)?chuàng)建一個(gè) PDF 文件的目錄,使用 toc 選項(xiàng)。
- $ 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
要查看已創(chuàng)建文件的 TOC,再次使用 evince。
- $ evince 10-Sudo-Configurations.pdf
示例截圖:
看一下下面的圖。它上看去比上面的更好。
在 PDF 中創(chuàng)建網(wǎng)頁(yè)的目錄
wkhtmltopdf 選項(xiàng)及使用
更多關(guān)于 wkhtmltopdf 的使用及選項(xiàng),使用下面的幫助命令。它會(huì)顯示出所有可用的選項(xiàng)。
- $ wkhtmltopdf --help