Aspose.PDF FOSS for Python الميزات

Aspose.PDF FOSS for Python الميزات

Aspose.PDF FOSS ل Python الميزات

Aspose.PDF FOSS ل Python هي مكتبة pure-Python لإنشاء، فتح، تعديل، وحفظ مستندات PDF. تستعرض هذه الصفحة المجالات الرئيسية للقدرات والفئات التي تعمل كنقاط الدخول لها. يتم تغطية كل مجال بعمق في صفحة دليل المطور الخاصة به.


إدارة المستند والصفحة

Document هو الكائن الجذري لكل عملية. أنشئه بدون أي معاملات لبدء مستند جديد فارغ، أو استدعِ load_from() لقراءة مستند موجود من مسار أو بايتات أو تدفق. document.pages يكشف عن PageCollection القابل للتعديل، وPage.add_text يضع نصًا متموضعًا على الصفحة.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
page.add_text("Hello from Aspose.PDF FOSS!", x=72, y=720, font_size=18)
document.save("hello.pdf")

استخراج النص والبحث

PdfExtractor يرتبط بمستند ويسحب النص صفحةً بصفحة. bind_pdf() يفتح المصدر، extract_text() ينفّذ الاستخراج، وget_text() يُعيد النتيجة المتراكمة.

from aspose_pdf import PdfExtractor

extractor = PdfExtractor()
extractor.bind_pdf("hello.pdf")
extractor.extract_text()
print(extractor.get_text())
extractor.close()

للبحث والاستبدال المتموضع، لكل جزء، TextFragmentAbsorber يكشف عن كائنات TextFragment المتطابقة مع text_search_options الذي يتحكم بحساسية الحالة ومطابقة التعبيرات النمطية.


تحويل الصفحة إلى صور

Document.save_page_as_image يحول صفحة واحدة مباشرة إلى ملف PNG أو TIFF بدقة DPI قابلة للتكوين. للوصول على مستوى أدنى، تُعيد Page.render RasterizedPage يحتوي على بيانات بكسل خام عبر get_pixel() وpixels.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.save_page_as_image(0, "page-1.png", dpi=150)

النماذج والحقول التفاعلية

يتم إدارة حقول AcroForm عبر Document.form، واجهة Form. Form.add_text_field() (ومعادلات خانة الاختيار، الراديو، القائمة، ومربع التحرير) تنشئ حقلًا جديدًا مرتبطًا بصفحة ومستطيل عنصر واجهة المستخدم، وتعيد Field. Form.fields يسرد جميع الحقول الحالية في المستند.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
document.form.add_text_field("customer_name", page, (72, 700, 300, 720))

for field in document.form.fields:
    print(field.name, field.field_type)

document.save("form.pdf")

الأمان، التشفير، والتوقيعات

Document.encrypt يحمي مستندًا بكلمة مرور مستخدم (مطلوبة لفتحه) وكلمة مرور مالك (مطلوبة لتغيير الأذونات)؛ decrypt() وchange_passwords() يديران الحماية على مستند مفتوح بالفعل. is_encrypted يبلّغ عن الحالة الحالية.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.encrypt(user_password="secret", owner_password="owner-secret")
document.save("encrypted.pdf")

يتم التعامل مع التحقق من التوقيع الرقمي بواسطة PdfSignature.validate، الذي يُعيد ValidationResult يصف حالة الثقة والإلغاء، وSigningUtils يوفر مساعدي الشهادة وتوقيع PKCS#7/CAdES.


الامتثال لـ PDF/A و PDF/UA

Document.validate_pdfa يجري فحص توافق استدلالي PDF/A ويعيد PdfAValidationResult؛ convert_to_pdfa() يحاول تصحيح المستند نحو ذلك المستوى. validate_pdfua() وauto_tag() يقدمان فحص إمكانية الوصول المكافئ ووضع علامات شجرة البنية تلقائيًا لـ PDF/UA.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")

result = document.validate_pdfa("1b")
if not result.is_valid:
    document.convert_to_pdfa("1b")

document.auto_tag()
document.save("compliant.pdf")

نصائح وأفضل الممارسات

  • عدّل الكائن المُرجع مباشرةً بواسطة document.pages أو page.annotations أو document.form — التعديلات التي تُجرى على نسخة منفصلة من صفحة أو حقل لا تنعكس عندما تستدعي save().
  • PageCollection مُؤشره صفر في هذا الترابط Python (document.pages[0] هي الصفحة الأولى).
  • التقط InvalidPasswordException وPdfParseException قبل AsposePdfException الأوسع عند استدعاء load_from() على مدخل غير موثوق، حتى تتمكن من الرد بشكل مختلف على كلمة مرور سيئة مقارنة بملف تالف.
  • استدعِ document.optimize() أو compress_streams() قبل save() على المستندات التي تم تعديلها بشكل كبير لإزالة الموارد غير المستخدمة وتقليل حجم الملف.
  • مرّر PdfLoadLimits محدودًا إلى load_from() عند معالجة ملفات PDF من مصدر غير موثوق، لتحديد حد الذاكرة وعدد الكائنات أثناء التحليل.

مشكلات شائعة

المشكلةالسببالإصلاح
save() ينتج ملفًا بتعديلات غير مُغيَّرةتم إجراء التعديلات على نسخة من صفحة أو تعليق توضيحي أو حقل بدلاً من الكائن المستخرج من document.pages أو annotations أو formعدّل الكائن المُرجَع مباشرةً من تلك المجموعات
InvalidPasswordException على load_from()المستند محمي بكلمة مرور ولم يتم توفير كلمة مرور، أو تم توفير كلمة مرور خاطئةأدخل كلمة المرور الصحيحة: document.load_from(path, password="...")
validate_pdfa() لا يزال يُبلغ عن خطأ في الخط بعد convert_to_pdfa()لم يتم العثور على ملف خط مطابق في font_lookup_directory المقدمأضف الخط المفقود إلى دليل البحث، أو سجّله باستخدام FontRepository قبل التحويل
الصورة المصدّرة تبدو فارغةتم تمرير فهرس صفحة خاطئ إلى save_page_as_image() أو render()pages يستخدم الفهرسة من الصفر — تأكد من الفهرس، وتحقق مما إذا كان PdfExtractor يُعيد نصًا لتلك الصفحة على الإطلاق
الحقل المضاف باستخدام Form.add_text_field() لا يظهر على الصفحةمستطيل الودجيت يقع خارج media_box الخاص بالصفحةتأكد من أن إحداثيات المستطيل داخل Page.media_box

FAQ

هل يعتمد Aspose.PDF FOSS لـ Python على محرك PDF تجاري؟

لا. إنه محرك PDF من الصفر، نقي-Python، تم إصداره تحت رخصة MIT. اعتماده الوحيد أثناء التشغيل هو cryptography وasn1crypto، يُستخدمان للتشفير والتحقق من التوقيع.

هل يمكنني إنشاء ملف PDF من الصفر بدلاً من فتح ملف موجود؟

نعم. Document() بدون أي معلمات ينشئ مستندًا فارغًا في الذاكرة؛ استدعِ document.pages.add() لإضافة صفحات قبل الحفظ.

ما هي صيغ الرستر التي يمكنني تحويل الصفحة إليها؟

Page.render وDocument.save_page_as_image ينتجان إخراج رستر بصيغة PNG أو TIFF؛ كما أن RasterizedPage المُرجع يُظهر بيانات البكسل الخام عبر get_pixel() وخاصية pixels.

ما الاستثناء الذي يجب أن ألتقطه لأخطاء الحزمة المحددة؟

التقط AsposePdfException. كل خطأ خاص بالحزمة — بما في ذلك التحليل (PdfParseException)، وكلمة المرور والتشفير (PdfSecurityException، InvalidPasswordException)، وفشل التحقق (PdfValidationException) — ينشأ منه.

إلى أين أذهب بعد ذلك؟

دليل البدء يغطي التثبيت، الترخيص، ومثالًا عمليًا أولًا. يستمر دليل المطور هذا بمواضيع إدارة المستندات مثل النماذج، المرفقات المدمجة للملفات، اكتشاف الخطوط، وإنشاء المخططات/الإشارات المرجعية.


API Reference ملخص

فئة/طريقةوصف
Documentالكائن الجذر — إنشاء، تحميل، حفظ، وإدارة ملف PDF
Document.pagesالعنصر القابل للتعديل في المستند PageCollection
Document.load_from / Document.saveقراءة من أو كتابة إلى مسار، بايتات، أو تدفق
Document.encrypt / Document.decryptحماية بكلمة مرور أو إزالة الحماية
Document.validate_pdfa / Document.convert_to_pdfaفحص الامتثال الاستدلالي PDF/A والتحويل
Document.validate_pdfua() / Document.auto_tagفحص إمكانية الوصول PDF/UA والوسم التلقائي للهيكل
Page.add_textإضافة نص موضع إلى صفحة
Page.renderتصيير صفحة إلى RasterizedPage
PdfExtractorاستخراج نص الصفحة والمرفقات المدمجة
PdfFileEditorدمج، تقسيم، إدراج، وحذف الصفحات عبر الملفات
Form / Fieldحاوية AcroForm والحقول الفردية للنموذج
PdfSignature / SigningUtilsالتحقق من صحة التوقيع الرقمي وإنشاؤه
AsposePdfExceptionالفئة الأساسية لكل استثناء خاص بالحزمة

انظر أيضاً

 العربية