LdmDocxWriter ile Dosyaları Yazmak
LdmDocxWriter ile Dosyaları Yazmak
LdmDocxWriter dönüştürücü a light_document_model.Document (LDM) nesneye giren bir DOCX dosyası. yazma eşdeğeri DocumentReader,DOCX dosyalarını okuyanlar Birlikte bir LDM ağaç olarak ortaya çıkarlar ve yuvarlak bir boru hattı oluştururlar: DocumentReader içinde , LdmDocxWriter dışarı çıkıyor.
Prerequisites
| Requirement | Detail |
|---|---|
| Python | 3.9 or later |
| Package | aspose-words-foss (MİLLENİM İÇİN TIKLAYIN) |
| Input | A light_document_model.Document İstekler |
pip install aspose-words-fossBir dosya yoluna yazın
LdmDocxWriter.write(doc, output_path) LDM belgesini bir DOCX’e serialize eder. Dosya verilen yolda. eğer yolun ana dizininde çağrı yoksa, Yükselecek 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")Notlar için yazma (in-memory output)
LdmDocxWriter.write_to_bytes(doc) DOCX içeriğini A olarak geri getirir. bytes nesne için. Dosyayı bir ağ üzerinden göndermeniz, bir veritabanına kaydetmeniz veya Tüm dosya sistemine yazmaktan kaçının.
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)
---
### Round-Trip Modeli
En yaygın kullanım durumunda, okuma-değiştirme-yazma döngüsü yolculuğu:
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")Kaybı- Yazılı Uyarılar
When LdmDocxWriter • Bir LDM konektörü DOCX biçiminde sadıkça temsil edemez. A’yı yayınlar DocxWriterLossyWarning.Bunları Python ile yakalayabilirsiniz. warnings Modül düştüğü şeyi incelemek için:
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)İpuçları ve En İyi Uygulamalar
- Her zaman arama
DocumentReader.to_light_document()belgeyi iletmeden önce,LdmDocxWriter- yazar bir LDM bekliyorDocument,Bir çamur değilDocumentReader. - Kullanım
write_to_bytes()Web yöneticileri geçici dosya yönetimini önlemek için. - Check
DocxWriterLossyWarning• Trafikte regresyonlar tespit etmek için yapılan testler, Kütüphanenin yükseltilmesi. LdmDocxWriter.optionsyazar düzeyinde yapılandırma için mevcuttur; kontrol etmek için mevcut ayarları görmek için bir örnekten sonra.
ortak sorunlar
| Issue | Cause | Fix |
|---|---|---|
FileNotFoundError Üzerinde write() | Anasayfa > Evler > Doğumdan yok | çıkış dizinini oluşturun Path.mkdir(parents=True, exist_ok=True) Çağrıdan Önce write() |
DocxWriterLossyWarning Yayınlanan | LDM konstrüksiyonu DOCX’te temsil edilemez | Uyarı mesajını inceleyin; kaybı kabul edin veya yazmadan önce LDM’yi ayarlayın |
| Boş çıkış DOCX | LDM belgesinde bölümler veya paragraflar yoktur. | Verify ldm_doc.sections ve ldm_doc.all_paragraphs Yükten sonra boş kalmazlar |
FAQ
LDM nedir (light_document_model)?
LDM, Aspose.Words FOSS’in bir Word belgesinin abstrak ve Python-native temsilidir.Doküman mantığını DOCX ikili biçiminden çifte eder ve doküman yapısını programlı olarak incelemek ve manipüle etmek için kolaylaştırır.
DOCX yerine PDF yazabilir miyim?
Evet - Kullanım LdmPdfWriter.write(doc, output_path) PDF için aynı paketden üretimi veya LdmMarkdownWriter.write(doc, output_path) Markdown için.
Does write_to_bytes() Bir çıkış yolu gerektirir mi?
Hayır hayır. write_to_bytes(doc) Sadece LDM belgesini alır ve geri verir. bytes nesne Fil sisteminin etkileşimine sahip değil.
API Referans Özetleri
| Sınıf / Yöntem | Description |
|---|---|
LdmDocxWriter | LDM dönüştürücü Document DOCX dosyası için |
LdmDocxWriter.write(doc, output_path) | Dosya yoluna dokunmatik yazın |
LdmDocxWriter.write_to_bytes(doc) | DOCX içeriğini geri getirir bytes |
LdmDocxWriter.options | Yazıcı Konfigürasyon Seçenekleri |
DocxWriterLossyWarning | Yazma sırasında bir LDM yapı düştüğünde uyarı yükselir |
DocumentReader | DOCX dosyasını okuyor ve LDM temsilciliğini oluşturuyor. |
DocumentReader.to_light_document() | Yüklenen belgeyi LDM olarak geri getirir. Document |