XML関連の規格の一つに,レイアウトを指定するXSL-FOがある。XSL-FOを利用して組版レイアウトを行うツールに,「XSL Formatter」がある。テキスト&グラフィックス研究会では,アンテナハウス代表取締役の小林徳滋氏に,「XSL Formatter」の最新版概要と利用動向について話を伺った。
■XSL-FOの仕様とページアップ用ソフトウエア
XSL-FOは,XML仕様に準拠した汎用のレイアウト指定言語であり,オブジェクトとプロパティを各種定義している。オブジェクトとは,フォーマッティングオブジェクト(組版の対象物)であり,プロパティはその属性である。例えば組版の対象物が表であった場合,その表の横幅や枠線の種類などが属性になる。
XSL-FOはW3Cの勧告で標準仕様が決まっているため,その指定に基づいてページアップするソフトはだれでも作ることができる。日本で市販されているXSL-FO対応のページアップソフトは「XSL Formatter」だけであるが,海外では18種類ほどある。現段階でメジャーな製品は,「XSL Formatter」と,オープンソース団体のApacheが作っている「FOP」と,レンダーX社の「XEP」である。
オープンソースの「FOP」は,無料ソフトでありだれでもすぐに使えるため,ユーザ数が最も多い。ただし,現在の「FOP」は3年ほど前から開発がストップしている。Apacheでは現在7〜8人のボランティアで新しい「FOP」を作り直している。オープンソースはいろいろな人が入ってきて,議論ばかりになり,なかなか先へ進まないものである。従って,「XSL Formatter」」と「XEP」という2つの商業ソフトの実装度が高く,評判もいい。
XSL-FOは,もともとXMLで作成したドキュメントを印刷するためのもので,XMLドキュメントを一度XSL-FOに変換してページアップするというステップになる。XMLからXSL-FOに変換するにはどのような方法を使用してもかまわないが,一般的にはXSLスタイルシートで変換することが多い。
■「XSL Formatter」によるマニュアル制作例
XMLで書かれたドキュメントと,XSLスタイルシートがあり,XSLスタイルシートを適用してXSL-FOに変換し「XSL Formatter」で組版したマニュアル制作例がある。
このXMLドキュメントにはヘッダとボディがあり,ヘッダの中にタイトル,著者,作成日などが記述されており,それらの項目が表紙に表示される。
また,このXMLドキュメントに目次は記述されていないが,セクションの下にタイトル,サブセクションの下にタイトルというように,タイトルが記述されている。このタイトルの要素を寄せ集めて,自動的に目次を作り出す。
ボディ先頭のセクションのタイトルを,本文の先頭の見出しとし,続くテキストを本文としてレイアウトして出力している。索引はこのXMLドキュメントの中のインデックスというタグを付けた要素を抽出して自動的に索引を作り出し,2段組にして出力している。
このように,XMLドキュメントの中に記述されていない目次や索引を,XSLスタイルシートで自動的に作り出し,目次,索引の情報が入ったXSL-FOに変換し,「XSL Formatter」でページアップすることができる。
XMLドキュメントの最大のメリットは,XSLスタイルシートを用いた自動的な加工である。
■「XSL Formatter」最新版の特徴
6年弱の間に,国内250社,海外300社のユーザがあり,1000本ほど販売している。以下の特徴を備えた3.3を発売する。
(1)大量ページ対応
実績では約7000ページのドキュメント制作を行った例がある。ページを参照する情報がないドキュメントであれば,ページ数に制限はない。
(2)日本語組版機能の強化
・行分割方法の指定
・追加行末禁則文字,追加行頭禁則文字指定
・除外行末禁則文字,除外行頭禁則文字指定
・句読点のぶら下げの有無
・隣接する全角約物の詰めの有無と間隔
・行頭,行末の全角約物の半角扱い
・和欧文間の空き設定と空き量設定
・縦書き時の下線位置
(3)多言語組版機能
アラビア語,ヘブライ語,タイ語など,多言語組版機能をもっており,ラテン文字で書く40カ国語のハイフネーション辞書もオプションで用意している。
(4)SVG,PDFのグラフィックス扱い
例えば,米国のビッグスリーの自動車メーカーでは,CADで作成したエンジンの設計図をSVGに変換し,「XSL Formatter」で組版してPDFを作成し,取引先に配布している。
さらに,「XSL Formatter」は,PDFの中にほかのPDFをグラフィックスとして埋め込むことができる。この機能により,帳票のレイアウトをPDFで事前に作成しておき,その中に入れるデータをXMLで記述し,全体をPDFとして作成することもできる。
(5)MathML組版
XSL-FOに対応したページアップソフトでMathMLを組版できるのは,「XSL Formatter」のみである。「MathMLオプション」により,PDF中に組版結果イメージを描画することができる。
(6)WordML組版
WordMLは,マイクロソフトのOffice2003から採用されたWordのXML形式の保存フォーマットである。最新版では,WordML文書をXSL-FOに変換するための「WordMLToFOスタイルシート」を内蔵しており,スタイルシートの指定なしにXSLTプロセッサを用いてWordML文書をXSL-FOに変換して組版することができる。
(7)グレースケール,CMYKカラー,スポットカラー指定サポート
■「XSL Formatter」最新版のPDF出力機能
バッチ処理でPDFのしおりや,内部リンク,外部リンクを作成することができる。
例えば,数千ページのドキュメントの場合,全ページ組版して1冊のPDFとすることもできるが,それでは後でPDFのハンドリングが非常に大変である。そこで50冊程度に分冊し,分冊間リンクを貼って自動的にジャンプすることができるPDFを作成する。
「XSL Formatter」を使用して自動化する前は,印刷会社でDTPソフトを使用して分冊ごとにPDFを作成し,後から手でリンクを貼っていた。これを,「XSL Formatter」を使用して一気に組版し,自動的にリンクを貼った分冊PDFを作り出すことを実現した。
分冊しないPDFでも,しおりと索引を自動的に作成する。目次や索引から本文にジャンプするリンクも自動的に作られる。このようにPDFを作ってリンクを自動的に作り出すことが簡単にできる。
■XSL-FOとDTPの違い
XSL-FOとDTPによる組版は根本的な違いがある。XSL-FOの組版は完全自動組版を目標にしており,DTPのように,流し込んだ後に対話式に修正することは想定していない。日本でも海外でも,よくXSL-FOを編集したいという話を聞く。あるいは組版した結果のページの切れ目を変えたいなどの要望がある。
それらを作ることは可能だが,XSL-FOの精神として,完全に自動的に作り出して最終的にサーバから配布することが,最も基本的で一番良い使い方だろう。
(Jagat Info 2005年8月号より)
2005/08/14 00:00:00