Bekerja dengan DOCX Reader

Bekerja dengan DOCX Reader

Pengelolaan DocumentReader kelas membaca Office Open XML (.docx) dan menghasilkan struktur data abstrak (LDM). Ini menangani paragraf, tabel, bentuk, gambar, dan pemformatan, membuat konten tersedia untuk dimanipulasi atau dikonversi.


Membaca File DOCX

Pendekatan paling sederhana adalah menggunakan Document Konstruktor, yang secara otomatis memilih DocumentReader untuk .docx file:

import aspose.words_foss as aw

doc = aw.Document("input.docx")
print(f"Sections: {len(doc.sections)}")
for para in doc.all_paragraphs:
    print(para.text)

Arsitektur DocumentReader

DocumentReader menggunakan dua mixin untuk membagi tanggung jawab:

KomponenPeran dan peran
DocumentReaderParser DOCX utama membaca bagian XML dari paket OPC
LdmBuilderMixinMembangun Model Dokumen Ringan dari data yang diuraikan
ShapeParserMixinParses elemen gambar dan bentuk yang tertanam dalam dokumen

Ketiga-tiga bekerja sama secara internal Anda berinteraksi dengan hasil melalui Document API.


Mengekstrak Teks

Penggunaan get_text() pada dokumen yang dimuat untuk mengekstrak teks kosong tanpa menyimpan ke file:

import aspose.words_foss as aw

doc = aw.Document("contract.docx")
text = doc.get_text()
print(text[:500])

Bekerja dengan Paragraf dan Format

Akses properti tingkat paragraf melalui LDM:

import aspose.words_foss as aw

doc = aw.Document("styled.docx")
for para in doc.all_paragraphs:
    for run in para.runs:
        if run.font.bold:
            print(f"Bold: {run.text}")

Setiap Run membawa sifat font (bold, italic, size, color) yang di-parse dari DOCX XML.


Menggunakan Bentuk dan Gambar

Pengelolaan ShapeParserMixin ekstrak elemen gambar selama parsing. Bentuk muncul dalam LDM sebagai ShapeNode objek dalam isi paragraf:

import aspose.words_foss as aw

doc = aw.Document("with-images.docx")
for para in doc.all_paragraphs:
    for node in para.content_sequence:
        if hasattr(node, 'shape_type'):
            print(f"Shape: {node.shape_type}")

Tips dan Praktik Terbaik

  • Penggunaan Document("file.docx") untuk alur kerja standar ia menangani pemilihan pembaca, validasi paket, dan konstruksi LDM secara otomatis.
  • Untuk input berbasis stream (upload web), kirimkan objek seperti file ke Document Konstruksi.
  • Untuk file dengan tabel, akses mereka melalui doc.tables atau: doc.all_tables.
  • Untuk pemrosesan batch, gunakan ulang proses Python yang sama untuk menghindari overhead impor berulang.

Masalah Umum

IsuPenyebabnyaPerbaiki
File tidak dimuat (ecception)Arsip ZIP rusak atau tidak lengkapMemeriksa file adalah valid .docx (paket OPC berbasis ZIP)
Gambar yang hilang dalam outputBagian gambar yang tidak tertanam dalam bungkusPeriksa apakah DOCX berisi gambar yang tertanam (tidak terkait)
Kekurangan isi dalam outputBagian XML yang diperlukan tidak ada di paketFile dapat dipotong; ekspor kembali dari aplikasi sumber

FAQ

Apa itu Model Dokumen Ringan (LDM)?

LDM adalah representasi internal yang dibagikan ke semua pembaca. Ini menguraikan detail spesifik format (OPC XML, biner OLE2) menjadi struktur umum dari bagian, paragraf, run, tabel, dan bentuk.

Dapatkah DocumentReader menangani file DOCM (makro-enabled)?

Aktifkan makro .docm file menggunakan struktur OPC yang sama. Pembaca dapat menganalisis isi dokumen, tetapi makro tidak disimpan atau dieksekusi.

Bagaimana pembaca menangani dokumen besar?

Reader memproses bagian XML secara berurutan. Penggunaan memori berkisar dengan ukuran dokumen. Untuk dokumen yang sangat besar, pertimbangkan untuk mengolah bagian-bagian secara individual.


Ringkasan Referensi API

Kelas / MetodeDeskripsi
DocumentReaderMembaca dokumen DOCX dan menghasilkan struktur data abstrak
LdmBuilderMixinMetode konstruksi model dokumen ringan yang menyediakan campuran
ShapeParserMixinCampuran yang menyediakan metode gambar/parsing bentuk
DocumentMenunjukkan dokumen Word (akar LDM)
create_reader(path)Pabrik yang mengembalikan pembaca yang benar untuk ekstensi file
 Bahasa Indonesia