Python में दस्तावेज़ कैसे लोड करें

Python में दस्तावेज़ कैसे लोड करें

Aspose.PDF FOSS for Python फ़ाइल पथ, कच्चे बाइट्स, या बाइनरी स्ट्रीम से एक PDF को Document ऑब्जेक्ट में लोड करता है, जिसे आप निरीक्षण और संशोधित कर सकते हैं। लाइब्रेरी शुद्ध Python है और एक ही कमांड से स्थापित होती है।

स्टेप बाय स्टेप गाइड

चरण 2: आवश्यक क्लासेस आयात करें

PDF को लोड और रखरखाव करने के लिए Document आयात करें, साथ ही उन अपवाद क्लासेस को जिन्हें लोड विफल होने पर आप संभालेंगे:

from aspose_pdf import (
    Document,
    InvalidPasswordException,
    InvalidPdfFileFormatException,
    PdfCorruptedError,
    PdfParseException,
)

चरण 3: फ़ाइल पथ से PDF लोड करें

फ़ाइल पथ को सीधे Document कंस्ट्रक्टर को पास करें, या किसी मौजूदा इंस्टेंस पर स्पष्ट रूप से load_from को कॉल करें — दोनों पथ, bytes, या बाइनरी स्ट्रीम स्वीकार करते हैं। अंतर्निहित फ़ाइल हैंडल को स्वचालित रूप से रिलीज़ करने के लिए Document को एक कॉन्टेक्स्ट मैनेजर के रूप में उपयोग करें:

from aspose_pdf import Document

with Document("report.pdf") as document:
    print(f"Loaded {document.page_count} page(s)")

कंस्ट्रक्टर रूप Document(source) Document().load_from(source) के बराबर है:

document = Document()
document.load_from("report.pdf")
print(f"Loaded {document.page_count} page(s)")
document.close()

चरण 4: पासवर्ड-सुरक्षित PDF लोड करें

दोनों Document(source, password=...) और Document.load_from(source, password, limits) उपयोगकर्ता पासवर्ड से एन्क्रिप्ट किए गए PDFs के लिए एक password आर्ग्युमेंट स्वीकार करते हैं:

from aspose_pdf import Document

with Document("locked.pdf", password="secret") as document:
    print(f"Opened encrypted document: {document.page_count} page(s)")
    print(f"Encrypted: {document.is_encrypted}")

यदि स्रोत पासवर्ड-सुरक्षित नहीं है, तो आर्ग्युमेंट को छोड़ दें — password=None (डिफ़ॉल्ट) पास करना सामान्य PDFs के लिए भी काम करता है।


चरण 5: लोड अपवादों को संभालें

एक गायब फ़ाइल, गैर-PDF डेटा, गायब या गलत पासवर्ड, या भ्रष्ट PDF कभी भी मौन खाली Document नहीं लौटाता — बल्कि यह अपवाद उठाता है। उचित प्रतिक्रिया देने के लिए विशिष्ट अपवाद क्लासेज़ को पकड़ें:

from aspose_pdf import (
    Document,
    InvalidPasswordException,
    InvalidPdfFileFormatException,
    PdfCorruptedError,
    PdfParseException,
)

try:
    document = Document("report.pdf", password="maybe-wrong")
except InvalidPasswordException:
    print("The PDF is encrypted; supply the correct password.")
except InvalidPdfFileFormatException:
    print("The file is not a valid PDF.")
except PdfCorruptedError as error:
    print(f"Unrecoverable corruption at offset {error.offset}: {error.message}")
except PdfParseException as error:
    print(f"Could not parse the PDF: {error}")
else:
    print(f"Loaded {document.page_count} page(s)")
    document.close()

PdfCorruptedError और उसका सिब्लिंग PdfMalformedError दोनों message, offset, और recoverable प्रॉपर्टीज़ रखते हैं, जो यह लॉग करने में उपयोगी है कि टूटी हुई फ़ाइल कहाँ पार्स करने में विफल रही। अविश्वसनीय इनपुट प्रोसेस करते समय, PdfResourceLimitException को भी पकड़ें, जो तब उठाया जाता है जब कोई दस्तावेज़ डिफ़ॉल्ट PdfLoadLimits सुरक्षा नीति (इनपुट आकार, ऑब्जेक्ट काउंट, डिकोडेड स्ट्रीम आकार, एवं समान सीमाएँ) से अधिक हो जाता है।


चरण 7: दस्तावेज़ संसाधनों को रिलीज़ करें

जब आप Document को एक कॉन्टेक्स्ट मैनेजर (with Document(...) as document:) के रूप में उपयोग करते हैं तो ब्लॉक समाप्त होने पर दस्तावेज़ स्वचालित रूप से बंद हो जाता है। जब आप Document को with ब्लॉक के बाहर बनाते हैं, तो काम समाप्त करने के बाद स्पष्ट रूप से close() या dispose() को कॉल करें:

document = Document()
document.load_from("report.pdf")
try:
    print(document.page_count)
finally:
    document.close()

सामान्य समस्याएँ और समाधान

InvalidPasswordException यह त्रुटि उठाई जाती है जबकि मैं नहीं सोचता था कि फ़ाइल एन्क्रिप्टेड है

स्रोत PDF में उपयोगकर्ता पासवर्ड सेट है। फ़ाइल के स्रोत से इसे पुष्टि करें, फिर सही मान को password तर्क के रूप में Document(...) या load_from(...) को पास करें।

InvalidPdfFileFormatException एक ऐसी फ़ाइल पर जो ठीक लगती है

फ़ाइल एक मान्य PDF नहीं है — यह एक HTML त्रुटि पृष्ठ, अधूरी डाउनलोड, या .pdf एक्सटेंशन के साथ सहेजा गया कोई अन्य फॉर्मेट हो सकता है। फ़ाइल को टेक्स्ट एडिटर में खोलें और पुष्टि करें कि यह %PDF- से शुरू होती है।

PdfCorruptedError एक ऐसी फ़ाइल पर जो अन्य व्यूअर में खुलती है

कुछ PDF रीडर टूटे हुए संरचना को चुपचाप ठीक कर देते हैं। Document अपरिवर्तनीय क्षति के लिए PdfCorruptedError और पुनर्प्राप्त करने योग्य संरचनात्मक समस्याओं के लिए PdfMalformedError उठाता है — समस्या वाले बाइट स्ट्रीम क्षेत्र को खोजने के लिए अपवाद पर offset प्रॉपर्टी की जाँच करें।

PdfResourceLimitException एक बड़े या जटिल PDF पर

दस्तावेज़ एक डिफ़ॉल्ट PdfLoadLimits सीमा (इनपुट आकार, ऑब्जेक्ट काउंट, डिकोडेड स्ट्रीम आकार, और समान सीमाएँ जो अविश्वसनीय इनपुट से बचाने के लिए डिज़ाइन की गई हैं) से अधिक हो गया। एक कस्टम PdfLoadLimits बनाएं और इसे limits= के रूप में Document(...) को या load_from(...) को पास करें यदि फ़ाइल विश्वसनीय है और बड़े सीमाएँ उपयुक्त हैं।

बंद करना भूल जाना Document एक के बाहर खोला गया with block

जब आप समाप्त कर लें तो document.close() (या document.dispose()) को कॉल करें, या फ़ाइल को with Document(source) as document: के साथ लोड करें ताकि ब्लॉक के भीतर अपवाद उत्पन्न होने पर भी सफ़ाई स्वचालित रूप से हो जाए।

अक्सर पूछे जाने वाले प्रश्न

PDF लोड करते समय source तर्क के रूप में मैं क्या पास कर सकता हूँ?

Document(source) और Document.load_from(source, password, limits) फ़ाइल पाथ, कच्चा bytes, या कोई भी बाइनरी स्ट्रीम स्वीकार करते हैं।

मैं डिस्क पर नहीं बल्कि पहले से मेमोरी में मौजूद PDF को कैसे लोड करूँ?

सीधे bytes ऑब्जेक्ट पास करें: Document(pdf_bytes), या मौजूदा Document इंस्टेंस पर document.load_from(pdf_bytes) कॉल करें।

क्या PDF लोड करने के लिए पहले सही पासवर्ड आवश्यक है, या मैं पहले जाँच कर सकता हूँ?

is_encrypted केवल सफल लोड के बाद उपलब्ध होता है, इसलिए एन्क्रिप्टेड PDF को उसी कॉल में सही password आर्ग्यूमेंट के साथ खोलना होगा। यदि आपको इंटरैक्टिव रूप से पासवर्ड पूछने की आवश्यकता है तो InvalidPasswordException को पकड़ें।

यह भी देखें

 हिन्दी