Aspose.PDF FOSS for Python विशेषताएँ
Aspose.PDF Python के लिए FOSS सुविधाएँ
Aspose.PDF FOSS for Python एक शुद्ध-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 get_pixel() और pixels के माध्यम से कच्चा पिक्सेल डेटा के साथ एक RasterizedPage लौटाता है।
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 एक heuristic 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()को कॉल करने पर प्रतिबिंबित नहीं होते। - इस Python बाइंडिंग में
PageCollectionशून्य-इंडेक्स्ड है (document.pages[0]पहली पृष्ठ है)। - अविश्वसनीय इनपुट पर
load_from()को कॉल करते समय व्यापकAsposePdfExceptionसे पहलेInvalidPasswordExceptionऔरPdfParseExceptionको पकड़ें, ताकि आप खराब पासवर्ड और भ्रष्ट फ़ाइल के प्रति अलग प्रतिक्रिया दे सकें। - बहुत अधिक संपादित दस्तावेज़ों पर अनावश्यक संसाधनों को हटाने और फ़ाइल आकार को कम करने के लिए
save()से पहलेdocument.optimize()याcompress_streams()को कॉल करें। - अविश्वसनीय स्रोत से प्राप्त PDFs को प्रोसेस करते समय
load_from()को एक सीमितPdfLoadLimitsपास करें, ताकि पार्सिंग के दौरान मेमोरी और ऑब्जेक्ट काउंट को सीमित किया जा सके।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
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 Python के लिए FOSS एक व्यावसायिक PDF इंजन पर निर्भर करता है?
नहीं। यह शून्य से बना, शुद्ध-Python PDF इंजन है जो MIT लाइसेंस के तहत जारी किया गया है। इसके एकमात्र रनटाइम निर्भरताएँ cryptography और asn1crypto हैं, जो एन्क्रिप्शन और हस्ताक्षर सत्यापन के लिए उपयोग की जाती हैं।
क्या मैं मौजूदा PDF को खोलने के बजाय शून्य से एक PDF बना सकता हूँ?
हां। बिना किसी तर्क के Document() एक खाली, इन-मेमोरी दस्तावेज़ बनाता है; सहेजने से पहले पृष्ठ जोड़ने के लिए document.pages.add() को कॉल करें।
मैं पृष्ठ को कौन-से रास्टर फॉर्मेट में रेंडर कर सकता हूँ?
Page.render और Document.save_page_as_image PNG या TIFF रास्टर आउटपुट उत्पन्न करते हैं; लौटाया गया RasterizedPage भी get_pixel() और pixels प्रॉपर्टी के माध्यम से कच्चा पिक्सेल डेटा उजागर करता है।
पैकेज-विशिष्ट त्रुटियों के लिए मुझे कौन सा अपवाद पकड़ना चाहिए?
Catch AsposePdfException. प्रत्येक पैकेज-विशिष्ट त्रुटि — जिसमें पार्सिंग (PdfParseException), पासवर्ड और एन्क्रिप्शन (PdfSecurityException, InvalidPasswordException), और वैधता (PdfValidationException) विफलताएँ शामिल हैं — इसका मूल कारण है।
मैं आगे कहाँ जाऊँ?
Getting Started में स्थापना, लाइसेंसिंग और पहला कार्यशील उदाहरण शामिल है। यह डेवलपर गाइड दस्तावेज़ प्रबंधन विषयों जैसे फ़ॉर्म, एम्बेडेड फ़ाइल अटैचमेंट, फ़ॉन्ट खोज, और रूपरेखा/बुकमार्क लेखन के साथ जारी रहता है।
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 | हर पैकेज-विशिष्ट अपवाद के लिए मूल वर्ग |