←前へ 目次↑ 次へ→

4.4. 出力するファイル形式

Copper PDFは長らくPDFを唯一の出力形式としていましたが、 Copper PDF 2.0.3から画像の出力をサポートしました。

output.typeにMIMEタイプを設定することにより、 出力形式を切り替えることができます。 デフォルトではPDF("application/pdf")です。

4.4.1. PDFの出力

Copper PDFはデフォルトの設定でPDFを出力します。 PDF出力機能の詳細はPDFの機能を参照してください。

PDFのバージョンと機能

出力するPDFのバージョンは output.pdf.version で設定することができます。 デフォルトではバージョン1.5のPDFが出力されます。 PDF 1.5以降であれば、Copper PDFの全ての機能を利用することができます。

PDF 1.4以前では、使用できる機能に制限があります。 詳細は資料集のoutput.pdf.version の説明を参照してください。

Copper PDF 2.1.0からは、PDF/A-1(ISO 19005-1)に対応したファイルを出力することができます

暗号化

Copper PDFは暗号化したPDFを出力することができます。 パスワードを設定して暗号化したPDFは、パスワードがなければ閲覧不可能になります。 また、内容のコピーなどPDFの利用制限を設定するためにも暗号化が必要で、 広く配布するPDFのためにパスワードを設定せず、暗号化だけしたPDFを出力することができます。

暗号化は、 output.pdf.encryption の設定で有効となります。 暗号化方式はv1とv2の2種類がありますが、通常はPDF 1.3以降でサポートされているv2暗号化を使用してください。

暗号強度(暗号化キーのビット数)は output.pdf.encryption.length で設定できます。デフォルトでは最も強い暗号化(v1では40, v2では128)がされるため、通常は設定の必要はありません。

閲覧のためのパスワードは output.pdf.encryption.user-password で設定することができます。 このプロパティを設定しなかった場合は、暗号化だけされて誰でも開くことができるPDFが生成されます。 さらに output.pdf.encryption.owner-password でAdobe Acrobat等で文書の編集をするためのパスワードを設定することができます。

PDFを暗号化する場合は、パーミッションを設定することができます。 パーミッションはoutput.pdf.encryption.permissionsで開始する、 次の8種類の入出力プロパティで設定することができます。 true(有効)またはfalse(無効)で設定してください。 デフォルトでは全て有効です。

output.pdf.encryption.permissions.print
印刷
output.pdf.encryption.permissions.modify
内容の変更
output.pdf.encryption.permissions.copy
テキストや画像のコピー
output.pdf.encryption.permissions.add
注釈の追加、変更とPDFフォームへの入力

次の4つはv2暗号化でのみ有効です。

output.pdf.encryption.permissions.fill
PDFフォームへの入力
output.pdf.encryption.permissions.extract
障害を持つユーザーのための文書中のテキストや画像の抽出
output.pdf.encryption.permissions.assemble
文書中に新しいページ、ブックマーク、サムネイル画像を追加する
output.pdf.encryption.permissions.print-high
文書を高画質で印刷する

なお、Copper PDFはPDFフォームをサポートしていないため、 フォームに対する権限は通常は無意味です。

パーミッションを設定することにより、Adobe Reader等のPDF閲覧ソフトは設定に沿った動作をしますが、 他のツール等でPDFに対する該当する操作が行われないことを保証するものではありません。

ファイルの添付

PDF 1.4以降では、PDFにファイルを添付することができます。 ファイルの添付は

の4つで1組のプロパティを使います。 nは0から始まる通し番号で、複数のファイルを添付することができます。

このうち必須なのはoutput.pdf.attachments.n.uri です。 あらかじめドライバにより送られてきたファイルのURIか、 アクセス可能なファイルのURLを設定してください。

output.pdf.attachments.n.name はファイルの名前です。 ASCII文字以外も使用することができますが、文字化けが発生するおそれがあります。 日本語ファイル名を使用する場合は、 output.pdf.attachments.n.name にはなるべくASCII文字を使い、 output.pdf.attachments.n.description に実際のファイル名を設定してください。

output.pdf.attachments.n.mime-type は、 ファイルのMIMEタイプです。

PDFの圧縮形式

Copper PDFのデフォルトの設定では、出力されるPDFはなるべくサイズが小さくなるように圧縮されます。 結果、出力されるPDFはバイナリデータとなります。

output.pdf.compressionの設定により、 テキスト形式か、圧縮されないPDFを生成することができます。 asciiという設定では、PDFを圧縮しますが、出力されるPDFはASCIIテキストになります。 若干サイズは大きくなりますが、テキストとしてそのままコピー&ペーストできるようなファイルができ上がります。 noneではPDFを全く圧縮せず、描画命令などがそのままの形のテキストで出てきます。 画像はHEX形式となり、非常にファイルサイズが大きくなりますが、 出力されたPDFの内容をテキストエディタ等で確認するのに便利です。

PDF中の画像の圧縮形式

容量の大きなPDFの場合、画像が容量のほとんどを占めていることがよくあります。 そのため、画像の圧縮形式を適切に設定することで、PDFのサイズを節約することができます。

デフォルトでは、JPEG画像は加工されずにPDF内で使用され、 他の画像はFlateDecode形式(可逆圧縮)で圧縮されます。

画像の圧縮形式は output.pdf.image.compression で指定することができます2.0.3。 デフォルトはflateですが、jpegにするとJPEGで圧縮します。 JAI-ImageI/O がインストールされた環境では、jpeg2000の指定が可能です。 画像の圧縮は、デフォルトではJPEG / JPEG2000には適用されませんが output.pdf.jpeg-imageをrecompressにすると、 JPEG / JPEG2000を再圧縮するようになります2.0.3 (ただしJPEGをJPEGに、JPEG2000をJPEG2000に圧縮することはしません、JPEGとJPEG2000を互いに変換することはします)。

JPEG / JPEG2000による再圧縮は不可逆であり、 画像を劣化させるためアイコンのような小さな画像には適用したくないことがあります。 そのため、Copper PDFは一定の大きさより小さな画像を常にFlateDecode形式で圧縮するように指定することができます 2.0.3。 閾値はoutput.pdf.image.compression.losslessに、 画像の縦のピクセル数と横のピクセル数を足した値で設定します。デフォルトは200です。 この場合、例えば縦が90ピクセル、横が110ピクセルの画像はJPEG / JPEG2000に再圧縮されますが、 縦が80ピクセル、横が100ピクセルの画像はFlateDecodeで可逆圧縮されます。 ただし、元の画像がJPEG / JPEG2000で、 output.pdf.image.compressionで指定した形式と同じ場合は、 そのままの形式でPDFに埋め込みます。

PDFの表示環境のキャラクタ・エンコーディング

PDF 1.2以前ではフォント名、PDF 1.6以前では添付ファイル名が、 PDFの表示環境のキャラクタ・エンコーディングに依存していました。 後のバージョンのPDFではユニコードを使用するため、特に表示環境のキャラクタ・エンコーディングを気にする必要はありません。

古いバージョンのPDFを生成する場合は、文字化けを防ぐために、 output.pdf.platform-encoding に想定される表示環境のエンコーディングを設定する必要があります。 デフォルトではMS932(Windows版Shift_JIS)が設定されているため、 日本語環境ではおおよそ問題は起きません。 ただし、該当する箇所に設定されたエンコーディングがサポートしない文字が使われた場合や、 設定されたエンコーディング以外の表示環境では文字化けが発生する可能性があります。

作成・更新時刻、ファイルIDの設定

デフォルトでは、PDFの作成・更新時刻(CreationDate, ModDate)にはCopper PDFが動作している環境の時計の現在時刻が使われます。 また、ファイルIDは乱数が使用されます。

作成・更新時刻とファイルIDは、明示的に設定することもできます2.0.9

作成・更新時刻はそれぞれ

を設定してください。 日付の形式は"2009-05-22 21:10:14"または"2009-06-04 15:53:02 +09:00" (タイムゾーンを明示する場合)といった形式です。

ファイルIDは output.pdf.file-id で設定してください。 これは必ず32桁固定の16進数で、 "000067A36902BF8D2A0617B9CD02BCFA" のような値です。

すかし

PDFの前面または背面に、すかし画像を出力することができます 2.1.8。 すかしを利用できるのは、PDF 1.4以降です。

同様のことは、CSSのbackground-image等をつかって実現することもできますが、 PDFの場合は、画面では見えず印刷時だけすかしを表示する機能があります。

output.pdf.watermark.uriに、すかしに使う画像を、絶対アドレスで指定すると、 繰り返しパターンとして、画像がPDFの全ページに表示されるようになります。

デフォルトでは背景は背面に表示されますが、 output.pdf.watermark.modeに"front"を設定すると、前面に表示されます。

output.pdf.watermark.opacityにより、すかしの不透明度を設定することができます。 例えば、"0.5"という値を設定すると、すかしが半透明になります。

以下の出力例は、output.pdf.watermark.uriにSVG画像を指定し、 output.pdf.watermark.modeに"back"を指定しています。

以下の出力例は、output.pdf.watermark.uriにSVG画像を指定し、 output.pdf.watermark.modeに"front"を指定し、 output.pdf.watermark.opacityに0.5を指定しています。

印刷時だけ、または画面表示だけすかしを表示する

output.pdf.watermark.viewoutput.pdf.watermark.printは、それぞれすかしを画面表示時と印刷時に表示するかどうかを設定するものです。 デフォルトでは両方とも表示しますが、例えばoutput.pdf.watermark.viewに"false"を設定すると、印刷時だけすかしを表示します。

すかしを背面に表示する場合、これらの設定はPDF 1.4以前では有効になりません。

PDF/A-1bに準拠したファイルの出力

PDF/A (ISO 19005-1)はPDFの長期保存のための国際規格です。 出力されるPDFの形式に一定の制約を加えることにより、様々なPDF表示ソフトウェアの互換性の問題が起きにくくなります。 PDF/AにはPDF/A-1bと、より制約の強いPDF/A-1aがありますが、Copper PDFは現在のところPDF/A-1bをサポートします。

output.pdf.versionに"1.4A-1"を設定すると、PDF/A-1bに準拠したファイルが生成されます2.1.0。 このモードで生成されるPDFのバージョンは1.4ですが、通常のPDF 1.4の以下の機能が使用できなくなります。

フォントは常に埋め込みフォントだけが使用されます。 CID-Keyedフォント、外部フォント、コア14フォントも使用できません。

PDFビューワの表示設定3.0.2/2.1.11

CopperPDFは、PDFをビューワで開いた際の表示(ViewerPreferences)を設定することができます。 ViewerPreferencesの設定がどのように影響するかは、そのPDFを開くビューワー(Adobe Readerなど)によります。 必ずしもユーザーの環境で設定通りに表示されるものではありませんが、組織内での事務処理や印刷作業のためには非常に有効です。

ViewerPreferencesはoutput.pdf.viewer-preferences.で始まる名前の入出力プロパティにより設定します。 たとえば、文書を印刷する場合の印刷部数をあらかじめ3に設定したい場合は、 output.pdf.viewer-preferences.num-copies を3に設定します。

設定の一覧は、資料集の入出力プロパティ一覧を参照してください。

PDFの表示の際に実行されるJavaScript3.0.2/2.1.11

output.pdf.open-action.java-scriptにより、PDFをビューワで開いたタイミングで実行されるJavaScriptを設定することができます。

例えば、PDFを開いた際に印刷ダイアログを表示する場合は "print();" を設定します。

PDFのJavaScriptの仕様についてはAdobe社が公開しているドキュメント(http://www.adobe.com/jp/support/products/pdfs/acrojs_j.pdf)を参照してください。

4.4.2. 画像の出力

Copper PDFはPDFだけではなく、JPEG等のラスタ(ピクセルマップ)画像を出力することができます。 2.0.3 output.typeに"image/jpeg"のように、 画像のMIMEタイプを指定してください。

画像のエンコーディングにはJava実行環境の機能を利用しており、 大抵のJava実行環境ではJPEG("image/jpeg"), PNG("image/png")画像を出力することができます。 Java実行環境に拡張ライブラリを導入することにより、出力できる画像を増やすことができます。 拡張方法については他の画像形式の利用を参照してください。

画像出力の制約

コアフォントCID-Keyedフォントを描画できないという制約があります。 フォントを正しく表示するためには、埋め込みフォントを利用する必要があります。 フォントの設定方法はフォントの種類を参照してください。

画像出力の解像度

出力される画像の解像度は output.image.resolution により設定することができます2.0.4。 値の単位はdpiで、CSSで1inの長さのオブジェクトを描画するときに並ぶピクセル数です。 デフォルトの画像の解像度は96dpiです。 1ptは1/72inであるため、デフォルトでは1ptは1ピクセルより若干大きくなります。

1pxが実際に出力される画像の1ピクセルと一致するようにするためには output.resolutionoutput.image.resolution が同じ値になるようにしてください。 デフォルトでは両方とも96です。

なお、2.0.8以前ではoutput.image.resolutionのデフォルト値が72となっており、解像度が正しく反映されないバグがありました。 2.0.9以降では (以前の設定 × output.resolution / 72) で換算した値を設定してください。

4.4.3. SVGの出力

Copper PDF 3.0.1 からSVGの出力をサポートしました。 output.typeに"image/svg+xml"を設定してください。

SVG出力では、文字が全てアウトライン化されます。 出力されたSVGはAdobe Illustrator CSなどのドローソフトで読み込み、加工することができます。


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