DOCX リーダーの使用

DOCX リーダーの使用

DOCX Reader の使用

DocumentReader クラスは Office Open XML (.docx) ファイルを読み取り、抽象化されたデータ構造 — Light Document Model (LDM) を生成します。段落、表、図形、画像、書式設定を処理し、コンテンツを操作または変換できるようにします。


DOCX ファイルの読み取り

最も簡単な方法は Document コンストラクタを使用することで、.docx ファイルに対して自動的に DocumentReader を選択します:

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)

DocumentReader アーキテクチャ

DocumentReader は責務を分割するために 2 つのミキシンを使用します:

ComponentRole
DocumentReaderMain DOCX parser — reads XML parts from the OPC package
LdmBuilderMixinConstructs the Light Document Model from parsed data
ShapeParserMixinParses drawing and shape elements embedded in the document

3 つすべてが内部で連携して動作します — 結果には Document API を介して操作します。


テキストの抽出

ロードされたドキュメントの text プロパティを使用して、ファイルに保存せずにプレーンテキストを抽出します:

import aspose.words_foss as aw

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

段落と書式設定の操作

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

Run は、DOCX XML から解析されたフォントプロパティ(太字、斜体、サイズ、色)を保持しています。


シェイプと画像の処理

パース中に ShapeParserMixin が描画要素を抽出します。シェイプは段落コンテンツ内の ShapeNode オブジェクトとして LDM に表示されます:

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

ヒントとベストプラクティス

  • 標準的なワークフローには Document("file.docx") を使用してください — 読み取り選択、パッケージの検証、および LDM の構築を自動的に処理します。
  • ストリームベースの入力(Web アップロード)の場合は、ファイルライクオブジェクトを Document コンストラクタに渡します。
  • 表を含むファイルは、doc.tables または doc.all_tables を介してアクセスします。
  • バッチ処理では、同じ Python プロセスを再利用して、インポートのオーバーヘッドを繰り返すことを防ぎます。

よくある問題

IssueCause修正
ファイルが読み込めません(例外)破損しているか不完全な ZIP アーカイブファイルが有効な .docx(ZIP ベースの OPC パッケージ)であることを確認してください
出力に画像が欠如しています画像パーツがパッケージに埋め込まれていませんDOCX に埋め込み画像(リンク画像ではなく)が含まれているか確認してください
出力にコンテンツが欠如していますパッケージに必要な XML 部品が欠如していますファイルが切り詰められている可能性があります; 元のアプリケーションから再エクスポートしてください

FAQ

Light Document Model (LDM) とは何ですか?

LDM はすべてのリーダーで共有される内部表現です。形式固有の詳細(OPC XML、OLE2 バイナリ)を抽象化し、セクション、段落、ラン、テーブル、シェイプの共通構造に変換します。

DocumentReader は DOCM(マクロ有効)ファイルを処理できますか?

マクロ有効な .docm ファイルは同じ OPC 構造を使用します。リーダーは文書内容を解析できますが、マクロは保持されず実行もされません。

リーダーは大きな文書をどのように処理しますか?

リーダーは XML パーツを順番に処理します。メモリ使用量は文書サイズに比例します。非常に大きな文書の場合は、セクションを個別に処理することを検討してください。


API Reference の概要

クラス / メソッド説明
DocumentReaderDOCX ドキュメントを読み取り、抽象化されたデータ構造を生成します
LdmBuilderMixinLight Document Model の構築メソッドを提供するミックスイン
ShapeParserMixin描画/シェイプ解析メソッドを提供するMixin
DocumentWord ドキュメント(LDM ルート)を表します
create_reader(path)ファイル拡張子に対して正しいリーダーを返すファクトリ

参照

 日本語