PyMuPDF
Thư viện Python nguồn mở để quản lý siêu dữ liệu PDF
Hãy thử PyMuPDF, thư viện Python mã nguồn mở miễn phí để truy cập và sửa đổi siêu dữ liệu của tài liệu PDF.
PyMuPDF là gì?
PyMuPDF, còn được gọi là Fitz, là một thư viện Python nguồn mở cung cấp nhiều tính năng như phân tích cú pháp PDF, chia và hợp nhất PDF v.v. nhưng trong trang này chúng tôi sẽ chỉ thảo luận về cách các nhà phát triển Python có thể sử dụng thư viện PyMuPDF để xử lý các tác vụ liên quan đến siêu dữ liệu PDF như:
- Đọc siêu dữ liệu PDF: PyMuPDF hỗ trợ truy cập siêu dữ liệu của tài liệu PDF có chứa thông tin như tác giả, tiêu đề, chủ đề và ngày tạo, v.v.
- Sửa đổi siêu dữ liệu PDF: Thư viện cũng cho phép sửa đổi siêu dữ liệu của tài liệu PDF.
- Đọc siêu dữ liệu XML: Tài liệu PDF cũng chứa siêu dữ liệu XML không giới hạn ở các thuộc tính tài liệu chuẩn như tác giả, tiêu đề, v.v. và có thể có siêu dữ liệu bổ sung. Với PyMuPDF, các nhà phát triển cũng có thể đọc nó.
- Thay đổi siêu dữ liệu XML: Các nhà phát triển cũng có thể thay đổi siêu dữ liệu XML của tệp PDF bằng thư viện PyMuPDF.
Bắt đầu với PyMuPDF
Bạn cần Python phiên bản 3.8.0 trở lên để cài đặt và sử dụng PyMuPDF. Vì vậy, trước tiên hãy cài đặt Python rồi sử dụng các lệnh bên dưới để cài đặt PyMuPDF trên máy của bạn bằng pip và môi trường ảo.
Linux
python -m venv pymupdf-venv
. pymupdf-venv/bin/activate
pip install pymupdf
Hệ điều hành MacOS
python -m venv pymupdf-venv
. pymupdf-venv/bin/activate
pip install pymupdf
Cửa sổ
python -m venv pymupdf-venv
.\pymupdf-venv\Scripts\activate
pip install pymupdf
Đọc siêu dữ liệu PDF
Chúng ta có thể đọc siêu dữ liệu của PDF bằng cách sử dụng thành viên siêu dữ liệu của thư viện PyMuPDF chứa toàn bộ nội dung siêu dữ liệu của tài liệu. Đoạn mã dưới đây cho thấy cách lấy siêu dữ liệu của PDF từ thành viên siêu dữ liệu:
Đầu ra
Ảnh chụp màn hình bên dưới hiển thị siêu dữ liệu được lấy từ PDF bằng PyMuPDF:
Chỉnh sửa siêu dữ liệu PDF
Chúng ta có thể chỉnh sửa siêu dữ liệu của tệp PDF bằng thư viện PyMuPDF bằng cách truyền một từ điển chứa các trường chúng ta muốn thay đổi cùng với các giá trị mới của chúng vào phương thức set_metadata như được hiển thị trong đoạn mã bên dưới:
Đọc siêu dữ liệu XML của PDF
Chúng ta có thể lấy siêu dữ liệu XML của PDF bằng thư viện PyMuPDF. Chúng ta sử dụng phương thức get_xml_metadata trả về toàn bộ siêu dữ liệu XML như trong đoạn mã dưới đây:
Đầu ra
Ảnh chụp màn hình bên dưới hiển thị siêu dữ liệu XML được lấy từ PDF bằng PyMuPDF:
Thay đổi siêu dữ liệu XML của PDF
Chúng ta có thể thiết lập hoặc thay đổi siêu dữ liệu XML của PDF bằng phương thức set_xml_metadata của thư viện PyMuPDF. Nó không đơn giản như việc thay thế siêu dữ liệu cấp tài liệu vì set_xml_metadata sẽ chấp nhận bất kỳ chuỗi nào và thay thế toàn bộ siêu dữ liệu XML bằng chuỗi được truyền vào.
Để tránh xóa thông tin siêu dữ liệu vô tình, trước tiên chúng ta lấy toàn bộ siêu dữ liệu XML dưới dạng chuỗi bằng cách sử dụng get_xml_metadata rồi sử dụng phương thức replace của chuỗi để thay thế thông tin mong muốn. Cuối cùng, chúng ta truyền toàn bộ XML với các trường đã thay đổi đến phương thức set_xml_metadata để thay đổi toàn bộ siêu dữ liệu XML của PDF. Kiểm tra đoạn mã bên dưới để biết chi tiết:
Phần kết luận
Tóm lại, PyMuPDF là một công cụ tuyệt vời cho các tác vụ liên quan đến thao tác siêu dữ liệu. Chúng ta có thể dễ dàng truy xuất và thay đổi thông tin siêu dữ liệu của PDF. Tuy nhiên, một điểm yếu đáng chú ý nằm ở phương thức set_xml_metadata. Phương thức này chấp nhận bất kỳ chuỗi nào được truyền vào và ghi đè lên XML trước đó bằng chuỗi đó, điều này có thể gây mất thông tin ngoài ý muốn để tránh vấn đề này, các nhà phát triển được yêu cầu triển khai logic của họ để đảm bảo sửa đổi chính xác trong siêu dữ liệu XML.