Hello World (1) ― レンダリング・パラメータ ―

Field Reports付属のreportsコマンドを使って,Hello World を作成します。

レンダリング・パラメータの作成

最初にレンダリング・パラメータを作成します。 以下の内容のテキストファイルを作り“hello1.json”というファイル名で保存します。

// hello1.json
{
    "template": {"paper": "A4"},
    "context": {
        "hello": {
            "new": "Tx",
            "value": "Hello, World!",
            "rect": [100, 700, 400, 750]
        }
    }
}

reportsコマンドに与えるレンダリング・パラメータは,JSON形式で作成します。

JSONでは,辞書要素を“{キー1: 値1, キー2: 値2, … キーn: 値n }”と表記し,リスト要素を“[ 値1, 値2, … 値n ]”と表記します。

レンダリング・パラメータのトップレベルの要素としてtemplateとcontextがあります。

template辞書は,本来はPDFテンプレート・ファイルのパス名を記述する場所ですが,今回はテンプレートを使用せずに空のページを新規に生成しますので,用紙のサイズのみをpaper属性で指定します。

context辞書では,フィールド名を「キー」にフィールド属性を「値」として辞書要素を列挙します。ここでは,“hello”がフィールド名に,“{ "new": "Tx", "value": "Hello, World!", "rect": [100, 700, 400, 750] }”がフィールド属性にそれぞれ対応します。

PDFテンプレートを使用していないので本来フィールド名に意味はありませんが,ここでは便宜的に“hello”というフィールド名を付けています。

フィールド属性のnew要素により,新規にテキストフィールドを作成することを指示します。value属性でフィールドの値を与え,rect属性でフィールドの座標([左, 下, 右, 上])を与えます。

Field Reportsでは,座標系の単位はすべてポイント(pt)で統一しています。1ポイント = 1/72インチ ≒ 0.3528mm ですので,A4タテの用紙であれば,210mm×297mm ≒ 595pt×842pt となります。

座標系の原点は左下なので,左下の座標が(0, 0),右上の座標が(595, 842)となります。

reportsコマンドの実行

以下のコマンドを実行してPDFを作成します。

$ reports create hello1.json hello1.pdf

ここで,“create”は reports コマンドに与えるサブコマンド,“hello1.json”は先ほど作成したレンダリング・パラメータ,“hello1.pdf”は生成したPDFの保存先ファイル名です。

実行結果を以下に示します。

../../_images/%E5%AE%9F%E8%A1%8C%E7%B5%90%E6%9E%9C1.png

実行結果