العمل مع التوافق المتولد 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.DocumentAPI الأساسي للشفرة الجديدة ما لم تكن بحاجة محددة إلى السطح المخفض المتولد للتوافق.
مشكلات شائعة
| المشكلة | السبب | الإصلاح |
|---|---|---|
توفر طرق 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 | يعيد تمثيل القاموس لنتيجة التحقق |