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 |
|---|---|
| Python | 3.9 or later |
| Paletă de servicii | aspose-words-foss (licențiat de MIT) |
| Intrare | A. În cazul în care: light_document_model.Document caz de exemplu |
pip install aspose-words-fossScrie 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:LdmDocxWriterautorul 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.optionseste disponibilă pentru configurarea la nivel de scriitor; inspectaţi Obiectul după instantiere pentru a vedea setările disponibile.
Probleme comune
| Numărul de date | Cauza | Fixare |
|---|---|---|
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 DOCX | Revizuiește mesajul de avertizare; acceptă pierderea sau ajustează LDM înainte de a scrie. |
| Export gol DOCX | Documentul 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ă unbytesobiectul fără interacţiune cu sistemul de fişiere.
Rezultatele de la data aplicării.
| Clasa / metoda | Descriere: |
|---|---|
LdmDocxWriter | Convertează 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.options | Opțiuni de configurare a scriitorului |
DocxWriterLossyWarning | Avertisment ridicat atunci când o construcție LDM este scăzută în timpul scrierii |
DocumentReader | Citește un fișier DOCX și construiește reprezentarea LDM |
DocumentReader.to_light_document() | Întoarce documentul încărcat ca un LDM Document |