PyMuPDF
Thư viện Python mã nguồn mở để quản lý siêu dữ liệu PDF
Hãy dùng thử PyMuPDF, thư viện Python mã nguồn mở và 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à thư viện Python mã nguồn mở cung cấp nhiều tính năng như phân tích cú pháp tệp PDF, tách và hợp nhất các tệp 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, chẳng hạn 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 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 tiê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: 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, sau đó 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 cách sử dụ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 Mac
python -m venv pymupdf-venv
. pymupdf-venv/bin/activate
pip install pymupdf
các cửa sổ
python -m venv pymupdf-venv
.\pymupdf-venv\Scripts\activate
pip install pymupdf
Đọc siêu dữ liệu PDF
Chúng tôi có thể đọc siêu dữ liệu của tệp 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 nội dung siêu dữ liệu hoàn chỉnh của tài liệu. Đoạn mã bên dưới cho biết cách lấy siêu dữ liệu của tệp 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 truy xuất từ tệp PDF bằng PyMuPDF:
Chỉnh sửa siêu dữ liệu PDF
Chúng tôi 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 chuyển một từ điển chứa các trường mà chúng tôi muốn thay đổi cùng với các giá trị mới của chúng sang phương thức set_metadata như hiển thị trong đoạn mã bên dưới:
Đọc siêu dữ liệu XML của tệp PDF
Chúng tôi có thể truy xuất siêu dữ liệu XML của tệp PDF bằng thư viện PyMuPDF. Chúng tôi 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ã bên dưới:
đầ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ừ tệp PDF bằng PyMuPDF:
Thay đổi siêu dữ liệu XML của tệp PDF
Chúng tôi có thể đặt hoặc thay đổi siêu dữ liệu XML của tệp PDF bằng phương thức set_xml_metadata của thư viện PyMuPDF. Việc này 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ế siêu dữ liệu XML hoàn chỉnh bằng chuỗi được truyền cho nó.
Để tránh vô tình xóa bất kỳ thông tin siêu dữ liệu nào, trước tiên chúng tôi tìm nạp siêu dữ liệu XML hoàn chỉnh dưới dạng chuỗi bằng cách sử dụng get_xml_metadata, sau đó sử dụng phương thức chuỗi thay thế để thay thế Cuối cùng, thông tin mong muốn, chúng tôi chuyển XML hoàn chỉnh với các trường đã thay đổi sang phương thức set_xml_metadata để thay đổi toàn bộ siêu dữ liệu XML của tệp PDF. Kiểm tra đoạn mã dưới đây để 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 tôi có thể dễ dàng truy xuất và thay đổi thông tin siêu dữ liệu của tệp 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 cho nó và ghi đè XML trước đó bằng chuỗi đó. Điều này có thể vô tình làm mất thông tin để tránh sự cố này. Để tránh sự cố này, các nhà phát triển phải triển khai logic của mình để đảm bảo các sửa đổi chính xác trong siêu dữ liệu XML.