最終更新日: 2006/06/01

WordMLToFOスタイルシート V2.1

WordMLToFOスタイルシートとは

WordMLToFOスタイルシートは、マイクロソフト社のOffice2003から採用されたWordの新しい保存フォーマットであるWordMLファイルを入力とし、これからW3C勧告の「Extensible Stylesheet Language(XSL)」に基づいたXSL-FOファイルを生成するXSLTスタイルシートです。 「Extensible Stylesheet Language(XSL)」は、XML文書レイアウトして組版するための仕様です。このWordMLToFOスタイルシートにより、Word文書からXSL-FOを生成して利用することが可能になりました。

WordMLToFO Structure

WordMLToFOスタイルシートで生成したXSL-FOは、弊社 XSL Formatter V3.2 以上のバージョン で組版し、動作確認しています。他社のXSL-FO組版アプリケーションでの動作は保証されません。

Microsoft WordとXSL-FOでは、文書モデルが根本的に異なるため完全な変換はできません。よって正しく組版できない場合があります。

WordMLとは何か

WordMLは、正式には WordProcessing Markup Language と呼ばれます。従来Wordには主な保存形式として、バイナリ(.doc)、リッチテキスト(.rtf)がありました。WordMLはXML形式で、これらの保存形式と同等な新しいフォーマットです。更に、WordMLは次のような特徴を持っています。

  • バイナリフォーマットと異なり、仕様が公開されている。
  • ユーザのスキーマに基づいたタグを文書中に埋め込むことができる。
  • XMLをターゲットとしたアプリケーションからXSLTを利用して簡単にアクセスすることができる。

このような特徴を生かすことにより、次のような応用が可能となります。

  • ユーザのXML文書にXSLTを適用して、WordMLを生成する。生成したWordMLはWord2003で読み込むことにより、表示/印刷ができます。
  • WordMLからXSLTを利用して任意のXMLを生成する。例えば既存のWord文書をWord2003でWordML化することにより、目的のXML文書を得る。

WordMLToFOスタイルシートは、後者の一つの応用です。WordMLは2003年11月に正式に仕様がマイクロソフト社から公開されました。興味をお持ちの方は以下のURLよりダウンロードが可能です。

Office 2003 XML Reference Schemas には、Overview of WordprocessingML と題されたWordMLの構造の簡単な解説文書が付属しています。

WordMLToFOの機能

WordMLToFOスタイルシートは、次のような機能によりXSL-FOを生成します。

要素のマッピング

WordMLToFOスタイルシートは、次のようなWordMLの要素から対応するXSL-FOの要素を生成します。

文書の要素 WordMLの要素 XSL-FOの要素
段落 w:p fo:block
インライン(テキストラン) w:r fo:inline
箇条書き w:p (w:pPr/w:listPrを持つ段落) fo:list-block, fo:list-item, fo:list-item-label, fo:list-item-body
w:tbl, w:tr, w:tc fo:table, fo:table-row, fo:table-cell
画像 w:pict fo:external-graphic

スタイルの展開

Word文書はさまざまなスタイルが適用されて文字や段落の表示フォーマットが決定されます。Wordのスタイルの種類には、表スタイル、段落スタイル、文字スタイルなどがあります。これに対してXSL-FOにはスタイルの概念はありません。fo:inlineやfo:blockに適用するプロパティは、スタイルを適用した後の最終結果を指定する必要があります。したがってWordMLToFOスタイルシートは、次のようなWordのスタイルをすべて重ね合わせてその結果をFOに出力します。

文書の要素 条件 処理するスタイルシート
段落 表中の段落 表スタイル、段落スタイル
表外の段落 段落スタイル
インライン(テキストラン) 表中段落に含まれるインライン 表スタイル、段落スタイル、文字スタイル
表外段落に含まれるインライン 段落スタイル、文字スタイル
表の行やセル - 表スタイル

WordMLToFOスタイルシートの動作環境

WordMLToFOスタイルシートは、XSLT 1.0に準拠したスタイルシートです。一部RTF(Result Tree Fragment)に関する拡張機能を使用しています。現在、以下のXSLTスタイルシートプロセッサで動作を確認しています。

XSLT プロセッサ 備考
Saxon 6.5.3 Sun Java SDK, Java 2 Platform, Standard Edition 1.4.1以上で動作確認済。Saxon7での動作は未確認。Instant Saxonでは動作しません。
MSXML3, MSXML4 一部行レイアウトの計算が簡略化されます。
Microsoft .NET Framework 2.0
Microsoft .NET Framework 1.1

制限事項

現在のWordMLToFOスタイルシートは次の制限事項があります。

  • WordMLのファイルによっては、正しく組版できない場合があります

    Microsoft WordとXSL-FOでは、文書モデルが根本的に異なるため完全な変換はできません。よって正しく組版できない場合があります。

  • フィールド

    Wordには多くの種類のフィールドがあります。WordMLToFOスタイルシートはフィールドの結果をテキストとして変換します。しかしすべてのフィールドから結果テキストを取得できていません。例えばリストボックス、テキストボックスなどの特殊なフィールドには未対応です。

  • タブ

    Wordではタブ文字をレイアウトに使用することが多く行われますが、XSL-FOではタブ文字に相当する機能はありません。WordMLToFOスタイルシートは、タブ文字を fo:leader に変換しますが、必ずしも元のレイアウトを完全に再現できません。

  • オートシェイプ

    Wordで線画を使用する場合にはオートシェイプを使用します。WordMLToFOスタイルシートは、オートシェイプには対応していません。

  • 脚注、文末脚注

    WordMLToFOスタイルシートは、脚注、文末脚注には対応していません。

  • 行の高さ

    行の高さを正しく設定することができない場合があります。

  • ハイフネーション

    WordでHyphnationがonになっている文書中の単語は、WordMLでは

    <w:t>Fo</w:t>
    <w:t>r</w:t>
    <w:t>matter</w:t>
    

    のように分断されてしまいます。このため、変換されたFOでも分断されたままであるため、ハイフネーションができません。

  • シェーディングは変換できません。
  • ユーザースキーマのタグが埋め込まれた文書は変換できません。あらかじめ取り除く必要があります。

サンプル

XSLTプロセッサとしてMSXML4を使用して作成したサンプルです。クリックすれば拡大表示されます。(文書内容は架空のものです。)

Word表示画面

元文書のWord表示画面

    XSL Formatter表示画面

作成したFOをXSL Formatterで表示

サンプルデータは、以下からダウンロードできます。

XSL Formatter V3.2 以上のバージョンには、WordMLToFOスタイルシート(除ソースコード)が内蔵されています。評価版をダウンロードして、ご自身で組版結果を確認してください。

製品構成

WordMLToFOスタイルシートは、2003年12月より販売しております。

名称 WordMLToFO スタイルシート
価格 105,000円(税込)
内容 スタイルシートソースファイル、外部Javaライブラリ(.jarファイル)、ユーザーズマニュアル、サンプルデータ
ライセンス 本製品は一台のコンピュータにインストールして使用することができます。
本製品を有償、無償を問わず第三者に配布または頒布することはできません。
本製品に含まれるスタイルシートソースファイルは、お客様の責任において自由に改変することができます。

本スタイルシートに関心をお持ちになられた企業・開発者の方は、お気軽にメールにてご連絡ください。


Copyright © 1996-2006 Antenna House, Inc. All rights reserved.
Antenna House is a trademark of Antenna House, Inc.