Γράψτε αρχεία DOCX με το LdmDocxWriter

Γράψτε αρχεία DOCX με το LdmDocxWriter

Γράψτε αρχεία DOCX με το LdmDocxWriter

LdmDocxWriter Μετατρέποντας A light_document_model.Document (LDM) αντικείμενο σε ένα DOCX αρχείο. είναι το αντίστοιχο γράφοντας για DocumentReader, που διαβάζει αρχεία DOCX και τα εκθέτει ως δέντρο LDM. Μαζί σχηματίζουν ένα κυκλικό σωλήνα: DocumentReader Σε , LdmDocxWriter έξω .


Προϋποθέσεις

ΑΠΑΙΤΗΣΕΙΣΛεπτομέρειες
Python3.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

Δείτε επίσης

 Ελληνικά