Field Reports 1.4 の新機能 (7) ―その他の改善項目 ―

スクラッチからのPDF作成

空白ページの作成や標準フォント(欧文標準14フォント+日本語2フォント)の内蔵により,テンプレートを使用せずにスクラッチからPDFを作成することが可能になりました。

 

最小の帳票作成パラメータファイル(JSON形式)とその実行結果を以下に示します。
{
    "template": {"paper": "A4"},
    "context": {
        "hello": {
            "new": "Tx",
            "rect": [100, 700, 400, 750],
            "value": "Hello, world!"
        }
    }
}
Field Reports で Hello World
Field Reports で 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]
        }
    }
}
Google Mapsで地図をGoogle Chart ToolsでQRコードを生成
Google Mapsで地図をGoogle Chart ToolsでQRコードを生成

パフォーマンス改善

大量ページ出力時の性能向上

PDF生成処理のチューニングにより,1,000ページ以上のPDFを出力する際のパフォーマンスが向上しました。
10,000ページのPDFを1時間以内に作成することができます(CPU: Core 2 Duo 1.86GHz, メモリ: 8GM)。

画像リソース化

繰り返し利用する画像をリソースとして登録できるようにしました。
PDF出力時のデータの重複がなくなり,処理速度も向上しました。

PNGデータの直接埋め込み

透過データ(αチャンネル)を持たないPNG画像の場合は,画像データの展開を行わず直接PDFへ埋め込むようにしました。
PDFの展開・圧縮処理が不要になり,処理速度が向上しました。