PyMuPDF
Бібліотека Python з відкритим кодом для керування метаданими 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
Щоб установити та використовувати PyMuPDF, вам потрібна версія Python 3.8.0 або новіша. Отже, спочатку встановіть Python, а потім скористайтеся наведеними нижче командами, щоб установити PyMuPDF на ваш комп’ютер за допомогою pip і віртуальне середовище.
Linux
python -m venv pymupdf-venv
. pymupdf-venv/bin/activate
pip install pymupdf
MacOS
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-файлу за допомогою члена metadata бібліотеки PyMuPDF, який містить повний вміст метаданих документа. Наведений нижче фрагмент коду показує, як отримати метадані PDF від учасника metadata:
На знімку екрана нижче показано метадані, отримані з 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, а потім використовуємо метод replace рядка, щоб замінити потрібний нарешті, ми передаємо повний XML зі зміненими полями до методу set_xml_metadata, який змінює всі метадані XML PDF-файлу. Подробиці дивіться у фрагменті коду нижче:
Висновок
Таким чином, PyMuPDF є чудовим інструментом для завдань, пов’язаних із маніпулюванням метаданими. Ми можемо легко отримати та змінити метадані PDF-файлів. Однак помітна слабкість полягає в методі set_xml_metadata. Цей метод приймає будь-який переданий йому рядок і перезаписує ним попередній XML, що може спричинити ненавмисну втрату інформації. Щоб уникнути цієї проблеми, розробники повинні реалізувати свою логіку, щоб забезпечити правильні зміни в метаданих XML.