Γράψτε αρχεία DOCX με το LdmDocxWriter
Γράψτε αρχεία DOCX με το LdmDocxWriter
LdmDocxWriter Μετατρέποντας A light_document_model.Document (LDM) αντικείμενο σε ένα DOCX αρχείο. είναι το αντίστοιχο γράφοντας για DocumentReader, που διαβάζει αρχεία DOCX και τα εκθέτει ως δέντρο LDM. Μαζί σχηματίζουν ένα κυκλικό σωλήνα: DocumentReader Σε , LdmDocxWriter έξω .
Προϋποθέσεις
| ΑΠΑΙΤΗΣΕΙΣ | Λεπτομέρειες |
|---|---|
| Python | 3.9 or later |
| Πακέτο | aspose-words-foss (Επίσημη από το ΜΜΕ) |
| εισαγωγών | Α 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")Γράψτε στα Bytes (In-Memory Output)
LdmDocxWriter.write_to_bytes(doc) Επαναφέρει το περιεχόμενο DOCX ως ένα bytes αντικειμένου . Χρησιμοποιήστε αυτό όταν πρέπει να στείλετε το αρχείο μέσω ενός δικτύου, αποθηκεύοντας το σε μια βάση δεδομένων ή Αποφύγετε να γράφετε στο αρχείο εντελώς.
from aspose.words_foss import DocumentReader, LdmDocxWriter
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)Ροντάρισμα μοτίβα
Η πιο κοινή περίπτωση χρήσης είναι μια περιήγηση ανάγνωσης-διαγραφής:
from aspose.words_foss import DocumentReader, LdmDocxWriter
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")Σημειώσεις για το Lossy-Write
Όταν LdmDocxWriter Δεν μπορεί να αντιπροσωπεύσει πιστά ένα κατασκευασμένο LDM σε μορφή 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Ο συγγραφέας αναμένει ένα LDM.Document,Όχι ένα ριζάκιDocumentReader. - Χρησιμοποιήστε
write_to_bytes()σε web managers για να αποφύγετε την προσωρινή διαχείριση αρχείων. - Ελέγξτε
DocxWriterLossyWarningσε δοκιμές για την ανίχνευση περιστροφικών ρευστόμενων πτήσεων όταν Αναβάθμιση της βιβλιοθήκης. LdmDocxWriter.optionsδιατίθεται για τη διάταξη του γραμματέα-περίπου· ελέγξτε την αντικείμενο μετά την εγκατάσταση για να δείτε τις διαθέσιμες ρυθμίσεις.
κοινά ζητήματα
| Θέμα | Αιτία | ΦΙΛΕΞΗ |
|---|---|---|
FileNotFoundError Ο ΣΕ write() | Ο γονικός διευθυντής δεν υπάρχει. | Δημιουργία του καταλόγου παραγωγής με Path.mkdir(parents=True, exist_ok=True) Πριν καλέσει write() |
DocxWriterLossyWarning Εκδόθηκε | LDM κατασκευές που δεν αντιπροσωπεύονται στο DOCX | Εξετάστε το μήνυμα προειδοποίησης. αποδέχεστε την απώλεια ή ρυθμίστε τον LDM πριν γράψετε |
| Ελεύθερη έκδοση DOCX | Το έγγραφο LDM δεν έχει τμήματα ή παραγράφους | Ελέγξτε ldm_doc.sections και ldm_doc.all_paragraphs Αδυναμία μετά το φορτίο |
FAQ
Τι είναι το LDM (light_document_model)?
Το LDM είναι η αποστραμμένη, Python-γενής εκπροσώπηση ενός εγγράφου του Word. Αποκτά τη λογική του εδράματος από το δυαδικό μορφότυπο DOCX και καθιστά ευκολότερο να ελέγχεται και να χειρίζεται την δομή του έγγραφου με προγραμματισμό.
Μπορώ να γράψω σε PDF αντί για DOCX;?
Ναι - Χρησιμοποιήστε LdmPdfWriter.write(doc, output_path) από το ίδιο πακέτο για PDF παραγωγής, ή LdmMarkdownWriter.write(doc, output_path) Για το Markdown.
Η ΚΕ write_to_bytes() Χρειάζεται ένα δρόμο εξόδου;?
Όχι . write_to_bytes(doc) Πάρτε μόνο το έγγραφο LDM και επιστρέψετε ένα bytes αντικείμενο χωρίς αλληλεπίδραση με το αρχείο.
Συνοπτική αναφορά API
| Κλάση / Μέθοδος | Περιγραφή |
|---|---|
LdmDocxWriter | Μετατρέποντας ένα LDM Document Εισαγωγή σε αρχείο DOCX |
LdmDocxWriter.write(doc, output_path) | Γράφει το DOCX στο καθορισμένο αρχείο |
LdmDocxWriter.write_to_bytes(doc) | Επιστρέφει το περιεχόμενο του DOCX ως bytes |
LdmDocxWriter.options | Επιλογές διαμόρφωσης συγγραφέας |
DocxWriterLossyWarning | Προειδοποίηση που ανεβάζεται όταν ένα κτίριο LDM πέφτει κατά τη διάρκεια της γραφής |
DocumentReader | Διαβάζει ένα αρχείο DOCX και δημιουργεί την παρουσίαση LDM |
DocumentReader.to_light_document() | Επιστρέφει το φορτισμένο έγγραφο ως LDM Document |