←前へ 目次↑ 次へ→

4.3. 対応する入力ファイル

4.3.1. HTML/XMLの処理

ドキュメントの判別

Copper PDFはドキュメントがHTMLかXMLであるかを、以下の情報をもとに判別します。

  1. プログラマが指定したドキュメントのMIMEタイプ
  2. HTTPのContent-Typeヘッダ

1の情報は、2より優先されます。 上記の情報以外によりCopper PDFがドキュメントの型を判別することはありません。 HTMLとして判別されたドキュメントは、 <?xml~ で開始していても、HTMLとして認識します。 ただし、HTMLと認識されても、XMLやXHTMLがサポートしている名前空間は認識されます。

HTMLと認識された文書は、ゆるやかに解釈されるため、文法ミスが許容されます。

一方、XMLと認識された文書は厳密に解釈されます。 XHTMLを記述する場合、全ての要素名と属性名は小文字で記述してください。 文法エラーがあった場合、処理が停止します。

キャラクタ・エンコーディング

Copper PDFが認識できるキャラクタ・エンコーディングはJava実行環境に依存します。 エンコーディング名のリストは Java実行環境の「サポートされているエンコーディング」ドキュメント を参照してください。

XMLドキュメントのキャラクタ・エンコーディングは、次の優先順位で判別します。

  1. プログラマが指定したドキュメントのキャラクタ・エンコーディング
  2. BOM(Byte Order Mark)
  3. XML宣言のencoding属性

デフォルトのエンコーディングは、XMLの仕様に従い、UTF-8またはUTF-16が自動判別されます。

HTMLドキュメントのキャラクタ・エンコーディングは、次の優先順位で判別します。

  1. プログラマが指定したドキュメントのキャラクタ・エンコーディング
  2. BOM(Byte Order Mark)
  3. <meta http-equiv="Content-Type" content="text/html; charset=エンコーディング名">
  4. XML宣言のencoding属性
  5. input.default-encodingによるエンコーディング

input.default-encodingはデフォルトではJISAutoDetect(ISO-2022-JP, Shift_JIS, EUC_JPの自動判別)です。 Copper PDF 3.0.1 からはデフォルトがJISUniAutoDetect(ISO-2022-JP, UTF-8, Windows-31J, EUC_JP_Solarisの自動判別) という Copper PDF 独自のエンコーディング名になりました。

文書情報

Copper PDFはHTMLのmeta要素から取得した情報を、PDFの文書情報として使用します。 文書情報はHTMLの <meta name="名前" content="値"> 要素によって設定することができます。 ただし、TITLEはHTMLのtitle要素の内容も使われます。

meta要素による文書情報の設定
名前 PDFの属性名 説明
TITLE Title/タイトル 文書の表題。
DESCRIPTION
SUBJECT
Subject/サブタイトル 文書に内容についての簡潔な説明。
KEYWORDS Keywords/キーワード スペースまたはカンマ区切りで羅列した、文書の内容に関連するキーワード。
AUTHOR Author/作成者 文書の作成者。
PRODUCER Producer/PDF変換 PDFを生成したプログラム。 省略した場合はCopper PDFの名前とバージョンが入ります。
GENERATOR
CREATOR
Creator/アプリケーション HTML文書を生成したプログラム、エディタ、オーサリングツールなど。

なお、meta要素のname属性は大文字小文字を区別しません。 <meta name="AUTHOR" content="作者名"> としても、
<meta name="Author" content="作者名"> としても、
PDF文書に作者名が設定されます。

文書情報は、入出力プロパティによっても設定することができます 2.0.3

により、名前と値を設定することができます。 nは0から始まる連番で、複数の文書情報を設定することができます。 この設定は、前記のmeta要素で上書きされます。

XSLTスタイルシートの適用

XSLTスタイルシートはCSS同様にxml-stylesheet処理命令により適用されます。 xml-stylesheet処理命令についての詳細はCSSのxml-stylesheet処理命令の節を参照してください。

CSS同様に、デフォルトのXSLTスタイルシートを設定することができます。 input.xslt.default-stylesheetにより指定されたスタイルシートが最初に適用されます。

input.xslt.default-stylesheetまたはxml-stylesheet処理命令によって、 ドキュメントに複数のXSLTスタイルシートが指定されているとき、実際に適用するのは最初に指定されたスタイルシートです。 他のスタイルシートは無視されます。

4.3.2. 画像

Copper PDFがサポートする画像

Copper PDFはJPEG, GIF, PNG, SVG形式の画像を標準でサポートしています。 各画像は通常のブラウザ同様にimg, object, embed要素によってドキュメント中に含めることができます。 CSSのbackground-imageプロパティ、 あるいはcontentプロパティによっても画像の表示が可能です。

また、画像を直接読み込んでPDFに変換することができます。 この場合、全体が画像となっている1ページだけのPDFが生成されます。

他の画像形式の利用

より多種多様な画像フォーマットを使用する場合はサンマイクロシステムズ社により配布されている Java Advanced Imaging Image I/O Tools(JAI-ImageI/O) をCopper PDFを動作させるJava環境に管理者がインストールする必要があります。 JAI-ImageI/Oをインストールすることにより、BMP, JPEG 2000, PNM, TIFF, WBMPの各画像フォーマットが利用可能になります。 また、JAI-ImageI/O以外にもJava Image I/Oに対応した拡張ライブラリをインストールすることで利用可能な画像を追加することができます。

JAI-ImageI/Oは画像形式での出力にも利用することができます2.0.3

ラスター(ビットマップ/ピクセルマップ)画像

GIF / PNG画像

GIFおよびPNG画像の透明化効果はPDF内でも有効です。 ただし、PDF 1.3以前のバージョンのPDFを出力する場合、 PNG画像の半透明化効果が正確に表現されず、透明・不透明だけとなります。

アニメーションGIFの場合、最初のコマだけが使われ、アニメーションしません。

JPEG / JPEG 2000画像

JPEG画像は処理を加えずに、そのままPDFに含めることができます。 入出力プロパティoutput.pdf.jpeg-image にto-flateを設定することで画像を展開してからPDFに含むこともできますが、PDFのサイズは大きくなります。

JAI-ImageI/Oがインストールされている場合は、JPEG 2000にも同様の処理が適用されます。 JAI-ImageI/Oがない場合はJPEG 2000は全く利用できませんのでご注意ください。

その他の画像

JAI-ImageI/O等のライブラリで他の画像形式が利用可能な場合、それらの扱いはGIF /PNG画像に準じます。 半透明効果をサポートする画像形式の場合はPDF内でも再現され、アニメーションする画像では最初のコマだけが使われます。

画像の解像度

レイアウトされるときの、埋め込まれた画像の大きさは output.resolution によります。デフォルトでは96dpiです。 つまりデフォルトでは、例えばimgタグでheightが100と設定された場合、 あるいはimgタグでサイズが指定されずに、元の画像の大きさが100の場合、 実際のレイアウト結果では75ptの高さになります。

SVG画像

SVG画像ファイルの参照

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を別ファイルに分けずに、文章中に直接記述することができます。 グラフ等、動的に変化する画像をドキュメントに含める場合に適しています。 インライン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)ことができます。


←前へ 目次↑ 次へ→
Copper PDF ©2012 Zamasoft. All rights reserved.