« 2006年12月09日 | メイン | 2006年12月11日 »
2006年12月10日
XSL Formatter V4.1 の新機能ご紹介
次にXSL FormatterのPDF関連の新機能をもうひとつご紹介します。XSL Formatterでは、PDFを画像と同じように、ページの一部、あるいは、ページの背景として扱うことができます。
PDFをページの一部に埋め込む機能は、PDFで作成した説明図を本文に挿入する用途に使うことができます。ご承知のようにテクニカル・イラストはEPSとして作成されていることが多くなっています。組版時にEPSを取り込んで、組版結果をPDF出力するためには、PDF出力時にPostScriptインタープリタが必要です。しかし、EPSを予めPDFに変換しておいてPDFで取り込むことで、PDF出力時にはPostScriptインタープリタを使わずに済みます。(イラストソフトなどでEPSからPDF変換が必要ですので、依然としてPostScriptインタープリタが必要ですが)。
V4.1では、XSL Formatterから、DistillerやGhostscriptをキックして動かすことで、EPSのままで用意されたイラストなどの画像を組版時にPDFへ取り込むことができるようになりました。
簡単な絵で表しますと次のようになります。
EPSを大量にもっているために事前にEPSからPDFにしておくのが難しいという話はよくありましたが、V4.1での解決方法はひとつの方便です。
EPS問題は約1年前にお話しました。1年かかって半歩前進といったところです。EPSファイルのハンドリングは、アドビ以外のDTPソフトベンダの共通の悩みの種のひとつではないでしょうか。
2005年11月16日 EPS(Encapsulated PostScript)
2005年11月17日 EPS(Encapsulated PostScript) 続き
さて、もうひとつのPDF関係機能強化は、PDFの全ページをそのまま背景として使う機能の実装です。V4.0までは、PDF 1ページを用紙に対する背景として使うことができました。例えば、用紙simple-page-masterに、背景としてbackground.pdfを指定するときは次のようにします。
<fo:simple-page-master axf:background-image="background.pdf"
axf:background-repeat="no-repeat" ...>
この機能を使いますと、例えば、帳票の雛形をPDFで作成しておき、データだけ組版して、組版結果をひとつのPDFに出力できます。
V4.1では、さらにPDFの全ページを取り込むことができるようになりました。axf:background-repeat="paginate"と指定します。そうしますと、次の例ではbackground.pdfの3~5ページが順番に背景になります。
<ffo:simple-page-master axf:background-image="background.pdf#page=3-5"
axf:background-repeat="paginate" ...>
この機能を使うと、既存のPDFを丸ごと取り込むことができます。試しにやってみました。Manual.pdfは、90ページのマニュアルです。
<ffo:simple-page-master master-name="main-add" axf:background-image="Manual.pdf"
axf:background-repeat="paginate">
と指定し、他のページシーケンス(main)の後ろに、マニュアルのページシーケンス(main-add)を追加します。
<fo:page-sequence master-reference="main">
<fo:flow flow-name="xsl-region-body">
。。。
</fo:flow>
</fo:page-sequence>
<fo:page-sequence master-reference="main-add">
<fo:flow flow-name="xsl-region-body" >
</fo:flow>
</fo:page-sequence>
XSL Formatter V4.1で組版してPDFを出力しました。これをAdobe Readerで見ますと、次のようになります。
(1ページ目は、mainのページ、2ページ目からmain-addシーケンスのページ)