gnuplotで名刺作成

最近のgnuplotではPDFファイルが手軽に作成できるpdfcairoターミナルが使えます。このターミナルを使って、市販の名刺印刷用の用紙に対応した名刺画像を作るスクリプトを作成しました。これからの門出の季節、gnuplotで作った新しい名刺をもってみてはいかがでしょうか。

set encoding utf8

hsize = 91.0 #mm; 名刺1枚の横のサイズ 名刺印刷用の紙の種類によっては変更必要
vsize = 55.0 #mm; 名刺1枚の縦のサイズ 同上

Hsize = 210.0 # mm; 紙全体の横サイズ A4 名刺印刷用の紙の種類によっては変更必要
Vsize = 297.0 # mm; 紙全体の縦サイズ A4 同上

bm = 11.0 # mm; 下マージン: 名刺印刷用の紙の種類によっては変更必要
tm = 11.0 # mm; 上マージン: 同上
lm = 14.0 # mm; 左マージン: 同上
rm = 14.0 # mm; 右マージン: 同上

border_int = 0        # 各名刺に枠をつけない場合 印刷する場合はこちらの方がいい。
border_int = 1+2+4+8  # 各名刺に枠をつける場合   主に位置の調整用

tcolor1 = "#000000"   # 文字色1 名前と役職
tcolor2 = "#000000"   # 文字色2 住所など
logo_x0 = 0.8         # ロゴの位置のx座標
logo_y0 = 0.73        # ロゴの位置のy座標
logo_xsize = 0.2      # ロゴの横サイズ(名刺サイズに対する割合)
logo_ysize = 0.25     # ロゴの縦サイズ(名刺サイズに対する割合)

logofile = "logo.png"  # ロゴの画像ファイル


set term pdfcairo size 21.0cm,29.7cm font "Meiryo,10" enhanced
set out "namecard.pdf"

set multiplot

set size hsize/Hsize, vsize/Vsize
unset xtics
unset ytics
set format xy ""
set xrange [0:1]
set yrange [0:1]
set tmargin 0
set bmargin 0
set rmargin 0
set lmargin 0

do for [i=0:9]{
     set xrange [0:1]
     set yrange [0:1]
     set border border_int
     ## 名刺の内容: 変更する場合は以下を適当にいじる ##
     set label 1 at graph 0.05,0.85 left "{/Meiryo=20 ○○大学 ○○学科}" tc rgb tcolor1 front 
     set label 2 at graph 0.1,0.60  left "{/Meiryo:Bold=40 京都 太郎}"  tc rgb tcolor1 front 
     set label 21 at graph 0.05,0.21 left "{/Meiryo=9 〒123-4567 ○○県○○市△△町XX-XX ○○大学X号館XXX号室}" tc rgb tcolor2 front 
     set label 22 at graph 0.05,0.16 left "{/Meiryo=9 Tel: 000-1111-2222, Fax: 000-1111-3333}" tc rgb tcolor2 front 
     set label 23 at graph 0.05,0.11 left "{/Meiryo=9 e-mail: xxxxxxx\\@xxxx.xxxx.ac.jp}" tc rgb tcolor2 front
     set label 24 at graph 0.05,0.06 left "{/Meiryo=9 URL: http://www.xxx.ac.jp/xxxx\\_yyyy/index.html}" tc rgb tcolor2 front
     ## ここまで ##
     if (i<=4) {set origin lm/Hsize,         (bm+(4-i)*vsize)/Vsize}
     else      {set origin (lm+hsize)/Hsize, (bm+(9-i)*vsize)/Vsize}
     set size hsize/Hsize, vsize/Vsize
     plot 1/0 notitle
     unset label
     set border 0
     if (i<=4) {set origin lm/Hsize        +hsize/Hsize*logo_x0, (bm+(4-i)*vsize)/Vsize+vsize/Vsize*logo_y0}
     else      {set origin (lm+hsize)/Hsize+hsize/Hsize*logo_x0, (bm+(9-i)*vsize)/Vsize+vsize/Vsize*logo_y0}
     set size hsize/Hsize*logo_xsize, vsize/Vsize*logo_ysize
     set size ratio -1
     set autoscale xy
     plot logofile binary filetype=auto with rgbimage notitle
     set size noratio
     }

unset multiplot
set term pop
set out
rep

このスクリプトをunicodeのUTF-8Nで保存のうえ、gnuplotで走らせると、こちらのようなPDFファイルができます。ただし、ロゴのpngファイルをスクリプトと同じフォルダに保存しておく必要があります。

以下は実行結果のPDFをキャプチャーしたものです。このPDFファイルを、市販の名刺印刷用紙に印刷すれば、名刺が作れることになります。ここでは、わかりやすくするために名刺に枠をつけていますが、実際に印刷する際は枠は不要ですので、border_intを0にして(つまりborder_int = 1+2+4+8の行をコメントアウトして)枠を消した方がいいと思います。

上記のスクリプトを適当に変更し、ロゴのファイルも用意すれば、自分の名刺が作れます。また、応用例としては、例えば右半分を英語にして両面印刷すれば、表が日本語・裏が英語の名刺ができます。また、好みのグラフを入れ込んだりすると、さらに怪しいオリジナリティーのある名刺ができます。

私の最近の名刺もこのようにしてgnuplotで作ったものです。以下の写真では薄くてちょっと見づらいですが、名前の背景には自分で撮った実験データをgnuplotで入れ込んでいるため、私でしか作れない世界で一つの名刺になっています。