これは何? †
- SVG で帳票を作る練習
- 1週間のTODOリストを1年分作る
テンプレートの作成 †
- SVG で帳票テンプレートを作るところがミソ
- SVG は、XML
- 簡単な帳票であれば、XML をただのテキストファイルとみなして、キーワード置換で帳票ができる
- ちょっとだけ複雑なら、XSLT でドキュメント変換してやれば良い
- 複雑なら、DOM、SAX、JAXB とかで、構造を持つデータとしてプログラムに取り込むことができる
- Inkscape で、1 週間のTODOリストを作る
- 値が変わるところだけ #abcd (Place Holder) にする
- 元ネタは、Introduction to the Middle Way Method, DIY Planner, 2009, http://diyplanner.com/node/7099
Place Holder に値を埋め込むプログラムを作る †
SVG -> PDF †
PDF を年度ごとに集約する †
$ pdftk ./a3/2013* cat output 2013.pdf
$ pdftk ./a3/2014* cat output 2014.pdf
$ pdftk ./a3/2015* cat output 2015.pdf
A4プリンタで印刷できるように、A3 から A4 に分割する †
- A3toA4.sh
#!/bin/bash
if [ ! -d ./a4 ]; then
mkdir ./a4
fi
ls ./a3 | while read A3_FILE
do
A4_FILE=./a4/${A3_FILE%[.]*}
A4L_FILE=${A4_FILE}L.pdf
A4R_FILE=${A4_FILE}R.pdf
echo "${A3_FILE} => ${A4L_FILE}, ${A4R_FILE}"
gs -o $A4L_FILE -sDEVICE=pdfwrite -sPAPERSIZE=a4 -g5950x8420 -c "<</PageOffset[0 0]>> setpagedevice" -f ./a3/$A3_FILE
gs -o $A4R_FILE -sDEVICE=pdfwrite -sPAPERSIZE=a4 -g5950x8420 -c "<</PageOffset[-595 0]>> setpagedevice" -f ./a3/$A3_FILE
done
- 最初のページに空白ページを追加し、両面印刷した時に、見開きで一週間TODOになるようにする
- 集約する
$ pdftk ./a4/* cat output 2014_diary.pdf
同様にして月間予定表も作った †
Java帳票