| Apache | Jakarta | POI |
POI -- HDFThe Word 97 File Format in semi-plain Englishこの文書の目的は、簡潔でハイレベルなHDFドキュメント形式に対する概観を示すものであります。この文書は、技術的な詳細には及んでいませんし、Microsoft Word 97のバイナリファイルフォーマット(Wotsit.orgで簡単に手に入れられます)の補足程度でしかありません。 OLEファイル形式については、この文書では触れられていません。この文書にあたり、POIFS APIに関する実際の知識が読者にある事を仮定しています。 Wordファイル構造Word ファイルは、テキストの整形化に関するものを含むデータ構造と、ドキュメントのテキストで構成されています。無論、これは非常に単純化されたモデルでありまして、「フィールド」や「マクロ」その他のものに関しては考慮していません。ここでは、形式化されたテキストに関してのみHDFで考慮しています。 Word ファイルの読み込みHDFにおけるWordファイル読み込みのエントリポイントは、File Information Block (略してFIB)です。このエントリポイントは、ドキュメントのテキストのサイズ・位置、及びデータ構造のエントリポイントです。FIBは、メインのデータストリームの一番最初に位置しています。 テキストドキュメントのテキストもまた、メインのデータストリームに位置しています。はじめの位置は、FIBとして与えられていまして、データ長(バイト長)は、FIB.ccpTextによって与えられています。これら2つの値は、Unicodeでの記述であるため決して使いやすいものではありません。UnicodeのテキストとASCII系のテキストが交じり合っている場合もあります。その場合、ピーステーブル(piece table)とよばれるものを導入します。 ピーステーブルは、Unicodeの部分と非Unicodeの部分を区分・分離する為に使います。オフセットのサイズは、FIB.fcClxで与えられ、 各々FIB.lcbClxで与えられます。ピーステーブルに、プロパティ修飾子(Property Modifiers/ prm)がある場合もあります。These are for complex(fast-saved) files and are skipped. 各々のテキストのピースには、そのピース用のテキストを含んでいるメインストリーム内にオフセットが含まれています。もしそのピースがUNICODEであれば、ファイルのオフセットは、とあるbitでマスキングされています。ですから、実際のファイルのオフセットを得るためには、そのbitのマスキングを解いて、2で割らなければなりません。 テキスト整形スタイルシート全てのテキストフォーマットは、スタイルシートを含んだスタイルをベースにしています。スタイルシートは、スタイル表記等色々なデータ構造を含んでいます。各々のスタイル表記には、パラグラフ(段落)スタイルや文字スタイル、あるいは単なるキャラクタスタイルを入れることができます。各々のスタイル表記は、ファイル内で圧縮された形で格納されています。基本的に、これらは他のスタイルとのデルタ(訳注:差分)です。 結局、 言外の値を含む仮想上のスタイル「nil」(無)スタイルに束縛されなければならない、ということです。 パラグラフ・キャラクタ スタイルドキュメントテキストのパラグラフ及びキャラクタを形成するプロパティは、スタイルシートの基本スタイルからのデルタ(差分)としてファイルに格納されています。このデルタは、メモリ上で完全に解凍されたスタイルを生成するのに使用されます。 解凍されたパラグラフのスタイルは、Paragraph Properties(PAP) データ構造で表現されます。解凍されたキャラクタのスタイルは、Character Properties(CHP) データ構造で表現されます。ドキュメントのテキストのスタイルは、対応するFormatted Disk Pages (FKP) 内に圧縮された形で格納されています。圧縮形のPAPは、PAPXに対応し、圧縮形のCHPはCHPXに対応します。FKPは、場所的に、binテーブル内に置かれます。CHPX用、PAPX用のbinテーブルは、分離されています。binテーブルの位置及びサイズは、FIB内に格納されています。 FKPは、512バイトのOLEページです。メインストリームで走っている各々のパラグラフ・キャラクタの最初と終わりのオフセットを含んでおり、その間の圧縮されたプロパティを含んでいます。圧縮されたPAPXは、そのスタイルシートのベーススタイルに基づいています。圧縮されたCHPXは、囲まれているパラグラフのスタイルシートのベーススタイルに基づいています。 スタイル及び他データ構造の解凍全ての、圧縮されたプロパティ(CHPX, PAPX, SEPX) には、grpprlがあります。grpprlとは、sprmsの配列のことです。sprm は、ベースプロパティからのデルタ情報を規定します。Word 97 の仕様では、可能な限りのsprmsのテーブルがあります。各々のsprmは、2バイトのオペランド(1つのパラメタを取る)です。パラメタのサイズは、sprmに依拠しています。各々のsprmには、ベーススタイルで実行されるべきオペレーションを記述されています。grpprlないの全てのsprmがベーススタイルで実行された後、ようやく、パラグラフ・キャラクタ・セクション等のスタイルを得ることが可能となります。 |
| Special Thanks -- 【お問い合わせ/テキスト広告】 |