Skriv DOCX filer med LdmDocxWriter

Skriv DOCX filer med LdmDocxWriter

Skriv DOCX filer med LdmDocxWriter

LdmDocxWriter Konverterar A light_document_model.Document (LDM) objektet i en DOCX-fil. det är den skrivande motsvarigheten till DocumentReader, som läser DOCX-filer och exponerar dem som ett LDM-träd. Tillsammans bildar de en rundrutt: DocumentReader i den, LdmDocxWriter ut på.


Prerequisites

RequirementDetail
Python3.9 or later
Packageaspose-words-foss (Licenserad av MIT)
InträdeA och light_document_model.Document instans
pip install aspose-words-foss

Skriv till en filvägen

LdmDocxWriter.write(doc, output_path) Serierar LDM-dokumentet till en DOCX filen på den angivna vägen. om det föräldraledighet i vägen inte finns samtalet kommer att höja 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")

Skriv till bytes (in-memory output)

LdmDocxWriter.write_to_bytes(doc) returnerar DOCX-innehållet som en bytes och objekt. Använd detta när du behöver skicka filen över ett nätverk, lagra den i en databas eller Undvik att skriva till filsystemet helt.

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)


---

### Runda färdspåren

Den vanligaste användningsförfarandet är en läs-modifierad-skriv rundresa:

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

Förlust av varningar

When LdmDocxWriter kan inte trovärdigt representera en LDM konstruerad i DOCX-format Det ger ut en DocxWriterLossyWarning.Du kan fånga dessa med Python warnings Modul för att granska vad som har kastats:

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)

Tips och bästa praxis

  • Alltid ringa DocumentReader.to_light_document() Innan du skickar dokumentet till LdmDocxWriter Författaren förväntar sig en LDM. Document,Inte en rå DocumentReader.
  • Användning write_to_bytes() i web-handlare för att undvika tillfällig filhantering.
  • Check DocxWriterLossyWarning i tester för att upptäcka rundtur regressioner när Uppgradera biblioteket.
  • LdmDocxWriter.options är tillgänglig för konfiguration på skrivarenivå; kontrollera objekt efter instantiation för att se tillgängliga inställningar.

Vanliga frågor

IssueCauseFixar
FileNotFoundErrorwrite()Föräldradirektorn finns inteSkapa utgångsdirektivet med Path.mkdir(parents=True, exist_ok=True) Innan du ringer write()
DocxWriterLossyWarning utfärdadeLDM konstruera inte representativ i DOCXÖvervaka varningsmeddelandet; acceptera förlusten eller justera LDM innan du skriver
tom utgång DOCXLDM-dokumentet har inga avsnitt eller styckenVerify ldm_doc.sections och ldm_doc.all_paragraphs är oförmögen efter lastning

FAQ

Vad är LDM (light_document_model)?

LDM är Aspose.Words FOSS abstrakt, Python-native representation av ett Word-dokument. Det decouples dokument logik från DOCX binär format och gör det lättare att inspektera och manipulera dokumentstrukturen programmatiskt.

Kan jag skriva i PDF istället för DOCX?

Ja - Använd LdmPdfWriter.write(doc, output_path) från samma paket för PDF produktion, eller LdmMarkdownWriter.write(doc, output_path) för markdown.

Does write_to_bytes() Behöver du en utgångsväg?

Nej inte. write_to_bytes(doc) tar endast LDM-dokumentet och returnerar en bytes Objektet utan filsysteminteraktion.


API Referens sammanfattning

Klass / MetodBeskrivning
LdmDocxWriterKonverterar en LDM Document Till en DOCX-fil
LdmDocxWriter.write(doc, output_path)Skriv DOCX till den angivna filvägen
LdmDocxWriter.write_to_bytes(doc)Returnerar DOCX-innehållet som bytes
LdmDocxWriter.optionsSkrivaren konfiguration alternativ
DocxWriterLossyWarningVarning upphöjd när en LDM-konstruktion faller under skrivandet
DocumentReaderLäser en DOCX-fil och bygger LDM-representationen
DocumentReader.to_light_document()Returnerar det laddade dokumentet som en LDM Document

Se även

 Svenska