Wkhtmltopdf - เครื่องมืออัจฉริยะในการแปลงหน้า HTML ของเว็บไซต์เป็น PDF ใน Linux
Wkhtmltopdf เป็นโปรแกรมอรรถประโยชน์เชลล์บรรทัดคำสั่งแบบโอเพ่นซอร์สที่เรียบง่ายและมีประสิทธิภาพมาก ซึ่งช่วยให้ผู้ใช้สามารถแปลง HTML (หน้าเว็บ) ที่กำหนดให้เป็น >เอกสาร PDF หรือรูปภาพ (jpg, png ฯลฯ)
Wkhtmltopdf เขียนด้วยภาษาโปรแกรม C++ และเผยแพร่ภายใต้ GNU/GPL (สัญญาอนุญาตสาธารณะทั่วไป) ใช้กลไกการจัดวางการแสดงผล WebKit เพื่อแปลงหน้า HTML เป็นเอกสาร PDF โดยไม่สูญเสียคุณภาพของหน้า มันเป็นโซลูชันที่มีประโยชน์และน่าเชื่อถือมากสำหรับการสร้างและจัดเก็บสแนปชอตของหน้าเว็บแบบเรียลไทม์
คุณสมบัติ Wkhtmltopdf
- โอเพ่นซอร์สและข้ามแพลตฟอร์ม
- แปลงหน้าเว็บ HTML ให้เป็นไฟล์ PDF โดยใช้กลไก WebKit
- ตัวเลือกในการเพิ่มส่วนหัวและส่วนท้าย
- ตัวเลือกการสร้างสารบัญ (TOC)
- ให้การแปลงโหมดแบตช์
- รองรับ PHP หรือ Python ผ่านการเชื่อมโยงกับ libwkhtmltox
ในบทความนี้ เราจะแสดงวิธีการติดตั้งโปรแกรม Wkhtmltopdf ในระบบ Linux โดยใช้ไฟล์ tarball ต้นฉบับ
ติดตั้ง Evince (โปรแกรมดู PDF)
มาติดตั้งโปรแกรม evince (โปรแกรมอ่าน PDF) สำหรับการดูไฟล์ PDF ในระบบ Linux
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
ดาวน์โหลดไฟล์ต้นฉบับ wkhtmltopdf สำหรับสถาปัตยกรรม Linux ของคุณโดยใช้คำสั่ง Wget หรือคุณสามารถดาวน์โหลดเวอร์ชันล่าสุดได้ (ซีรีส์ที่เสถียรในปัจจุบันคือ 0.12.4) ได้ที่ หน้าดาวน์โหลด wkhtmltopdf
บนระบบปฏิบัติการ Linux 64 บิต
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
บนระบบปฏิบัติการ Linux 32 บิต
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-i386.tar.xz
ติดตั้ง Wkhtmltopdf ใน Linux
แยกไฟล์ไปยังไดเร็กทอรีการทำงานปัจจุบันโดยใช้คำสั่ง 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 https://linux-console.net/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
ดูไฟล์ PDF ที่สร้างขึ้น
ดูไฟล์ PDF ที่สร้างขึ้นใหม่โดยใช้โปรแกรม evince จากเดสก์ท็อป
evince 10-Sudo-Configurations.pdf
ภาพหน้าจอตัวอย่าง :
ดูค่อนข้างดีภายใต้กล่อง Linux Mint 17 ของฉัน
สร้าง TOC (สารบัญ) ของเพจเป็น PDF
หากต้องการสร้างสารบัญสำหรับไฟล์ PDF ให้ใช้ตัวเลือกเป็น toc
wkhtmltopdf toc https://linux-console.net/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
ภาพหน้าจอตัวอย่าง:
ลองดูภาพด้านล่าง มันดูดีกว่าข้างบนด้วยซ้ำ
ตัวเลือกและการใช้งาน Wkhtmltopdf
สำหรับการใช้งานและตัวเลือกเพิ่มเติมของ Wkhtmltopdf ให้ใช้คำสั่งช่วยเหลือต่อไปนี้ มันจะแสดงรายการตัวเลือกทั้งหมดที่คุณสามารถใช้ได้
wkhtmltopdf --help