Copper PDFはJPEG, GIF, PNG, SVG形式の画像を標準でサポートしています。 各画像は通常のブラウザ同様にimg要素によってドキュメント中に含めることが出来ます。 また、object, embed要素の使用もサポートされています。
CSSのbackground-imageプロパティ、 あるいはcontentプロパティによっても画像の表示が可能です。
より多種多様な画像フォーマットを使用する場合はサンマイクロシステムズ社により配布されている Java Advanced Imaging Image I/O Tools(JAI) をCopper PDFを動作させるJava環境に管理者がインストールする必要があります。 JAIをインストールすることにより、BMP, JPEG 2000, PNM, TIFF, WBMPの各画像フォーマットが利用可能になります。 また、JAI以外にもJava Image I/Oに対応した拡張ライブラリをインストールすることで利用可能な画像を追加することが出来ます。
JAIは画像形式での出力にも利用することが出来ます2.0.3。
GIFおよびPNG画像の透明化効果はPDF内でも有効です。 ただし、PDF 1.3以前のバージョンのPDFを出力する場合、 PNG画像の半透明化効果が正確に表現されず、透明・不透明だけとなります。
アニメーションGIFの場合、最初のコマだけが使われ、アニメーションしません。
JPEG画像は処理を加えずに、そのままPDFに含めることが出来ます。 入出力プロパティoutput.pdf.jpeg-image にto-flateを設定することで画像を展開してからPDFに含むことも出来ますが、PDFのサイズは大きくなります。
JAIがインストールされている場合は、JPEG 2000にも同様の処理が適用されます。 JAIがない場合はJPEG 2000は全く利用出来ませんのでご注意ください。
JAI等のライブラリで他の画像形式が利用可能な場合、それらの扱いはGIF /PNG画像に準じます。 半透明効果をサポートする画像形式の場合はPDF内でも再現され、アニメーションする画像では最初のコマだけが使われます。
レイアウトされるときの、埋め込まれた画像の大きさは output.resolution によります。デフォルトでは96dpiです。 つまりデフォルトでは、例えばimgタグでheightが100と設定された場合、 あるいはimgタグでサイズが指定されずに、元の画像の大きさが100の場合、 実際のレイアウト結果では75ptの高さになります。
Copper PDFはSVG画像ファイル(.svg)またはGZIPで圧縮されたSVG画像ファイル(.svgz)をサポートしています。 ただし、PDF出力の場合、SVG埋め込みフォントと、 透明度を含むグラデーション塗り(linearGradient, radialGradientでstop-opacityの使用) には対応していません。
一般的なブラウザではobject要素によりSVG画像サポートされていますので、 Copper PDFでも同様の方法を推奨します。
<object data="image.svg" type="image/svg+xml"> SVGをサポートしないブラウザで表示されるテキスト。 </object>
Copper PDFでは、SVG画像を他の画像と同様に扱うことが出来ます。 img要素を利用することが出来、background-imageプロパティにより背景に設定することも出来ます。
SVGを別ファイルに分けずに、文章中に直接記述することが出来ます。 グラフ等、動的に変化する画像をドキュメントに含める場合に適しています。 インラインSVGは、ドキュメント中でhttp://www.w3.org/2000/svgと名前空間宣言したSVGを記述するだけです。
<html> <head> <title>インラインSVGを含むドキュメント</title> </head> <body> <p>すぐ下に○が表示されます。</p> <svg:svg xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="none" width="100" height="100" viewBox="0 0 100 100" xml:space="preserve"> <svg:g> <svg:circle cx="50" cy="50" r="45" stroke="Blue" fill="White" stroke-width="10"/> </svg:g> </svg:svg> </body> </html>
画像ファイルが存在しない、データの破損、Copper PDFがサポートしない画像形式といった原因で 画像を読み込めない場合は、通常はalt属性で指定された代替テキストが表示されます。 入出力プロパティoutput.broken-image の設定により、画像の形に×印を表示する(cross)か、空白を空ける(hidden)ことが出来ます。