ไลบรารี่โอเพ่นซอร์สการแปลง HTML เป็น PDF ใน Python
ทดลองใช้ Python API โอเพนซอร์สและฟรีนี้เป็นไลบรารีการแปลง HTML เป็น PDF
WeasyPrint คืออะไร?
WeasyPrint เป็นไลบรารี Python แบบโอเพ่นซอร์สและเครื่องมือบรรทัดคำสั่งที่แปลงไฟล์ HTML และ CSS เป็นเอกสาร PDF ด้วยการเรนเดอร์คุณภาพสูง ทำให้เป็นเครื่องมืออเนกประสงค์สำหรับการสร้าง PDF จากเนื้อหาเว็บ WeasyPrint ช่วยให้สามารถแปลงโค้ด HTML แบบอินไลน์ ไฟล์ HTML ในเครื่อง และ URL เว็บเป็นเอกสาร PDF ได้ด้วยโค้ดเพียงบรรทัดเดียว
รายการคุณสมบัติโดยย่อที่รองรับโดย WeasyPrint มีดังต่อไปนี้:
- WeasyPrint รองรับข้อกำหนด CSS มากมายที่เขียนโดย W3C
- ให้การสนับสนุนที่ครอบคลุมสำหรับ URL, HTML และแท็ก HTML ที่รองรับ
- WeasyPrint สามารถจัดการทรัพยากรภายนอก เช่น รูปภาพหรือสไตล์ชีต CSS ผ่านทางตัวดึง URL ได้
- ตัวดึงข้อมูลเริ่มต้นสามารถเปิดไฟล์และ URL HTTP ได้
- รองรับฟีเจอร์ต่างๆ ที่เกี่ยวข้องกับการสร้าง PDF รวมถึงฟอนต์, CSS, CSS ระดับ 2 การแก้ไข 1, ตัวเลือกระดับ 3/4 และ CSS Text
เริ่มต้นใช้งาน WeasyPrint
คุณต้องใช้ Python เวอร์ชัน 3.7.0 ขึ้นไปจึงจะติดตั้งและใช้ WeasyPrint ได้ ดังนั้น ให้ติดตั้ง Python ก่อน จากนั้นใช้คำสั่งด้านล่างเพื่อติดตั้ง WeasyPrint บนเครื่องของคุณโดยใช้ pip และ สภาพแวดล้อมเสมือน:
ติดตั้งบน Linux
python3 -m venv venv
source venv/bin/activate
pip install weasyprint
weasyprint --info
ติดตั้งบน Ubuntu 20.04 หรือสูงกว่า
apt install python3-pip libpango-1.0-0 libharfbuzz0b libpangoft2-1.0-0 libffi-dev libjpeg-dev libopenjp2-7-dev
ติดตั้งบน MacOS โดยใช้ Homebrew
brew install weasyprint
ติดตั้งบน Windows 11 64 บิต
python3 -m venv venv
venv\Scripts\activate.bat
python3 -m pip install weasyprint
python3 -m weasyprint --info
หมายเหตุ: สำหรับการติดตั้งบน Windows ให้ติดตั้ง GTK3 ก่อนรันคำสั่งข้างต้น
แปลง HTML เป็น PDF ผ่าน URL เว็บ
เราสามารถแปลงหน้าเว็บ HTML เป็น PDF ได้ด้วยโค้ดเพียงบรรทัดเดียวโดยใช้ไลบรารี WeasyPrint Python เพียงแค่ต้องนำเข้าคลาส HTML จากไลบรารี สร้างอ็อบเจ็กต์ของคลาส HTML พร้อม URL เว็บไซต์ และเรียกใช้เมธอด write_pdf เพื่อแปลงเป็นเอกสาร PDF ที่มีชื่อตามต้องการ
แปลง HTML เป็น PDF ผ่าน URL เว็บด้วย Inline CSS
เรายังสามารถแปลง URL เว็บไซต์เป็น PDF ด้วยสไตล์ชีตอินไลน์ได้โดยใช้ไลบรารี WeasyPrint
บทสรุป
WeasyPrint เป็นไลบรารี Python โอเพนซอร์สฟรีที่ใช้งานง่ายซึ่งแปลง HTML และ CSS เป็นเอกสาร PDF คุณสามารถสร้างเทมเพลตตาม HTML สำหรับเอกสารที่จำเป็นแล้วส่งออกเป็น PDF ได้อย่างรวดเร็ว WeasyPrint ให้ตัวเลือกการแปลงที่ยืดหยุ่นแก่ผู้พัฒนาโดยอนุญาตให้พวกเขาแปลง HTML เป็น PDF จาก URL ของเว็บไซต์ ไฟล์ HTML ในเครื่อง สตริงที่มีโค้ด HTML และอ็อบเจ็กต์ไฟล์ เป็นต้น
แม้ว่า WeasyPrint จะเป็นตัวเลือกฟรีที่ยอดเยี่ยมในการแปลงเอกสาร HTML เป็น PDF สำหรับนักพัฒนา Python แต่ในกรณีที่มีโครงสร้าง HTML และ CSS ที่ซับซ้อน เอกสาร PDF ที่สร้างขึ้นอาจไม่แสดงผลด้วยความแม่นยำสูง ซึ่งอาจสร้างปัญหาให้กับผู้ใช้ที่มีข้อกำหนดที่เข้มงวดได้