0

WordML のパーサーを作成しています。仕様を調べてみると、ドキュメントのページ数を数える方法は、 の要素を読み取ることPagesですDocumentProperties。仕様を正しく読めば、DocumentProperties常にそこにあるはずです。

Mac でテスト ドキュメントを作成しているときに、生成された xml にPagesor要素がないことに気付きました。DocumentPropertiesがあり、w:documentその中にw:bodyコンテンツがあります。

DocumentProperties必須ですか、それともこれは Mac のものですか?

4

1 に答える 1

1

2 つの異なる Word XML 形式があります。古い Word 2003 XML 形式と Office Open XML 形式です。どちらも .docx として保存でき、XML のセットとして保存され、場合によっては他のファイル タイプとして .zip に保存されます。コンテナ、および同じものの単一ファイル XML 表現である「フラット OPC」形式。

各形式は、プロパティを異なる場所に格納します。

w:document という要素が表示されている場合は、実際には OOXML 形式で保存しています。その形式では、「組み込み」プロパティは少なくとも 2 つの「部分」に保存されます。通常、要素は /docProps/app.xml という名前の pkg:part 内の要素内にあります。

少なくとも 3 つの合併症があります。

  1. ページ数は、Word が保存した最後のページ数です (ファイルを保存したのは Word であると仮定します)。これは、特定の用紙サイズ、プリンタードライバーなどでのみ正しいです。
  2. 私が言及した 2 つの XML 表現のいずれにおいても、この要素は必須ではないと思います。しかし、確かではありません。しかし、私の知る限り、Word は常にそれを保存します。
  3. 一般に、このプロパティ部分が実際に /docProps/app.xml と呼ばれるとは想定できません。実際には、Word は常にその名前で保存する必要があります。しかし、理論的には、特定の URI を持つ要素を探すか、特定の型との関係に従う必要があります。この場合の詳細は忘れました。
于 2014-08-27T13:04:23.210 に答える