Word(docx)出力

AH Formatter V7.2 では、簡単なWord(docx)を出力することができます。

Word(docx)を出力するためには、「AH Formatter Word(docx)出力オプション」をお申し込みしていただく必要があります。 詳しくは、弊社ウェブサイトを参照してください。

Word(docx)出力の特徴

Word(docx) は、WordprocessingMLというXMLで表現されます。 WordprocessingMLは、Office文書のWordを表現するためのXMLです。 このOffice文書のXMLは、OOXML(Office Open XML)と呼ばれ、Standard ECMA-376 で規定されています。 WordprocessingMLとFOが表現する文書モデルは大きく異なっています。そのため、すべてのFOを正確にWordprocessingMLとして出力することはできません。 「AH Formatter Word(docx)出力オプション」は、比較的シンプルな構造の文書をWordprocessingMLとして出力します。

制限事項

主な制限事項は以下のとおりです。

  • FOからの出力のみができます。エリアツリーやHTMLからの出力はできません。

  • WordprocessingMLには、基本的には段落 <w:p> と表 <w:tbl> しか文書構造がありません。それらが <w:body> の下にフラットに並んでいるだけです。<w:p> は入れ子にすることができません。FOではブロックを任意に入れ子にできますが、それは、フラットな構造に展開されます。そのため、次のような入れ子のボーダーなどは、FOと同じにはなりません。

    <fo:block border="solid 5pt red">
     Hello,
    <fo:block border="solid 5pt green">
     こんにちは
    </fo:block>
     World!
    </fo:block>
    
  • WordprocessingMLの表 <w:tbl> は、<fo:table-and-caption> のように表とそのキャプションを関連付ける機能がありません。キャプションは表とは独立に生成されます。

  • 表を回転させることはできません。

  • ボーダーは、WordprocessingMLで表現できる罫線のどれかになります。 Wordでは、隣り合う段落(ブロック)の罫線が同じときは、それをマージしてしまいます。隣り合う段落(ブロック)に同じ罫線を独立に引くことはできません。 丸め罫対角罫は反映されません。

  • Word がサポートしていない画像形式は反映されません。

  • 最初の <fo:page-sequence> の背景色、背景画像が文書の背景色、背景画像となります。

  • <fo:region-*> に指定された背景やボーダーは反映されません。

  • 上付き、下付きは、単純にフォントサイズとベースラインの調整がされるだけで、その意味は失われます。

  • AH Formatter V7.2 は、リガチャなど複雑なフォント処理をして、グリフとしてPDF出力などを行います。Word(docx)出力では、それらの処理をWord自身に任せるためにリガチャなどは一切せず、文字列のまま出力されます。 複雑なスクリプトのときも同様です。

  • トンボは反映されません。

  • すかしは反映されません。

  • 行番号は反映されません。

  • 改訂バーfo:change-bar-* 含む)は反映されません。

  • 圏点は、WordprocessingMLで表現できる圏点のどれかになります。

  • テキストシャドウは反映されません。

  • ボックスシャドウは反映されません。

  • 注釈は反映されません。

  • <fo:region-before> はヘッダとみなされます。<fo:region-after> はフッタとみなされます。<fo:region-start><fo:region-end> は捨てられます。

  • Wordのヘッダフッタは、偶数奇数ページ、先頭ページの制御しかできません。FOでのそれら以外の複雑な <fo:page-sequence-master> には対応していません。

  • 脚注は、axf:footnote-stacking="block"axf:footnote-position="page" とみなされます。傍注などには対応していません。

  • 見開きページマスタは出力できません。

  • 絶対位置へのフロートはできません。

  • <fo:inline-container> に相当する機能がWordprocessingMLにはありません。<fo:inline-container> 中に複雑な文書構造(例えば表など)を表現しても、インライン要素のみが取り出されます。

  • <fo:block-container> に相当する機能はWordprocessingMLにはありません。<fo:block-container> は、1セルの表を使って代用されます。入れ子の <fo:block-container> には対応していません。<fo:block-container> に指定した段組は反映されません。