DOCリーダーの使用

DOC リーダーの操作

Aspose.Words FOSS for Python には、レガシーな Word 97-2003 .doc ファイル用の専用リーダーが含まれています。DocFileReader クラスは OLE2 バイナリ形式を解析し、操作や他フォーマットへの変換が可能な Light Document Model (LDM) を生成します。


DOC ファイルの読み込み

ディスク上の .doc ファイルを開き、Document に変換するには DocFileReader を使用します:

import aspose.words_foss as aw

doc = aw.Document("report.doc")
print(f"Paragraphs: {len(doc.all_paragraphs)}")

Document コンストラクタは create_reader() に委譲し、.doc 拡張子に基づいて DocFileReader を自動的に選択します。


DocFileReaderCore を直接使用する

より低レベルの制御が必要な場合は、DocFileReaderCore をインスタンス化し、その load メソッドを呼び出します:

from aspose.words_foss.doc_reader.doc_file_reader_core import DocFileReaderCore

reader = DocFileReaderCore()
reader.load_file("legacy.doc")

DocFileReaderCore は 3 つの入力方法を提供します:

メソッド入力タイプユースケース
load_file(filepath)ファイルパス文字列ディスクから読み取る
load_stream(stream)ファイルライクオブジェクトアップロードまたはネットワークストリームから読み取る
load_bytes(data)bytesメモリ内バッファから読み取る

Light Document Model の構築

ロード後、DocFileReader に対して to_light_document() を呼び出し、LDM Document を生成します:

from aspose.words_foss.doc_reader.doc_file_reader import DocFileReader

reader = DocFileReader()
reader.load_file("input.doc")
ldm_doc = reader.to_light_document()

LDM はすべてのリーダー (DocFileReader、DocumentReader、TextFileReader) で共有される内部表現です。LDM ドキュメントを取得したら、サポートされている任意の出力フォーマットに保存できます。


The DocumentFormatReader プロトコル

すべてのリーダーは DocumentFormatReader プロトコルを実装し、共通インターフェース (load_file()、load_stream()、load_bytes()) を定義します。create_reader() ファクトリー関数は、ファイル拡張子に基づいて適切なリーダーを返します:

from aspose.words_foss.reader_factory import create_reader

reader = create_reader("data.doc")  # returns DocFileReader
reader.load_file("data.doc")

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

  • ほとんどのワークフローでは、高レベルの Document("file.doc") コンストラクタを使用してください — 読み取り選択を自動的に処理します。
  • バイナリ解析層への直接アクセスが必要な場合にのみ、DocFileReaderCoreを使用してください。
  • bytesとして受け取ったファイル(例: HTTPのアップロードから)は、一時ファイルの書き込みを避けるために、load_bytes()を使用することを推奨します。
  • DOCリーダーは、テキスト、段落、基本的な書式設定において、DOCXリーダーと同等のラウンドトリップ忠実度をサポートします。

一般的な問題

問題原因修正
load_file() raises FileNotFoundError不正なファイルパス呼び出す前にパスが存在することを確認してください
ロード後に文字化けしていますファイルは有効な OLE2 バイナリではありませんファイルが実際に .doc フォーマットであり、リネームされた .docx ではないことを確認してください
出力に書式が欠落しています一部の高度な DOC 機能はまだサポートされていません未対応の機能については limitations.md を確認してください

FAQ

DocFileReader と DocFileReaderCore の違いは何ですか?

DocFileReaderCoreはOLE2フォーマットの低レベルバイナリ解析を処理します。DocFileReaderは、変換に適した完全なLDM Documentを生成するto_light_document()メソッドを追加することで機能を拡張します。

ストリームからDOCファイルを読み込むことはできますか?

はい。DocFileReaderCore.load_stream(stream) を使用するか、ファイルライクオブジェクトを渡してください。これは、ファイルがストリームとしてアップロードされるウェブアプリケーションで便利です。

DOCリーダーはパスワード保護されたファイルに対応していますか?

パスワード保護された.docファイルは現在サポートされていません。ファイルが暗号化されている場合、リーダーは例外をスローします。


API Reference 概要

クラス / メソッド説明
DocFileReaderLDM構築機能を備えたフルDOCリーダー
DocFileReader.to_light_document()解析されたDOCデータをLDMドキュメントに変換します
DocFileReaderCoreWord 97-2003(.doc)バイナリファイル用のコアリーダー
DocFileReaderCore.load_file(filepath)パスからDOCファイルをロードする
DocFileReaderCore.load_stream(stream)ストリームから DOC ファイルをロードする
DocFileReaderCore.load_bytes(data)バイトバッファから DOC ファイルをロードする
DocumentFormatReaderすべてのドキュメントリーダーのプロトコルインターフェース
create_reader(path)ファイル拡張子に応じた適切なリーダーを返すファクトリ

参照

 日本語