LdmDocxWriter के साथ DOCX फ़ाइल लिखना
LdmDocxWriter के साथ DOCX फ़ाइल लिखना
LdmDocxWriter A को बदलना light_document_model.Document (LDM) एक वस्तु में प्रवेश करने के लिए DOCX फ़ाइल. यह लिखने के लिए प्रतिद्वंद्वी है DocumentReader, जो DOCX फ़ाइलों को पढ़ता है और उन्हें एलडीएम पेड़ के रूप में प्रदर्शित करता है. एक साथ वे एक गोल-ट्रॉप पाइपलाइन बनाते हैं: DocumentReader में , LdmDocxWriter बाहर निकलना।.
Prerequisites
| Requirement | Detail |
|---|---|
| Python | 3.9 or later |
| Package | aspose-words-foss (मैं लाइसेंस प्राप्त करता हूं) |
| Input | A light_document_model.Document उदाहरण |
pip install aspose-words-fossफ़ाइल मार्ग पर लिखें
LdmDocxWriter.write(doc, output_path) LDM दस्तावेज़ को DOCX में सीरियल करें फ़ाइल उस मार्ग पर है. यदि मार्ग के मातृ निर्देशिका मौजूद नहीं है, तो कॉल बढ़ेगा FileNotFoundError.
from aspose.words_foss import DocumentReader, LdmDocxWriter
# Load a DOCX and obtain its LDM representation
reader = DocumentReader()
reader.load_file("input/original.docx")
ldm_doc = reader.to_light_document()
# Write the LDM document back to a DOCX file
writer = LdmDocxWriter()
writer.write(ldm_doc, "output/result.docx")
print("Written to output/result.docx")लिखें बिट्स (In-Memory Output)
LdmDocxWriter.write_to_bytes(doc) DOCX सामग्री को वापस करने के लिए एक bytes वस्तुओं का।. इसे उपयोग करें जब आपको फ़ाइल को एक नेटवर्क के माध्यम से भेजने, इसे एक डेटाबेस में संग्रहीत करने की आवश्यकता होती है, या फ़ाइल सिस्टम को पूरी तरह से लिखने से बचें।.
reader = DocumentReader() reader.load_file(“input/report.docx”) ldm_doc = reader.to_light_document()
writer = LdmDocxWriter() docx_bytes = writer.write_to_bytes(ldm_doc) print(f"DOCX bytes: {len(docx_bytes)}")
Save manually if desired
with open(“output/report_copy.docx”, “wb”) as f: f.write(docx_bytes)
---
### रॉड-ट्रिप पैटर्न
सबसे आम उपयोग के मामले में, एक पढ़ने-संपादित-लेखन दौर यात्रा है:
reader = DocumentReader()
reader.load_file("input/template.docx")
ldm_doc = reader.to_light_document()
# Inspect or modify the LDM here
print("Sections:", len(ldm_doc.sections))
print("Paragraphs:", len(ldm_doc.all_paragraphs))
writer = LdmDocxWriter()
writer.write(ldm_doc, "output/modified.docx")हानिकारक चेतावनी लिखें
When LdmDocxWriter एक एलडीएम संरचना को DOCX प्रारूप में वफादार रूप से प्रतिनिधित्व नहीं कर सकते हैं यह एक को जारी करता है DocxWriterLossyWarning.आप Python के साथ इन को पकड़ सकते हैं warnings मॉड्यूल जो गिरा दिया गया है की जांच करने के लिए:
import warnings
from aspose.words_foss import DocumentReader, LdmDocxWriter, DocxWriterLossyWarning
reader = DocumentReader()
reader.load_file("input/complex.docx")
ldm_doc = reader.to_light_document()
writer = LdmDocxWriter()
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter("always", DocxWriterLossyWarning)
writer.write(ldm_doc, "output/complex_out.docx")
for warning in w:
print("Lossy:", warning.message)टिप्स और सर्वश्रेष्ठ अभ्यास
- हमेशा कॉल करें
DocumentReader.to_light_document()दस्तावेज़ को पारित करने से पहले,LdmDocxWriterलेखक को एलडीएम की उम्मीद है।Document,नहीं, एक रॉयDocumentReader. - उपयोग करें
write_to_bytes()Web Manager में, अस्थायी फ़ाइल प्रबंधन से बचें।. - Check
DocxWriterLossyWarningरेंज-ट्रॉप पुनरावृत्ति का पता लगाने के लिए परीक्षण में जब पुस्तकालय को अपग्रेड करें।. LdmDocxWriter.optionsलेखन स्तर पर कॉन्फ़िगरेशन के लिए उपलब्ध है; जांच करें कि ऑब्जेक्ट के बाद, उपलब्ध सेटिंग्स को देखने के लिए।.
सामान्य मुद्दे
| Issue | Cause | फिक्स करें |
|---|---|---|
FileNotFoundError पर write() | माता-पिता का प्रबंधन नहीं है। | आउटपुट निर्देशिका बनाएं Path.mkdir(parents=True, exist_ok=True) कॉल करने से पहले write() |
DocxWriterLossyWarning जारी किए गए | LDM Constructs DOCX में प्रतिनिधित्व योग्य नहीं है | चेतावनी संदेश की समीक्षा करें; लिखने से पहले LDM को स्वीकार करें या समायोजित करें |
| खाली आउटपुट DOCX | एलडीएम दस्तावेज़ में कोई अनुभाग या पैराग्राफ नहीं हैं | Verify ldm_doc.sections और ldm_doc.all_paragraphs लोड के बाद अनैच्छिक हैं |
FAQ
क्या है एलडीएम (light_document_model)?
LDM Aspose.Words FOSS का एक शब्द दस्तावेज़ का एम्बेड, पायथन-आधारित प्रतिनिधित्व है. यह DOCX बाइनरी प्रारूप से दस्त तर्क को अलग करता है और इसे प्रोग्राम के माध्यम से वस्तु संरचना की जांच और हेरफेर करना आसान बनाता है।.
क्या मैं DOCX के बजाय PDF में लिख सकता हूं?
हाँ - उपयोग करें LdmPdfWriter.write(doc, output_path) PDF के लिए एक ही पैकेज से उत्पादन या LdmMarkdownWriter.write(doc, output_path) मार्कडॉन के लिए।.
Does write_to_bytes() एक आउटपुट मार्ग की जरूरत है?
नहीं है।. write_to_bytes(doc) केवल एलडीएम दस्तावेज़ लेता है और एक वापस करता है bytes वस्तुएं फ़ाइल सिस्टम के साथ कोई बातचीत नहीं है।.
API संदर्भ सारांश
| वर्ग / विधि | Description |
|---|---|
LdmDocxWriter | एक LDM को बदलना Document एक DOCX फ़ाइल में |
LdmDocxWriter.write(doc, output_path) | फ़ाइल मार्ग पर DOCX लिखें |
LdmDocxWriter.write_to_bytes(doc) | DOCX सामग्री को वापस करने के लिए bytes |
LdmDocxWriter.options | Writer Configuration विकल्पों के बारे में |
DocxWriterLossyWarning | चेतावनी उठाया जब लिखने के दौरान एक एलडीएम संरचना गिरती है |
DocumentReader | एक DOCX फ़ाइल पढ़ता है और LDM प्रतिनिधित्व बनाता हैं |
DocumentReader.to_light_document() | लोड किए गए दस्तावेज़ को एक एलडीएम के रूप में वापस लाता है Document |