العمل مع التوافق المتولد API

العمل مع التوافق المتولد API

العمل مع التوافق المُولد API

Aspose.PDF FOSS لـ Python يُصدر سطحًا ثانيًا أصغر لـ API ضمن الحزمة الفرعية aspose_pdf.generated: generated.document.Document، generated.forms.UnsignedContent وUnsignedContentAbsorber، وgenerated.pdfa.PdfAValidateOptions وPdfAValidationResult. كل واحدة من هذه الفئات تشترك في اسمها مع فئة في API الأساسي للمكتبة (aspose_pdf.Document، aspose_pdf.UnsignedContent، وما إلى ذلك)، لكنها فئات منفصلة ومُعرفة بشكل مستقل بسطح طرق مُقلل. إنها موجودة كطبقة توافق مستقلة — استوردها دائمًا عبر مسار aspose_pdf.generated.* الكامل حتى تعرف أي واحدة تستدعيها.


دورة حياة المستند عبر المستند المُولد

generated.document.Document يدعم دورة حياة المستند الأساسية: التحميل، الحفظ، التحسين الأساسي، التشفير، والتحقق. معظم خصائصه مُعرفة بنوع Any بدلاً من الأنواع الأكثر غنىً التي تُعرض في الفئة الأساسية Document.

from aspose_pdf.generated.document import Document

doc = Document()
doc.load_from("input.pdf")

doc.optimize(compress_images=True)
doc.optimize_resources(remove_unused=True)

if doc.validate():
    doc.save("output.pdf")

doc.dispose()

التشفير وتغييرات كلمة المرور يستخدمان نموذج كلمة مرور واحدة بدلاً من كلمات مرور المستخدم/المالك المنفصلة في Document.encrypt الأساسي:

from aspose_pdf.generated.document import Document

doc = Document()
doc.load_from("input.pdf")

doc.encrypt("secret")
doc.change_passwords("secret", "new-secret")
doc.save("protected.pdf")

استخراج المحتوى غير الموقع

generated.forms.UnsignedContentAbsorber يستخرج الصفحات، حقول النماذج، والتعليقات التوضيحية لمستند لم يتم توقيعه بعد إلى حاوية UnsignedContent. استدعِ extract() لتشغيل الاستخراج، ثم get_extracted() أو has_extracted() للتحقق من النتيجة دون إعادة تشغيله.

from aspose_pdf.generated.document import Document
from aspose_pdf.generated.forms import UnsignedContentAbsorber

doc = Document()
doc.load_from("input.pdf")

absorber = UnsignedContentAbsorber()
extracted = absorber.extract()

print(len(extracted.pages), len(extracted.form_fields), extracted.annotations)

if absorber.has_extracted():
    same_result = absorber.get_extracted()

absorber.reset()

يمكن أيضًا بناء UnsignedContent وتعبئتها مباشرةً، مستقلةً عن ماصٍ:

from aspose_pdf.generated.forms import UnsignedContent

bundle = UnsignedContent()
bundle.add_page(some_page)
bundle.add_form_field(some_field)
bundle.add_annotation(some_annotation)

bundle.remove_page(some_page)
bundle.reset()

خيارات التحقق من PDF/A والنتائج

generated.pdfa.PdfAValidateOptions و PdfAValidationResult هما زوج خيارات/نتائج مستقل لتدفقات عمل التحقق على نمط PDF/A. إنهما ليسا الفئات التي تُرجعها API الأساسية في Document.validate_pdfa() ولا تُستهلك بواسطة PdfAValidator.process() — تلك تستخدم فئاتها الخاصة، المعرفة بشكل منفصل PdfAValidateOptions و PdfAValidationResult، ذات سطح أكثر ثراءً (level، warnings، is_heuristic، وfont_lookup_directory).

from aspose_pdf.generated.pdfa import PdfAValidateOptions, PdfAValidationResult

options = PdfAValidateOptions()
options.add_input()
options.set_option("level", "1b")

stored_options = options.get_options()

result = PdfAValidationResult()
result.add_error("Font not embedded: Arial")

summary = result.to_dict()
is_valid = result.is_valid

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

  • استورد كل فئة generated عبر مسارها الفرعي الكامل (from aspose_pdf.generated.document import Document، وبالمثل بالنسبة إلى generated.forms و generated.pdfa) — لا تفترض أبداً أن استيرادًا مجردًا لـ Document أو UnsignedContent سيحلّ إلى نسخة التوافق.
  • امنح الفئة المستوردة اسمًا محليًا مميزًا كلما استخدم ملف ما API الأساسي في نفس الوحدة، حتى يبقى السطحان منفصلين بوضوح في كل موقع استدعاء.
  • اعتبر generated.pdfa.PdfAValidateOptions/PdfAValidationResult كزوج مستقل: أنشئ الخيارات، نفّذ منطق التحقق الخاص بك، وسجّل النتائج باستخدام add_error() بنفسك — ليسا مُعبّئين تلقائيًا بواسطة Document.validate_pdfa().
  • تحقق من UnsignedContentAbsorber.has_extracted() قبل استدعاء get_extracted() إذا لم تكن متأكدًا من أن extract() قد تم تشغيله بالفعل.
  • يفضَّل استخدام aspose_pdf.Document API الأساسي للشفرة الجديدة ما لم تكن بحاجة محددة إلى السطح المخفض المتولد للتوافق.

مشكلات شائعة

المشكلةالسببالإصلاح
توفر طرق Document خاطئة (يفتقد pages، form، xmp_metadata، وما شابه ذلك)تم استيراد generated.document.Document بدلاً من aspose_pdf.Document الأساسياستورد الفئة الأساسية (import aspose_pdf; aspose_pdf.Document()) ما لم يكن السطح المخفض هو ما تقصده
PdfAValidateOptions/PdfAValidationResult من generated.pdfa لا تعمل مع PdfAValidator.process()يتوقع PdfAValidator الخاص بـ API الأساسي فئاته الخاصة PdfAValidateOptions/PdfAValidationResult، وليس إصدارات generated.pdfaاستخدم الفئات PdfAValidateOptions/PdfAValidationResult المُصدَّرة من aspose_pdf لعمليات PdfAValidator
get_extracted() يرجع Noneلم يتم استدعاء extract() أبداً على ذلك المثيل من UnsignedContentAbsorberاستدعِ extract() قبل get_extracted()، أو تحقق من has_extracted() أولاً
الخصائص في generated.document.Document مَصنَّفة كـ Any ولا توفر إكمالاً تلقائيًاالواجهة المُولَّدة تستبدل الكتابة الثابتة بـ API أصغر وأكثر بساطةقم بالتحويل أو توثيق النوع المتوقع عند موقع الاستدعاء، أو انتقل إلى الفئة الأساسية Document للحصول على كتابة أكثر ثراءً

FAQ

هل aspose_pdf.generated عنصر نائب أم نموذج تجريبي؟

لا. إنها حزمة فرعية حقيقية قابلة للاستيراد تحتوي على فئات عاملة — Document، UnsignedContent، UnsignedContentAbsorber، PdfAValidateOptions، وPdfAValidationResult — إنها مجرد سطح أصغر ومستقل مقارنةً بـ API الأساسي للمكتبة.

لماذا يحتوي generated.document.Document على نفس الاسم مثل aspose_pdf.Document؟

إنهما فئتان معرفتان بشكل مستقل تصادفا تشتركان في الاسم. الاستيراد من aspose_pdf.generated.document يمنحك نسخة التوافق؛ الاستيراد aspose_pdf.Document (أو from aspose_pdf import Document) يمنحك النسخة الأساسية.

هل يمكنني تمرير generated.pdfa.PdfAValidateOptions إلى PdfAValidator.process()؟

لا. PdfAValidator.process() هو جزء من API الأساسي ويتوقع فئة PdfAValidateOptions الخاصة بـ API الأساسي، والتي لها توقيع طريقة مختلف (add_input(source) بدلاً من add_input() بدون وسائط).

هل يحتاج UnsignedContentAbsorber.extract() إلى معامل Document؟

لا. extract() لا يأخذ أي معاملات في واجهة التوافق المُولَّدة؛ أنشئ الممتص واستدعِ extract() مباشرةً.


ملخص API Reference

صنف / طريقةوصف
Document.load_fromيحمل مستندًا من مسار ملف أو بايت أو تدفق
Document.saveيحفظ المستند إلى الوجهة
Document.optimizeيقوم بتحسين عام، مع إمكانية ضغط الصور
Document.optimize_resourcesيحسن الموارد المشتركة مثل الخطوط والصور
Document.encryptيشفر المستند باستخدام كلمة مرور واحدة
Document.change_passwordsيغيّر كلمة مرور المستند
Document.validateيُرجع ما إذا كان المستند صالحًا من الناحية الهيكلية
Document.disposeيُطلق الموارد المرتبطة بالمستند
UnsignedContent.add_page / remove_pageيضيف أو يزيل صفحة من حزمة محتوى غير موقع
UnsignedContent.add_form_field / remove_form_fieldيضيف أو يزيل حقل نموذج من حزمة محتوى غير موقع
UnsignedContent.add_annotation / remove_annotationيضيف أو يزيل تعليقا من حزمة unsigned-content
UnsignedContentAbsorber.extractيستخرج المحتوى غير الموقع إلى مثيل UnsignedContent
UnsignedContentAbsorber.get_extractedإرجاع آخر UnsignedContent مستخرج، إن وجد
UnsignedContentAbsorber.has_extractedيُبلغ عما إذا تم تنفيذ الاستخراج
PdfAValidateOptions.add_inputيسجّل مصدر إدخال للتحقق
PdfAValidateOptions.set_option / get_optionsيضبط أو يقرأ قيم خيارات التحقق
PdfAValidationResult.add_errorيضيف رسالة خطأ ويضع علامة على أن النتيجة غير صالحة
PdfAValidationResult.to_dictيعيد تمثيل القاموس لنتيجة التحقق

انظر أيضاً

 العربية