FIELD NOTES: 書を持って街へ出よう

合同会社フィールドワークス プログラマ兼代表のブログ

Google App Engine からPDF帳票を生成する

Google App Engine (GAE) から Field Reports for Cloud β版で提供しているWeb APIサービスを用いて,帳票を生成する方法を解説します。

今回は,「Hello World!」を表示するデモを作成します。

プログラムの作成

Webアプリケーションフレームワークとしてweb2pyを使用しました。

web2pyで作成したアプリケーションの controllers/default.py に以下のコードを追加します。

<APIキー>の部分には,Field Reports for Cloud β版のサイトで取得したAPIキーを挿入します。

from gluon.contrib import simplejson
import urllib

def hello():
    params = {
        "settings": {
            "api-key": "<APIキー>"
        },
        "template": {"paper": "A4"},
        "context": {
            "hello_1": {
                "new": "Tx",
                "value": "Hello, World!",
                "rect": [100, 700, 400, 750],
                "font": "/Times-Roman"
            },
            "hello_2": {
                "new": "Tx",
                "value": "Hello, World!",
                "rect": [100, 600, 400, 650],
                "font": "/Helvetica-Oblique"
            },
            "hello_3": {
                "new": "Tx",
                "value": "Hello, World!",
                "rect": [100, 500, 400, 550],
                "font": "/Courier-Bold"
            },
            "hello_4": {
                "new": "Tx",
                "value": "ABCDEFGHIJKLMN",
                "rect": [100, 400, 400, 450],
                "font": "/ZapfDingbats"
            },
            "hello_5": {
                "new": "Tx",
                "value": "こんにちは世界",
                "rect": [100, 300, 400, 350],
                "font": "/KozGo-Medium"
            }
        }
    }
    url = "https://labs.field-works.co.jp/webapi/render"
    f = urllib.urlopen(url, simplejson.dumps(params))
    response.headers['Content-Type'] = 'application/pdf'
    return f.read()

アプリケーションのデプロイ

ローカル環境で動作確認を行ったら,作成したアプリケーションをGAEにデプロイします。 具体的なデプロイ手順については,参照サイト等を参照してください。

デモの実行

以下のURLにアクセスすると,生成したPDFを開きます。

http://field-reports.appspot.com/hello

参照サイト