Scriere fișiere DOCX cu LdmDocxWriter

Scriere fișiere DOCX cu LdmDocxWriter

Scriere fișiere DOCX cu LdmDocxWriter

LdmDocxWriter transformă un light_document_model.Document (LDM) obiect într-un Este echivalentul de scris pentru DOCX. DocumentReader, care citește fișierele DOCX Împreună formează o conduită rotundă: DocumentReader în, LdmDocxWriter - Da, afară.


Condiții prealabile

CerințăDetalii
Python3.9 or later
Paletă de serviciiaspose-words-foss (licențiat de MIT)
IntrareA. În cazul în care: light_document_model.Document caz de exemplu
pip install aspose-words-foss

Scrie la o cale de fişier

LdmDocxWriter.write(doc, output_path) Se seriează documentul LDM într-un DOCX. Dacă directoriul principal al căii nu există, apelul la direcţia de acces este redat. va ridica 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")

Scrie la Bytes (In-Memory Output)

LdmDocxWriter.write_to_bytes(doc) returnă conținutul DOCX ca un bytes Obiect. Folosiți-l atunci când aveți nevoie pentru a trimite fișierul pe o rețea, stoca în baza de date, sau să nu scrie în sistemul de fişiere.

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)

Modul de întoarcere în jurul locului

Cel mai comun caz de utilizare este un drum în sensul citire-modificare-scris:

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")

Avertismente în scrisuri greşite

Când ? LdmDocxWriter nu poate reprezenta cu fidelitate o construcție LDM în format DOCX; emite o DocxWriterLossyWarning.Poţi să le capturezi cu Python. warnings modul de audit al ceea ce a fost abandonat:

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)

Sfaturi şi cele mai bune practici

  • Întotdeauna sună. DocumentReader.to_light_document() înainte de a transmite documentul către: LdmDocxWriter autorul se aşteaptă la un LDM. Document, nu o crudă DocumentReader.
  • Utilizare: write_to_bytes() în manipulatoarele web pentru a evita gestionarea temporară a fișierelor.
  • Verifică. DocxWriterLossyWarning în testele de detectare a regresiei rotundă atunci când: - Am îmbunătăţit biblioteca.
  • LdmDocxWriter.options este disponibilă pentru configurarea la nivel de scriitor; inspectaţi Obiectul după instantiere pentru a vedea setările disponibile.

Probleme comune

Numărul de dateCauzaFixare
FileNotFoundError în write()Nu există directoriul principal.Crearea directoriului de ieşire cu: Path.mkdir(parents=True, exist_ok=True) înainte de a suna. write()
DocxWriterLossyWarning emisăConstrucția LDM nu este reprezentată în DOCXRevizuiește mesajul de avertizare; acceptă pierderea sau ajustează LDM înainte de a scrie.
Export gol DOCXDocumentul LDM nu are secțiuni sau paragrafe.Verifică: ldm_doc.sections și de: ldm_doc.all_paragraphs sunt neocupate după încărcare;

FAQ

Ce este LDM (light_document_model)?

LDM este reprezentarea abstractă, nativ-Python a unui document Word de la Aspose.Words FOSS. Acesta decuplează logica documentului din formatul binar DOCX și face mai ușor să inspecteze și manipula structura documentelor programatic.

Pot să scriu în PDF, nu DOCX?

Da utilizare LdmPdfWriter.write(doc, output_path) din același pachet pentru PDF producție, sau LdmMarkdownWriter.write(doc, output_path) pentru Markdown.

- Da. Nu, nu e aşa. write_to_bytes() necesită o cale de ieşire?

  • Nu, nu. Ce?. write_to_bytes(doc) ia doar documentul LDM și returnă un bytes obiectul fără interacţiune cu sistemul de fişiere.

Rezultatele de la data aplicării.

Clasa / metodaDescriere:
LdmDocxWriterConvertează un LDM Document la un fișier DOCX
LdmDocxWriter.write(doc, output_path)Scrie DOCX la calea de fişier specificată
LdmDocxWriter.write_to_bytes(doc)Întoarce conținutul DOCX ca: bytes
LdmDocxWriter.optionsOpțiuni de configurare a scriitorului
DocxWriterLossyWarningAvertisment ridicat atunci când o construcție LDM este scăzută în timpul scrierii
DocumentReaderCitește un fișier DOCX și construiește reprezentarea LDM
DocumentReader.to_light_document()Întoarce documentul încărcat ca un LDM Document

Vezi și:

 Română