Nhảy đến nội dung

[Thủ Thuật Linux] Convert trang HTML thành PDF bằng wkhtmltopdf

Nội Dung Bài Viết

Bạn đang cần một mã nguồn mở đơn giản để chuyển đổi các trang web và HTML sang tệp PDF bằng command line? Không cần tìm đâu xa, hãy thử wkhtmltopdf.

wkhtmltopdf là gì ?

wkhtmltopdf là một tiện ích nhỏ, đơn giản để convert html, website  sang pdf bằng lệnh shell.

Một số đặt trưng của wkhtmltopdf :

  • Hoạt động được trên nhiều nền tảng
  • Mã nguồn mở, miễn phí
  • Có thể convert pdf website nào từ webkit
  • Có thể thêm header và footer
  • Dễ dàng tạo TOC cho pdf
  • Có thể sử dụng trực tiếp với PHP, Python thông qua libwkhtmltox.

Chú ý dành cho người dùng Debian / Ubuntu Linux

Bạn có thể cài đặt wkhtmltopdf bằng apt-get

$ sudo apt-get install wkhtmltopdf
$ sudo ln -s /usr/bin/wkhtmltopdf /usr/local/bin/html2pdf

Và bạn sẽ thấy kết quả cài đặt 

[sudo] password for vivek: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  wkhtmltopdf
0 upgraded, 1 newly installed, 0 to remove and 10 not upgraded.
Need to get 116 kB of archives.
After this operation, 303 kB of additional disk space will be used.
Get:1 http://debian.osuosl.org/debian/ squeeze/main wkhtmltopdf amd64 0.9.9-1 [116 kB]
Fetched 116 kB in 2s (49.4 kB/s)                      
Selecting previously deselected package wkhtmltopdf.
(Reading database ... 274164 files and directories currently installed.)
Unpacking wkhtmltopdf (from .../wkhtmltopdf_0.9.9-1_amd64.deb) ...
Processing triggers for man-db ...
Setting up wkhtmltopdf (0.9.9-1) ...

Cài đặt wkhtmltopdf cho Linux / MS-Windows / Apple Mac OS X

Để tải package bạn dùng lệnh

$ wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.11.0_rc1-static-amd64.tar.bz2

có thể lên trực tiếp trang tìm phiên bản phù hợp.

Kết quả cài đặt

Resolving wkhtmltopdf.googlecode.com... 74.125.135.82, 2404:6800:4001:c01::52
Connecting to wkhtmltopdf.googlecode.com|74.125.135.82|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11175276 (11M) [application/octet-stream]
Saving to: `wkhtmltopdf-0.11.0_rc1-static-amd64.tar.bz2'
 
100%[======================================>] 1,11,75,276  480K/s   in 23s     
 
2012-10-04 01:21:43 (477 KB/s) - `wkhtmltopdf-0.11.0_rc1-static-amd64.tar.bz2' saved [11175276/11175276]

Sau đó giải nén để sử dung

$ tar xvf wkhtmltopdf-0.11.0_rc1-static-amd64.tar.bz2

Kết quả

wkhtmltopdf-amd64

Cài đặt tương tự trong thủ mục ~/bin/ hoặc /usr/local/bin

$ mv wkhtmltopdf-amd64 ~/bin/
ln -s ~/bin/wkhtmltopdf-amd64 ~/bin/html2pdf

OR

$ sudo mv wkhtmltopdf-amd64 /usr/local/bin/
ln -s /usr/local/bin/wkhtmltopdf-amd64 /usr/local/bin/html2pdf

Cách sử dụng wkhtmltopdf

Chúng ta sử dụng wkhtmltopdf bằng lệnh như sau

html2pdf http://www.cyberciti.biz/path/to/url.html output.pdf
html2pdf http://www.cyberciti.biz/blog/print/url-slut.html output.pdf
html2pdf -option1  -option2 http://www.cyberciti.biz/blog/print/url-slut.html output.pdf