スクラッチからのPDF作成
空白ページの作成や標準フォント(欧文標準14フォント+日本語2フォント)の内蔵により,テンプレートを使用せずにスクラッチからPDFを作成することが可能になりました。
最小の帳票作成パラメータファイル(JSON形式)とその実行結果を以下に示します。
{
"template": {"paper": "A4"},
"context": {
"hello": {
"new": "Tx",
"rect": [100, 700, 400, 750],
"value": "Hello, world!"
}
}
}
リソースURL指定
画像・PDFテンプレートの取得先として,任意のURLを指定することが可能になりました。
これでファイルの取得方法が,以下の3種類から選べるようになりました。
- ローカルファイル
- data URI scheme
- URL
使用例として,Google Mapsで地図をGoogle Chart ToolsでQRコードを生成させてみました。
{
"resources": {
"image": {
"google-map": "http://maps.google.com/maps/api/staticmap?center=35.185590,136.899060&zoom=13&markers=size:mid|35.185590,136.899060&size=1000x600&sensor=false",
"qr": "http://chart.apis.google.com/chart?chs=300x300&cht=qr&chl=http://www.nagoyajo.city.nagoya.jp/"
}
},
"template": {"paper": "A4"},
"context": {
"image": {
"new": "Btn",
"image": "google-map",
"rect": [100, 550, 400, 800]
},
"qr": {
"new": "Btn",
"image": "qr",
"rect": [100, 450, 200, 550]
}
}
}
パフォーマンス改善
大量ページ出力時の性能向上
PDF生成処理のチューニングにより,1,000ページ以上のPDFを出力する際のパフォーマンスが向上しました。
10,000ページのPDFを1時間以内に作成することができます(CPU: Core 2 Duo 1.86GHz, メモリ: 8GM)。
画像リソース化
繰り返し利用する画像をリソースとして登録できるようにしました。
PDF出力時のデータの重複がなくなり,処理速度も向上しました。
PNGデータの直接埋め込み
透過データ(αチャンネル)を持たないPNG画像の場合は,画像データの展開を行わず直接PDFへ埋め込むようにしました。
PDFの展開・圧縮処理が不要になり,処理速度が向上しました。