PyMuPDF
کتابخانه Python منبع باز برای مدیریت متادیتا PDF
PyMuPDF، کتابخانه رایگان و منبع باز Python را برای دسترسی و اصلاح فراداده اسناد PDF امتحان کنید.
PyMuPDF چیست؟
PyMuPDF، همچنین به عنوان Fitz شناخته می شود، یک کتابخانه پایتون منبع باز است که ویژگی های بسیاری مانند تجزیه فایل های PDF، تقسیم و ادغام فایل های PDF و غیره، اما در این صفحه ما فقط به این موضوع می پردازیم که چگونه توسعه دهندگان پایتون می توانند از کتابخانه PyMuPDF برای مدیریت وظایف مرتبط با فراداده PDF مانند:
- خواندن فراداده PDF: PyMuPDF از دسترسی به ابرداده اسناد PDF حاوی اطلاعاتی مانند نویسنده، عنوان، موضوع و تاریخ ایجاد و غیره پشتیبانی میکند.
- تغییر فراداده PDF: این کتابخانه همچنین امکان تغییر ابرداده اسناد PDF را می دهد.
- خواندن فراداده XML: اسناد PDF همچنین حاوی فرادادههای XML هستند که به ویژگیهای سند استاندارد مانند نویسنده، عنوان و غیره محدود نمیشوند و میتوانند متادیتای اضافی داشته باشند. با PyMuPDF، توسعه دهندگان همچنین می توانند آن را بخوانند.
- تغییر فراداده XML: برنامهنویسان همچنین میتوانند فرادادههای XML فایلهای PDF را با استفاده از کتابخانه PyMuPDF تغییر دهند.
شروع کار با PyMuPDF
برای نصب و استفاده از PyMuPDF به نسخه 3.8.0 یا بالاتر پایتون نیاز دارید. بنابراین، ابتدا 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 را تغییر دهید
ما می توانیم با استفاده از روش set_xml_metadata کتابخانه PyMuPDF، فراداده XML یک PDF را تنظیم یا تغییر دهیم. این کار به سادگی جایگزین کردن ابرداده در سطح سند نیست زیرا set_xml_metadata هر رشته ای را می پذیرد و ابرداده کامل XML را با رشته ای که به آن ارسال می شود جایگزین می کند.
به منظور جلوگیری از حذف ناخواسته هرگونه اطلاعات فراداده، ابتدا فراداده کامل XML را با استفاده از get_xml_metadata واکشی می کنیم و سپس از روش replace رشته برای جایگزینی استفاده می کنیم. اطلاعات مورد نظر در نهایت، ما XML کامل را با فیلدهای تغییر یافته به روش set_xml_metadata منتقل می کنیم که کل فراداده XML PDF را تغییر می دهد. برای جزئیات، قطعه کد زیر را بررسی کنید:
نتیجه
به طور خلاصه، PyMuPDF یک ابزار عالی برای کارهای مربوط به دستکاری ابرداده است. ما به راحتی می توانیم اطلاعات فراداده فایل های PDF را بازیابی و تغییر دهیم. با این حال، یک ضعف قابل توجه در متد set_xml_metadata نهفته است. این روش هر رشته ای را می پذیرد که به آن ارسال شود و XML قبلی را با آن بازنویسی می کند که ممکن است باعث از دست رفتن ناخواسته اطلاعات شود تا از این مشکل جلوگیری شود، توسعه دهندگان باید منطق خود را برای اطمینان از اصلاحات صحیح در فراداده XML پیاده سازی کنند.