最終更新日: 2008/04/28

XSL Formatter V4 グラフィックス・サポート

外部ファイルとして存在するグラフィクスは、いずれも <fo:external-graphic> の src プロパティや、<fo:simple-page-master> の axf:background-image プロパティに指定することができます。 XSL Formatter V4 は、画像の種類を自動的に判定します。 content-typeプロパティの値が指定されているときは、それを仮定しますが、矛盾していないかどうかの判定は行います。その結果、指定が矛盾していた場合は、さらに自動判定を行います。 HTTP経由の画像の場合は、content-typeをHTTPヘッダから取得できます。そのときは、プロパティの値より優先してそれを仮定します。

<fo:external-graphic> の src プロパティや、<fo:simple-page-master> の axf:background-image プロパティには、dataスキーム(RFC2397)を指定することができます。つまり、外部ファイルを用意することなく、グラフィックファイルの内容を直接FO中に指定することができます。

<fo:external-graphic
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAB
3RJTUUH1AIFCDIuN9BfzQAAAAlw ... ="/>

dataスキーム中にメディアタイプを指定する必要はありませんが、指定してある場合は、それを仮定します。

JarURLConnection で定義される jarスキームを指定できます。これは、JARまたはZIPに有効で、その中のエントリを指定できます。V4

jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.png

最初の区切り !/ 以降をエントリ指定とみなします。JARまたはZIPの入れ子には対応していません。

XSL Formatter V4 がサポートしているグラフィクスは以下のとおりです。特に明記されていない場合は、Windows版、Solaris/Linux/Macintosh/HP-UX/AIX版いずれでもサポートされています。

指定された画像が存在しないなどの理由で取得できないときは、ダミー画像が代わりに表示されます。ただし、background-image に指定された画像のときはダミー画像は表示されません。

BMP

Windows Bitmap に対応しています。content-type は " image/bmp" です。

JPEG

JFIF (JPEG File Interchange Format) に対応しています。 content-type は "image/jpeg" です。

JPEG2000

次の形式のJPEG2000に対応しています。

  • JP2 (content-type は "image/jp2" です)

GUIでは、ダミー画像が表示されます。

PNG

Portable Network Graphics Format に対応しています。 以下の制約があります。

  • αチャネル情報は、PDF1.4以上で有効となります。
  • 16ビットカラーは8ビットカラーに切り詰められます。

content-type は "image/png" です。

TIFF

TIFF Revision 6.0 仕様のTIFFファイルに対応しています。

  • 非圧縮形式
  • PackBits圧縮
  • Modified Huffman
  • CCITT Group3 1D
  • CCITT Group3 2D
  • CCITT Group4
  • JPEG圧縮
  • LZW圧縮
  • ZIP圧縮

下記のカラー表現を処理します。

  • グレイスケール
  • RGB
  • CMYK
  • YCbCr
  • CIE L*a*b*

以下の制約があります。

  • 以下の形式には対応していません。
    • Tiled Image
    • Planar Configuration=2(Planar format)
  • PDF出力時、YCbCr画像はRGB画像に変換されます。
  • αチャネル情報は、PDF1.4以上で有効となります。
  • 16ビットカラーは8ビットカラーに切り詰められます。
  • マルチページのTIFFは最初のページのみ表示します。
  • 拡張されたTIFF は正しく読めない場合があります。

content-type は "image/tiff" です。

GIF

Graphics Interchange Format に対応しています。 以下の制約があります。

  • アニメーションGIFは、最初のページのみ表示されます。

content-type は "image/gif" です。

WMF

Windows Metafile に対応しています。 PDF、SVG へはベクタイメージで出力されるので、画質の劣化はありません。 以下のような制約があります。

  • ペンの幅は、水平方向の値のみを使用します。ペン幅 0.0のときは、描画を行いません。
  • ブラシに指定されたビットマップは無視されます。
  • 正しい物理サイズが計算されないことがあります。
  • 複数のクリップ矩形には対応していません。
  • ラスタオペレーションには対応していません。コピー元データをそのまま描画します。
  • 文字のクリッピングはしません。
  • 文字の背景は常に透明です。
  • ベースラインに対する文字の回転には対応していません。

なお、gzip圧縮されたWMF(WMZ)にも対応しています。 content-type は "image/wmf" です。

EMF

Enhanced Metafile に対応しています。 PDF、SVG へはベクタイメージで出力されるので、画質の劣化はありません。 以下のような制約があります。

  • ペンの幅は、水平方向の値のみを使用します。ペン幅 0.0のときは、描画を行いません。
  • ブラシに指定されたビットマップは無視されます。
  • 正しい物理サイズが計算されないことがあります。
  • ラスタオペレーションには対応していません。コピー元データをそのまま描画します。
  • 文字のクリッピングはしません。
  • 文字の背景は常に透明です。
  • ベースラインに対する文字の回転には対応していません。
  • パス描画に対するクリッピングなどには対応していません。

なお、gzip圧縮されたEMF(EMZ)にも対応しています。 content-type は "image/emf" です。

EPS

Encapsulated PostScript に対応しています。 EPS に表示イメージがあるとき、そのイメージを出力します。表示イメージが存在しない場合は、ダミーの画像に置き換えられます。 ただし、Adobe Distiller や PSプリンタでの出力を行った場合は、表示イメージではなく、EPS中のPostScriptプログラムを出力します。

EPSをPDFへ出力するとき、Adobe DistillerやGhostscriptがインストールされている環境では、それらを利用することができます。そのとき、EPSをEPSとしてPDFへ埋め込むことができます。

FO中に、EPSコードを直接記述することが可能です。このことによって、Adobe Distiller などで、EPSコードをそのままPDFに埋め込むことができます。 これは、<fo:instream-foreign-object> を利用して次のように行います。

<fo:instream-foreign-object><![CDATA[%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 84 43
%%Pages: 0
%%Creator: Antenna House
%%Title: Green Rounded Box
%%CreationDate: 10 Feb 2003
%%LanguageLevel: 2
%%EndComments
%%BeginProlog
%%EndProlog
%%BeginSetup
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
0 128 0 setrgbcolor
0.1 setlinewidth
newpath
0 5 moveto
0 43 84 43 5 arct
84 43 84 0 5 arct
84 0 0 0 5 arct
0 0 0 43 5 arct
closepath
gsave
stroke
grestore
fill
%%PageTrailer
%%Trailer
%%EOF
]]>
</fo:instream-foreign-object>

CDATAセクションは、必ずしも設ける必要はありませんが、そのときは適切な文字参照などを行ってください。

EPSはさまざまなソフトウエアで作成できますので、XSL Formatter V4 で正しく読めない可能性もあります。 Solaris/Linux/Macintosh/HP-UX/AIX版では、表示イメージのないEPSには対応していません。

content-type は "application/postscript" です。

SVG

Scalable Vector Graphics (SVG) 1.1 に対応しています。 独自開発したエンジンにより描画するため、PDF中へのイメージを高い解像度で描画することが可能です。 詳細は、「SVG仕様の実装状況」を参照してください。 なお、gzip圧縮されたSVGにも対応しています。

FO中に、SVGを直接記述することが可能です。 これは、<fo:instream-foreign-object> を利用して次のように行います。

<fo:instream-foreign-object
    width="100mm" height="100mm"
    content-width="96mm" content-height="72mm"
    display-align="center" text-align="center">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 360">
 <circle cx="100" cy="100" r="50" fill="none" stroke="black" />
 <circle cx="220" cy="100" r="35" fill="red" stroke="black" />
 <circle cx="340" cy="100" r="20" fill="black" stroke="lime" stroke-width="4" />
 <circle cx="100" cy="260" r="20" stroke="lime" fill="yellow" stroke-width="4" />
 <circle cx="220" cy="260" r="35" stroke="none" fill="blue" />
 <circle cx="340" cy="260" r="50" stroke="red" fill="none" stroke-width="10" />
</svg>
</fo:instream-foreign-object>

SVGかどうかの判定は、svgタグに正しいxmlnsが記述してあればSVGとみなします。そうでない場合は、SVGとはみなされません。

DOCTYPE宣言を含めるときは、次のようにCDATAセクションで囲んでください。(SVG1.1の例)

<fo:instream-foreign-object>
<![CDATA[
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 360">
  ...
</svg>
]]>
</fo:instream-foreign-object>

代表的な content-type は "image/svg+xml" です。

MathML

Mathematical Markup Language (MathML) 2.0 に対応しています。「XSL Formatter MathML オプション」の組み込まれている環境では、MathMLを独自開発したエンジンにより描画するため、PDF中へのイメージを高い解像度で描画することが可能です。詳細は、「MathML仕様の実装状況」を参照してください。

FO中に、MathMLを直接記述することが可能です。 これは、<fo:instream-foreign-object> を利用して次のように行います。

<fo:instream-foreign-object>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
 <mi>y</mi><mo>=</mo><mi>x</mi><mo>&#x2212;</mo><mn>1</mn>
</mrow>
</math>
</fo:instream-foreign-object>

MathMLかどうかの判定は、mathタグに正しいxmlnsが記述してあればMathMLとみなします。そうでない場合は、MathMLとはみなされません。

DOCTYPE宣言を含めるときは、次のようにCDATAセクションで囲んでください。

<fo:instream-foreign-object>
<![CDATA[
<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
  "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
 <mi>y</mi><mo>=</mo><mi>x</mi><mo>&minus;</mo><mn>1</mn>
</mrow>
</math>
]]>
</fo:instream-foreign-object>

XSL Formatter MathML オプション」の組み込まれていない場合、 Windows版で、MathPlayer plug-in がインストールされている環境では、MathPlayer の描画をラスタイメージとしてPDFに出力します。

  • MathPlayerはこちらからダウンロードできます。 MathPlayer
  • MathPlayer plug-in を使用する場合は、Internet Explorer 6 以上をインストールしておくことをお勧めします。それ以外では MathML のイメージが崩れることがあります
  • MathPlayer plug-in を使う方法は、Solaris/Linux/Macintosh/HP-UX/AIX版では対応していません。

代表的な content-type は "application/mathml+xml" です。

CGM

  1. CGMオプションがインストールされていない場合

    ISO8632(JIS X 4211~4213)で定められている Computer Graphics Metafile に対応しています。 Windows版で、以下のプラグインのいずれかがインストールされている環境で描画可能です。 Solaris/Linux/Macintosh/HP-UX/AIX版では対応していません。 PDFへはラスタイメージに変換されて出力されます。

    • ActiveCGM (http://www.corel.com/)
    • IsoView / IsoView WebCGM (http://www.isodraw.com/)
    • Larson VizEx CGM Viewer (https://www.cgmlarson.com/)

  2. CGMオプションがインストールされている場合

    CGM オプションがインストールされている場合、CGM画像はベクター画像としてPDFに埋め込まれます。ラスター化されないため画像の劣化は発生しません。

    CGM オプションはWindowsだけでなく、すべてのXSL Formatter V4.3稼動プラットフォームでご使用いただけます。詳細は、XSL Formatter CGM オプションページをご覧ください。またCGMの実装状況の詳細は「CGMの実装状況」をご覧ください。

content-type は "image/cgm" です。

PDF

画像ではありませんが、XSL Formatter V4 は、PDFを画像のように扱うことができます。 XSL Formatter V4 でのPDF出力についてを参照してください。

content-type は "application/pdf" です。

Excelチャート

XSL Formatter チャートオプション」の組み込まれている環境では、Microsoft® Excel のチャートを描画することができます。チャートはベクタで描画されるので、拡大縮小等による画質の劣化はありません。 例えば、次のように <fo:external-graphic> に指定します。

<fo:external-graphic src="MyBook.xls#sheet=2&amp;chart=3"/>

この例では、2番目のシートにある 3番目のチャートを指定しています。 先頭のシートは1、最初のチャートは1で示されます。 sheetが指定されていない場合は、最初にチャートが含まれるシートが選択されます。 chartが指定されていない場合は、指定されたシートに含まれる最初のチャートが選択されます。 両方が指定されていない場合は、そのブックに含まれる最初のチャートが選択されます。このときは、フラグメントを省略して次のように指定できます。

<fo:external-graphic src="MyBook.xls"/>

以下のExcelのバージョンに対応しています。

  • Excel 97
  • Excel 2000
  • Excel 2002
  • Excel 2003

以下の制約があります。

  • 等高線グラフは正しく表示されません。
  • 表示されるグラフ(特に3Dグラフ)のサイズ、位置、縦横比、角度等がExcelの表示と若干異なる場合があります。
  • データテーブルの表示には対応していません。
  • 軸目盛の表示単位には対応していません。
  • 値以外のデータラベルは表示できません。またバブルチャートにおける複数の値データラベル表示には対応していません。
  • データラベルの凡例マーカー表示には対応していません。
  • グラデーション、テクスチャなどの複雑な塗りつぶし効果には対応していません。
  • 軸ラベルの縦書きには対応していません。
  • 階層項目ラベルは正しく表示されない場合があります。
  • 軸目盛の最小値/最大値、目盛間隔などがExcelと異なる場合があります。
  • 複合チャートは凡例アイテムが正しい順番で表示されない場合があります。
  • 誤差範囲のカスタム指定(セル範囲による指定)には対応していません。
  • データラベルの表示位置がExcelと異なる場合があります。
  • 線スタイルの下方3パターンには対応していません。
  • 軸ラベルフォントの「上付き」「下付き」には対応していません。
  • グラフエリアの「角を丸くする」には対応していません。
  • 近似曲線の数式表示には対応していません。

content-type は "application/vnd.ms-excel" です。

グラフィックス・ファイルのサンプル

XSLのサンプルについては、XSLサンプルのページをご覧ください。


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