Pisanje DOCX datoteka s LdmDocxWriterom
Pisanje DOCX datoteka s LdmDocxWriterom
LdmDocxWriter pretvara u: light_document_model.Document (LDM) objekta u To je pisao ekvivalent za DOCX datoteku. DocumentReader, koji čita DOCX datoteke Zajedno formiraju putni sustav: DocumentReader u, LdmDocxWriter -Ne, ne mogu.
U skladu s člankom 21. stavkom 1.
| Odluka o odobrenju | Detaljnije informacije |
|---|---|
| Python | 3.9 or later |
| Sljedeći članak: | aspose-words-foss (MIT-licenciran) |
| Uvodni broj: | A. - U redu je. light_document_model.Document primjerak |
pip install aspose-words-fossPišite na putanje datoteke
LdmDocxWriter.write(doc, output_path) Serializira LDM dokument u DOCX. Ako matični direktorij puta ne postoji poziv na “Path” je u redu. će podići 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")Pišite na bajtove (izlaz u memoriji)
LdmDocxWriter.write_to_bytes(doc) vraća DOCX sadržaj kao: bytes -Ne, ne mogu. Koristite to kada morate poslati datoteku preko mreže, pohraniti u bazu podataka, ili izbjegavajte pisanje u sustav datoteka.
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)Uzorak povratka i povratke
Najčešći slučaj upotrebe je čitanje-promeniti-napisati povratno putovanje:
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")Opomene u lošem pisanju
Kada? LdmDocxWriter Ne može vjerno predstavljati LDM konstrukciju u formatu DOCX-a. izlazi od DocxWriterLossyWarning.Možete ih uhvatiti Pythonovim programom. warnings Modul za reviziju onoga što je odbačeno:
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)Savjeti i najbolje prakse
- Uvijek nazovi.
DocumentReader.to_light_document()prije prosljeđivanja dokumenta na:LdmDocxWriterpisac očekuje LDM-a.Document, ne sirovoDocumentReader. - Upotreba:
write_to_bytes()u web-upravljačima kako bi se izbjeglo privremeno upravljanje datotekama. - Čekaj.
DocxWriterLossyWarningu ispitivanjima za otkrivanje regresije povratnog puta kada: Nadogradnja knjižnice. LdmDocxWriter.optionsje dostupna za konfiguraciju na nivou pisca; provjerite objekat nakon instancizacije da bi se vidjelo dostupna postavka.
Zajednički problemi
| Izdavanje | Uzrok | Popraviti |
|---|---|---|
FileNotFoundError na: write() | Roditeljskog direktorija ne postoji | Stvoriti izlazni direktorij pomoću: Path.mkdir(parents=True, exist_ok=True) prije nego što pozoveš. write() |
DocxWriterLossyWarning izbacivanje | LDM konstrukcija nije predstavljiva u DOCX-u | Proučiti upozorenje; prihvatiti gubitak ili prilagoditi LDM prije pisanja |
| Prazan izlaz DOCX | LDM dokument nema odjeljki ili stavka | Potvrditi: ldm_doc.sections i u članku 1. ldm_doc.all_paragraphs su neprazni nakon opterećenja. |
FAQ
Što je LDM (light_document_model)?
LDM je apstraktna, Python-originalna reprezentacija Word dokumenta u programu Aspose.Words FOSS. Ona odvoji logiku dokumenata od binarnog formata DOCX i olakšava pregled i programski manipulirati strukturom dokumenatova.
Mogu li pisati na PDF umjesto DOCX?
Da upotreba LdmPdfWriter.write(doc, output_path) Iz istog paketa za PDF-ove proizvodnja ili LdmMarkdownWriter.write(doc, output_path) za Markdown.
Da li je? write_to_bytes() Treba li put za izlaz?
-Ne, ne mogu. write_to_bytes(doc) uzme samo dokument LDM i vraća bytes predmet bez interakcije s datotekom.
Svrha referentnog API-a
| Klasa / metoda | Opisivanje |
|---|---|
LdmDocxWriter | Pretvara LDM-a Document na DOCX datoteku |
LdmDocxWriter.write(doc, output_path) | Pisanje DOCX na određenu putanju datoteke |
LdmDocxWriter.write_to_bytes(doc) | Vrati sadržaj DOCX-a kao: bytes |
LdmDocxWriter.options | Opcije konfiguracije pisaca |
DocxWriterLossyWarning | Upozoravanje kada je LDM konstrukcija odbačena tijekom pisanja. |
DocumentReader | Čita DOCX datoteku i gradi LDM predstavljanje |
DocumentReader.to_light_document() | Vrati učitavan dokument kao LDM Document |