見積書(単票)
1枚構成の見積書のサンプルです。
ポイント
- 単票の場合は,template要素の値としてテンプレートのパス名を直接指定することができます。
- このサンプルでは,フィールドの値をすべて整形済みの文字列で指定しています。
- ボタンフィールドには,iconエントリにより画像ファイルを指定できます。
- 0, 1, 2,…と命名されたテーブル形式のフィールドでは,配列を利用することで,部分フィールド名の指定を省略できます。
- 「御見積金額合計」と「税込合計」の欄は,同名のフィールド“total”を配置することで,context要素の指定が1箇所で済んでいます。
Python
#!/usr/bin/env python
# coding: utf-8
import sys
from field import reports
param = {
# テンプレート
"template": "./mitumori.pdf",
# フィールド値
"context": {
"date": "平成23年1月22日",
"number": "10R0001",
"to": "△△△惣菜株式会社",
"title": "肉じゃがの材料",
"delivery_date": "平成23年1月22日",
"delivery_place": "貴社指定場所",
"payment_terms": "銀行振込",
"expiration_date": "発行から3ヶ月以内",
"stamp1": {"icon": "./stamp.png"},
"table": [
["1", "N001", "牛肉(切り落とし)", "200g", "250円", "500円"],
["2", "Y001", "じゃがいも(乱切り)", "3個", "30円", "90円"],
["3", "Y002", "にんじん(乱切り)", "1本", "40円", "40円"],
["4", "Y003", "たまねぎ(くし切り)", "1個", "50円", "50円"],
["5", "Y004", "しらたき", "1袋", "80円", "80円"],
["6", "Y005", "いんげん", "1袋", "40円", "40円"]
],
"sub_total": "800円",
"tax": "40円",
"total": "840円"
}
}
if __name__ == "__main__":
if len(sys.argv) == 2:
reports.set_log_level(3)
reports.render(param, sys.argv[1])
else:
print("usage: %s " % (sys.argv[0], ))
Ruby
#!/usr/bin/env ruby
# coding: utf-8
require 'rubygems'
require 'field/reports'
$param = {
# テンプレート
"template" => "./mitumori.pdf",
# フィールド値
"context" => {
"date" => "平成23年1月22日",
"number" => "10R0001",
"to" => "△△△惣菜株式会社",
"title" => "肉じゃがの材料",
"delivery_date" => "平成23年1月22日",
"delivery_place" => "貴社指定場所",
"payment_terms" => "銀行振込",
"expiration_date" => "発行から3ヶ月以内",
"stamp1" => {"icon" => "./stamp.png"},
"table" => [
["1", "N001", "牛肉(切り落とし)", "200g", "250円", "500円"],
["2", "Y001", "じゃがいも(乱切り)", "3個", "30円", "90円"],
["3", "Y002", "にんじん(乱切り)", "1本", "40円", "40円"],
["4", "Y003", "たまねぎ(くし切り)", "1個", "50円", "50円"],
["5", "Y004", "しらたき", "1袋", "80円", "80円"],
["6", "Y005", "いんげん", "1袋", "40円", "40円"]
],
"sub_total" => "800円",
"tax" => "40円",
"total" => "840円"
}
}
if ARGV.length == 1 then
Field::Reports.set_log_level(3)
Field::Reports.render($param, ARGV[0])
else
p "usage: %s " % $0
end
Perl
#!/usr/bin/env perl
# coding: utf-8
use utf8;
use Field::Reports;
my $param = {
# テンプレート
"template" => "./mitumori.pdf",
# フィールド値
"context" => {
"date" => "平成23年1月22日",
"number" => "10R0001",
"to" => "△△△惣菜株式会社",
"title" => "肉じゃがの材料",
"delivery_date" => "平成23年1月22日",
"delivery_place" => "貴社指定場所",
"payment_terms" => "銀行振込",
"expiration_date" => "発行から3ヶ月以内",
"stamp1" => {"icon" => "./stamp.png"},
"table" => [
["1", "N001", "牛肉(切り落とし)", "200g", "250円", "500円"],
["2", "Y001", "じゃがいも(乱切り)", "3個", "30円", "90円"],
["3", "Y002", "にんじん(乱切り)", "1本", "40円", "40円"],
["4", "Y003", "たまねぎ(くし切り)", "1個", "50円", "50円"],
["5", "Y004", "しらたき", "1袋", "80円", "80円"],
["6", "Y005", "いんげん", "1袋", "40円", "40円"]
],
"sub_total" => "800円",
"tax" => "40円",
"total" => "840円"
}
};
if (@ARGV == 1) {
Field::Reports::set_log_level(3);
Field::Reports::render($param, $ARGV[0]);
} else {
die "usage: $0 \n";
}
PHP
<?php
$param = array(
# テンプレート
"template" => "./mitumori.pdf",
# フィールド値
"context" => array(
"date" => "平成23年1月22日",
"number" => "10R0001",
"to" => "△△△惣菜株式会社",
"title" => "肉じゃがの材料",
"delivery_date" => "平成23年1月22日",
"delivery_place" => "貴社指定場所",
"payment_terms" => "銀行振込",
"expiration_date" => "発行から3ヶ月以内",
"stamp1" => array("icon" => "./stamp.png"),
"table" => array(
array("1", "N001", "牛肉(切り落とし)", "200g", "250円", "500円"),
array("2", "Y001", "じゃがいも(乱切り)", "3個", "30円", "90円"),
array("3", "Y002", "にんじん(乱切り)", "1本", "40円", "40円"),
array("4", "Y003", "たまねぎ(くし切り)", "1個", "50円", "50円"),
array("5", "Y004", "しらたき", "1袋", "80円", "80円"),
array("6", "Y005", "いんげん", "1袋", "40円", "40円"),
),
"sub_total" => "800円",
"tax" => "40円",
"total" => "840円",
),
);
fr_set_log_level(3);
fr_render($param, $argv[1]);
?>