Написання файлів DOCX з LdmDocxWriter

Написання файлів DOCX з LdmDocxWriter

Написання файлів DOCX з LdmDocxWriter

LdmDocxWriter перетворює а light_document_model.Document (LDM) об’єкт в DOCX файл. Це контрагент написання до DocumentReader, що читає файли DOCX Вони формують повний маршрут: DocumentReader в, LdmDocxWriter Вийди.


Prerequisites

RequirementDetail
Python3.9 or later
Packageaspose-words-foss (ліцензій MIT)
InputА. - В. 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")

Напишіть на байти (вихід в пам’яті)

LdmDocxWriter.write_to_bytes(doc) повертає вміст DOCX як bytes об’єкт. Використовуйте це, коли вам потрібно відправити файл через мережу, зберігати його в базі даних або уникати написання файлової системи повністю.

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)


---

### Повертальний паттерн

Найбільш поширеним прикладом використання є перехід з читання-модифікації-запису:

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

Потерпілі попередження

When LdmDocxWriter не може вірно представляти конструкцію LDM у форматі DOCX. він випромінює DocxWriterLossyWarning.Ви можете захопити їх з Python’s. 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() у веб-програмістах, щоб уникнути тимчасового управління файлами.
  • Check DocxWriterLossyWarning у випробуваннях для виявлення регресій по дорозі, коли: оновлення бібліотеки.
  • LdmDocxWriter.options доступна для конфігурації на рівні запису; перевірити об’єкт після інстанціації, щоб побачити доступні налаштування.

Загальні питання

IssueCauseВиправлення
FileNotFoundError на write()Батьківський каталог не існуєСтворення вихідного каталогу з: Path.mkdir(parents=True, exist_ok=True) перед закликанням. write()
DocxWriterLossyWarning випущенийКонструкція LDM не представлена в DOCXПереглянути повідомлення про попередження; прийняти втрату або скористатися LDM перед написанням
Пусте випуск DOCXДокумент LDM не має розділів або параграфів.Verify ldm_doc.sections і ldm_doc.all_paragraphs не порожній після завантаження;

FAQ

Що таке LDM (light_document_model)?

LDM - це абстрактне представлення документа Word на Python, що використовується Aspose.Words FOSS. Він роз’єднує логіку документів з двоякісним форматом DOCX і полегшує програмний огляд та маніпуляція структурою документу.

Чи можу я писати на PDF замість DOCX?

Так використання LdmPdfWriter.write(doc, output_path) з одного пакету для PDF-файлів. видобуток, або LdmMarkdownWriter.write(doc, output_path) для Маркаун.

Does write_to_bytes() потребує вихідного шляху?

Ні, не можу. write_to_bytes(doc) приймає тільки документ LDM і повертає bytes об’єкт без взаємодії файлової системи.


Реферат на API

Клас / методDescription
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

See Also

 Українська