PyMuPDF
Open Source Python Library เพื่อจัดการข้อมูลเมตา PDF
ลองใช้ PyMuPDF ซึ่งเป็นไลบรารี Python แบบโอเพ่นซอร์สฟรีเพื่อเข้าถึงและแก้ไขข้อมูลเมตาของเอกสาร PDF
PyMuPDF คืออะไร
PyMuPDF หรือที่รู้จักในชื่อ Fitz เป็นไลบรารี Python แบบโอเพ่นซอร์สที่มีคุณสมบัติมากมาย เช่น การแยกวิเคราะห์ PDF, การแยกและรวม PDF ฯลฯ แต่ในหน้านี้เราจะพูดถึงเฉพาะวิธีที่นักพัฒนา Python สามารถใช้ไลบรารี PyMuPDF เพื่อจัดการงานที่เกี่ยวข้องกับข้อมูลเมตา PDF เช่น:
- อ่านข้อมูลเมตา PDF: PyMuPDF รองรับการเข้าถึงข้อมูลเมตาของเอกสาร PDF ที่มีข้อมูล เช่น ผู้แต่ง ชื่อเรื่อง หัวข้อ และวันที่สร้าง ฯลฯ
- แก้ไขข้อมูลเมตา PDF: ไลบรารียังอนุญาตให้แก้ไขข้อมูลเมตาของเอกสาร PDF ได้ด้วย
- อ่านข้อมูลเมตา XML: เอกสาร PDF ยังมีข้อมูลเมตา XML ซึ่งไม่จำกัดเฉพาะคุณสมบัติของเอกสารมาตรฐาน เช่น ผู้แต่ง ชื่อเรื่อง ฯลฯ และสามารถมีข้อมูลเมตาเพิ่มเติมได้ ด้วย PyMuPDF นักพัฒนาก็สามารถอ่านมันได้เช่นกัน
- เปลี่ยนข้อมูลเมตา XML: นักพัฒนายังสามารถเปลี่ยนข้อมูลเมตา XML ของ PDF โดยใช้ไลบรารี PyMuPDF
เริ่มต้นใช้งาน PyMuPDF
คุณต้องมี Python เวอร์ชัน 3.8.0 ขึ้นไปจึงจะติดตั้งและใช้ PyMuPDF ได้ ดังนั้น ขั้นแรกให้ติดตั้ง Python จากนั้นใช้คำสั่งด้านล่างเพื่อติดตั้ง PyMuPDF บนเครื่องของคุณโดยใช้ pip และ สภาพแวดล้อมเสมือน.
ลินุกซ์
python -m venv pymupdf-venv
. pymupdf-venv/bin/activate
pip install pymupdf
แมคโอเอส
python -m venv pymupdf-venv
. pymupdf-venv/bin/activate
pip install pymupdf
หน้าต่าง
python -m venv pymupdf-venv
.\pymupdf-venv\Scripts\activate
pip install pymupdf
อ่านข้อมูลเมตา PDF
เราสามารถอ่านข้อมูลเมตาของ PDF ได้โดยใช้สมาชิก ข้อมูลเมตา ของไลบรารี PyMuPDF ซึ่งมีเนื้อหาข้อมูลเมตาที่สมบูรณ์ของเอกสาร ข้อมูลโค้ดด้านล่างแสดงวิธีรับข้อมูลเมตาของ PDF จากสมาชิก ข้อมูลเมตา:
เอาท์พุต
ภาพหน้าจอด้านล่างแสดงข้อมูลเมตาที่ดึงมาจาก PDF โดยใช้ PyMuPDF:
แก้ไขข้อมูลเมตา PDF
เราสามารถแก้ไขข้อมูลเมตาของ PDF ได้โดยใช้ไลบรารี PyMuPDF โดยการส่งพจนานุกรมที่มีฟิลด์ที่เราต้องการเปลี่ยนพร้อมกับค่าใหม่ไปยังเมธอด set_metadata ดังที่แสดงในตัวอย่างโค้ดด้านล่าง:
อ่านข้อมูลเมตา XML ของ PDF
เราสามารถดึงข้อมูลเมตา XML ของ PDF โดยใช้ไลบรารี PyMuPDF เราใช้เมธอด get_xml_metadata ซึ่งส่งคืนข้อมูลเมตา XML ทั้งหมดดังที่แสดงในข้อมูลโค้ดด้านล่าง:
เอาท์พุต
ภาพหน้าจอด้านล่างแสดงข้อมูลเมตา XML ที่ดึงมาจาก PDF โดยใช้ PyMuPDF:
เปลี่ยนข้อมูลเมตา XML ของ PDF
เราสามารถตั้งค่าหรือเปลี่ยนแปลงข้อมูลเมตา XML ของ PDF โดยใช้วิธี set_xml_metadata ของไลบรารี PyMuPDF การดำเนินการนี้ไม่ตรงไปตรงมาเท่ากับการแทนที่ข้อมูลเมตาระดับเอกสาร เนื่องจาก set_xml_metadata จะยอมรับสตริงใดๆ และแทนที่ข้อมูลเมตา XML ที่สมบูรณ์ด้วยสตริงที่ส่งผ่านไป
เพื่อหลีกเลี่ยงการลบข้อมูลเมตาโดยไม่ได้ตั้งใจ ขั้นแรกเราจะดึงข้อมูลเมตา XML ที่สมบูรณ์เป็นสตริงโดยใช้ get_xml_metadata จากนั้นใช้เมธอด แทนที่ ของสตริงเพื่อแทนที่ เมื่อได้ข้อมูลที่ต้องการแล้ว เราก็ส่ง XML ที่สมบูรณ์พร้อมฟิลด์ที่เปลี่ยนแปลงไปยังเมธอด set_xml_metadata ซึ่งจะเปลี่ยนข้อมูลเมตา XML ทั้งหมดของ PDF ตรวจสอบข้อมูลโค้ดด้านล่างเพื่อดูรายละเอียด:
บทสรุป
โดยสรุป PyMuPDF เป็นเครื่องมือที่ยอดเยี่ยมสำหรับงานที่เกี่ยวข้องกับการจัดการข้อมูลเมตา เราสามารถดึงและเปลี่ยนแปลงข้อมูลเมตาดาต้าของ PDF ได้อย่างง่ายดาย อย่างไรก็ตาม จุดอ่อนที่น่าสังเกตอยู่ที่เมธอด set_xml_metadata เมธอดนี้ยอมรับสตริงใดๆ ที่ส่งผ่านไปและเขียนทับ XML ก่อนหน้าด้วย ซึ่งอาจทำให้ข้อมูลสูญหายโดยไม่ได้ตั้งใจเพื่อหลีกเลี่ยงปัญหานี้ นักพัฒนาจำเป็นต้องใช้ตรรกะของตนเพื่อให้แน่ใจว่ามีการแก้ไขข้อมูลเมตา XML ที่ถูกต้อง