設定ファイルの記述方法
PDFGen に渡す設定ファイルはいくつかのセクションにわかれています。
- PDF セクション
- PAGE_X セクション (X はページ番号)
- PUT_X_Y セクション (X はページ番号、Y 配置番号)
設定ファイルには、1つの PDF セクション、ページ数分の PAGE_X セクション、各ページに配置する要素分の PUT_X_Y セクションが含まれます。また、各セクションにはいつくかのパラメータが含まれます。
PDF セクションのパラメータ
PDF セクション で使用できるパラメータは以下の通りです。また、いくつかのパラメータは必ず設定する必要があります。
- log_file
- PDFGen のログファイル名を設定します。log_file を設定しないとログファイルは出力されません。
- log_type
- ログファイルを入れ替えるまでの間隔とその際の動作を設定します。デフォルトでは週毎に入れ替えを行い、古いログファイルは削除します。
- log_size
- ログファイルの最大サイズを設定します。log_size を超えた場合、ログファイルを入れ換えます。デフォルトでは 100 MB で入れ替えます。log_size は log_type が size の場合のみ有効です。
- pdfName (必須)
- 出力する PDF のファイル名を設定します。設定されていない場合はエラーになります。
- pdiName
- インポートする PDF のファイル名を設定します。pdiName は PDFlib のライセンスでは使用できません。PDFlib+PDI か PPS のライセンスが必要です。
- author
- 文書のプロパティ に記載される作成者を設定します。
- title
- 文書のプロパティ に記載されるタイトルを設定します。
- license
- PDFlib のライセンスキーを設定します。license と後述の licensefile の両方が設定されていない場合、PDFGen は評価版として動作します。
- licensefile
- PDFlib のライセンスキーを記載したライセンスファイルを設定します。ライセンスファイルのテンプレート (licensekeys.txt) が PDFlib のインストールディレクトリに用意されています。licensefile と前述の license の両方が設定されていない場合、PDFGen は評価版として動作します。
- masterPwd
- 表示用パスワードの設定や、印刷禁止等の権限を設定するためのマスターパスワードを設定します。
- userPwd
- PDF を開く際に必要になるパスワードを設定します。userPwd を設定する場合、masterPwd が必要です。また、userPwd と masterPwd を同じにすることはできません。
- permissions
- 高画質印刷の許可等の権限を設定します。permissions を設定する場合、masterPwd が必要です。使用できるキーワードは以下の通りです。
- noprint
- Acrobat でファイルを印刷できないようにします
- nohiresprint
- Acrobat でファイルを高解像度印刷できないようにします (PDF 1.4 以上)
- nomodify
- Acrobat でページの編集やコピー、フォームフィールドの追加・変更を行えないようにします
- noassemble
- nomodify に加えて、ページの追加、削除、回転やしおりの作成、サムネイルの作成を行えないようにします
- noannots
- Acrobat でしおりとフォームフィールドの追加、変更を行えないようにします
- noforms
- nomodify、noannots に加え、Acrobat でフォームフィールドに記入できないようにします (PDF 1.4 以上)
- nocopy
- Acrobat でアクセシビリティ目的での抽出を除くテキストやグラフィックのコピー、抽出を行えないようにします
- noaccessible
- Acrobat でアクセシビリティ目的でのテキストやグラフィックの抽出を行えないようにします (PDF 1.4 以上)
- plainmetadata
- 文書が暗号化する場合でも、XMP 文書メタデータは暗号化しないようにします (PDF 1.5 以上)
上記に一致しないキーワードを設定した場合はエラーになります。
- compatibility
- 出力する PDF の PDF バージョンを設定します。PDFlib 9 を使用した場合に設定できる PDF バージョンは以下の通りです。
- 1.4
- 1.5
- 1.6
- 1.7
- 1.7ext3
- 1.7ext8
デフォルト値は利用する PDFlib により異なりますが、PDFlib 9 を使用した場合は 1.7 になります。
-
- trace
- PDFlib API の呼び出しログのトレースを設定したファイル名に出力します。trace が設定されていない場合、トレースを出力しません。
- path
- CMap ファイルが格納されているフォルダの絶対パスを設定します。
- pages (必須)
- ページ数を設定します。
-
PAGE_X セクションのパラメータ
出力文書の X ページ目の内容を設定します。X は 1 から数えます。PDF セクションの pages を超えた場合、pages 分まで作成されます。
PDF セクション で使用できるパラメータは以下の通りです。下記以外のパラメータは反映されません。
- width
- ページ X の幅を設定します。設定しない場合は 210.2mm (A4 サイズ) が設定されます。
- height
- ページ X の高さを設定します。設定しない場合は 297.5mm (A4 サイズ) が設定されます。
- pdiPage
- pdiName で設定した PDF からインポートするページを設定します。
- pdiOption
- インポートしたページを配置するためのオプションを設定します。
- pdiProcess
- PDI でインポートした PDF の PDF/A または PDF/X の出力インテント ICC プロファイルを出力文書に複製する場合、action=copyoutputintent を設定します。
- objects
- PAGE_X に適用するオブジェクト数 Y を設定します。
PUT_X_Y セクションのパラメータ
出力文書の X ページ目に配置するテキストや画像等を設定します。Y は 1 から数えます。PAGE_X セクションの objects を超えた場合、objects分まで作成されます。
- object_type
- 配置するオブジェクトの種類を設定します。設定可能なオブジェクトは以下の通りです。
- text
- ページ上にテキストを記載
- block
- PDFlib ブロックにテキスト・画像・PDF ページ等を配置
- line
- 罫線を記載
- rect
- 矩形領域を記載
object_type=text の場合、設定できるパラメータは以下の通りです。text パラメータを設定する場合、face、file、encoding は必ず必要です。
- face (必須)
- テキストの表示に使用するフォントのフォント名を設定します。
- file (必須)
- フォントファイルの絶対パスを設定します。
- encoding (必須)
- テキストのエンコーディングを設定します。
- option
- フォントのオプションを設定します。例えば太字にする場合、fontstyle=bold を設定します
- size
- フォントサイズを設定します。
- text
- 記載するテキストを設定します。
- x
- 矩形領域の左下の座標を左端からの距離 (mm) で設定します。設定しない場合は 0 (左端) が設定されます。
- y
- 矩形領域の左下の座標を上端からの距離 (mm) で設定します。設定しない場合は 0 (上端) が設定されます。
- align
- 矩形領域内のテキストの配置方法を設定します。使用できるキーワードは以下の通りです。
設定しない場合や、上記に該当しない場合は left top が設定されます。
- charspacing
- 文字と文字の間隔を設定します。設定しない場合は 0 (間隔なし) が設定されます。
- wordspacing
- 単語と単語の間隔を設定します。設定しない場合は 0 (つまり間隔)なしが設定されます。
- color
- テキストの色を設定します。
object_type=block の場合、設定できるパラメータは以下の通りです。
- name
- PDFlib ブロックのブロック名を指定します。
- type
- PDFlib ブロックのタイプを設定します。設定できる PDFlib ブロックのタイプは以下の通りです。
- text
- 一行テキストおよび複数行テキスト
- image
- 画像
- pdf
- PDF ページ
- description
- PDFlib ブロックの内容を設定します。
- options
- type に合わせて PDF_fill_**block() のオプションを設定します。
- face
- テキストの表示に使用するフォントのフォント名を設定します。
- file
- テキストの表示に使用するフォントファイルの絶対パスを設定します。
object_type=line および object_type=rect の場合、設定できるパラメータは以下の通りです。
- left
- 左端の座標を設定します。
- right
- 右端の座標を設定します。
- top
- 上端の座標を設定します。
- bottom
- 下端の座標を設定します。
- bgcolor
- 背景色を RGB で設定します。
PDFlib ブロックとの連携
PDFGen のもうひとつの機能として、引数で渡した PDF 内に含まれる PDFlib ブロックの内容に沿って、設定ファイルの雛形を出力する機能があります。
PDFlib ブロックは Adobe Acrobat 用の無償プラグインである PDFlib ブロックプラグインで作成する矩形の領域で、Adobe Acrobat を使って自由に配置場所を決めることができます。
PDFGen の引数に PDF を渡すと、PDFlib ブロックの内容に沿って PUT_X_Y セクションを標準出力に出力します。この出力に PDF セクションと PAGE_X セクションを加えることで、PDFlib ブロックを使った PDF を簡単に作成することができます。
PDFGen の使用例
PDFGen に渡すコンフィグレーションファイルの例と、その出力結果をご紹介します。
Hello World
Hello World です。PUT_X_Y セクションで object_type=text にした場合、face、file、encoding は必須です。またテキストを見える位置に表示するため、x と y を設定する必要があります。
[PDF]
pdfName=hello_world.pdf
pages=1
[PAGE_1]
objects=1
[PUT_1_1]
object_type=text
face=MS-Gothic
file=/path/to/msgothic.ttc
encoding=unicode
x=150
y=150
size=20
text=Hello World!
Hello world! を表示する設定ファイル
入力ファイルおよび出力結果は以下の通りです。
PPS サンプル (請求書作成)
既存の PDF にテキストや画像を配置して PDF を作成する場合のサンプルです。
前述の通り、PDFGen には PDFlib ブロックを配置した PDF を読み込んで設定ファイルの雛形を作成する機能があります。この機能を使い、請求書の基になる PDF に商品名、価格等を配置して請求書を作成します。
下記の設定ファイルは PDFGen が出力する雛形と、これに PDF セクションと PAGE_X セクションを追加した設定ファイルです。
PDFGen v4.1.1 for PDFlib 9.1.1
copyright (c) 2018 infoTek K.K. all rights reserved.
DLL version 9.1.1
[PUT_1_1]
object_type=block
type=text
name=amount_1
description=
options=
[PUT_1_2]
object_type=block
type=text
name=amount_10
description=
options=
[PUT_1_3]
object_type=block
type=text
name=amount_2
description=
options=
...
PDFGen が標準出力に表示した雛形 (一部)
PDFGen v4.1.1 for PDFlib 9.1.1
copyright (c) 1997-2013 infoTek K.K. all rights reserved.
DLL version 9.0.0
[PDF]
pdfName=invoice.pdf
pdiName=pps_invoice.pdf
title=Invoice
author=infoTek K.K.
license=
pages=1
[PAGE_1]
pdiPage=1
pdiOption=adjustpage
objects=46
[PUT_1_1]
object_type=block
type=text
name=amount_1
description=\2,000,000.-
options=
file=/path/to/msgothic.ttc
face=MS-PGothic
encoding=unicode
[PUT_1_2]
object_type=block
type=text
name=amount_10
description=
options=
[PUT_1_3]
object_type=block
type=text
name=amount_2
description=\60,000.-
options=
file=/path/to/msgothic.ttc
face=MS-PGothic
encoding=unicode
...
雛形をベースに作成した設定ファイル (一部)
各入力ファイルおよび出力結果は以下の通りです。