जनरेटेड संगतता API के साथ काम करना
जेनरेटेड कम्पैटिबिलिटी API के साथ काम करना
Aspose.PDF FOSS for 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.* पाथ द्वारा इम्पोर्ट करें ताकि आपको पता रहे कि आप कौन सी कॉल कर रहे हैं।
जेनरेटेड Document के माध्यम से दस्तावेज़ जीवनचक्र
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 को सीधे निर्मित और भरा भी जा सकता है, बिना absorber के निर्भरता के:
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()द्वारा स्वचालित रूप से नहीं भरा जाता।- यदि आप सुनिश्चित नहीं हैं कि
extract()पहले ही चल चुका है, तोget_extracted()को कॉल करने से पहलेUnsignedContentAbsorber.has_extracted()की जाँच करें। - नए कोड के लिए प्राथमिक
aspose_pdf.DocumentAPI को प्राथमिकता दें, जब तक कि आपको विशेष रूप से घटाए गए, जेनरेटेड-कम्पैटिबिलिटी सतह की आवश्यकता न हो।
आम समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
गलत Document मेथड उपलब्ध हैं (अनुपलब्ध pages, form, xmp_metadata, और इसी तरह) | मुख्य aspose_pdf.Document के बजाय generated.document.Document आयात किया गया | यदि आप घटित सतह चाहते हैं तो छोड़ें; अन्यथा मुख्य क्लास (import aspose_pdf; aspose_pdf.Document()) आयात करें |
generated.pdfa से PdfAValidateOptions/PdfAValidationResult PdfAValidator.process() के साथ काम नहीं करते | मुख्य API का PdfAValidator अपने स्वयं के PdfAValidateOptions/PdfAValidationResult क्लासेस की अपेक्षा करता है, न कि generated.pdfa संस्करणों की | aspose_pdf से निर्यात किए गए PdfAValidateOptions/PdfAValidationResult क्लासेज़ का उपयोग 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 का हिस्सा है और यह प्राथमिक API की अपनी PdfAValidateOptions क्लास की अपेक्षा करता है, जिसकी मेथड सिग्नेचर अलग है (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 | एक unsigned-content बंडल से पृष्ठ जोड़ता या हटाता है |
UnsignedContent.add_form_field / remove_form_field | एक unsigned-content बंडल से फ़ॉर्म फ़ील्ड जोड़ता या हटाता है |
UnsignedContent.add_annotation / remove_annotation | एक unsigned-content बंडल से एनोटेशन जोड़ता या हटाता है |
UnsignedContentAbsorber.extract | unsigned content को एक UnsignedContent इंस्टेंस में निकालता है |
UnsignedContentAbsorber.get_extracted | यदि कोई हो, तो अंतिम निकाला गया UnsignedContent लौटाता है |
UnsignedContentAbsorber.has_extracted | रिपोर्ट करता है कि निकासी की गई है या नहीं |
PdfAValidateOptions.add_input | वैधता के लिए एक इनपुट स्रोत को पंजीकृत करता है |
PdfAValidateOptions.set_option / get_options | वैधता विकल्प मानों को सेट करता है या पढ़ता है |
PdfAValidationResult.add_error | एक त्रुटि संदेश जोड़ता है और परिणाम को अमान्य चिह्नित करता है |
PdfAValidationResult.to_dict | मान्यकरण परिणाम का शब्दकोश प्रतिनिधित्व लौटाता है |