#!/usr/bin/ruby
# -*- coding: utf-8 -*-
# オナーの名札作成プログラム
eventname = "2010年度卒業生送別会"
if ARGV[0] == nil then
print "このプログラムの使い方
所属(半角カンマ)セミナー名(半角カンマ)氏名(改行)
例:物理学科3年,永宮G, 金森 順次郎
物理学科3年, 八木G, 湯川 秀樹
というようなファイルを引数に入れてくれると
名札を作るためのTeXソースファイルをつくります。
あとはそれをコンパイルしてPDFにして印刷してね。
何かあれば
foo@bar.com
まで¥n"
else
f1 = File.open("#{ARGV[0]}.tex", "w")
f1.print "¥documentclass[14pt,a4paper]{jsarticle}
¥usepackage[dvipdfmx]{graphicx}
¥pagestyle{empty}
¥setlength{¥¥unitlength}{1truemm}
¥setlength{¥¥hoffset}{0in}
¥setlength{¥¥voffset}{0in}
¥setlength{¥¥headheight}{0in}
¥setlength{¥¥headsep}{0in}
¥setlength{¥¥oddsidemargin}{14truemm}
¥setlength{¥¥topmargin}{16truemm}
¥advance¥¥oddsidemargin -1in
¥advance¥¥topmargin -1in
¥setlength{¥¥footskip}{0in}
¥begin{document}
"
require "csv"
CSV.open(ARGV[0], "r")
b=CSV.readlines(ARGV[0])
puts b[0]
i = 0
while b[i] != nil
f1.print "¥begin{picture}(89.1,54.6)(0,0)
¥put(-0.45,-0.2){¥line(1,0){90}}
¥put(-0.45,-0.2){¥line(0,1){55}}
¥put(89.55,54.8){¥line(-1,0){90}}
¥put(89.55,54.8){¥line(0,-1){55}}
¥put(46,20){¥¥makebox(0,0){¥Huge ¥bf #{b[i][2]}}}
¥put(52,44){¥¥makebox(0,0)[]{¥small #{eventname}}}
¥put(52,35.5){¥¥makebox(0,0){¥large #{b[i][0]}}}
¥put(82,3.5){¥¥makebox(0,0)[r]{¥large #{b[i][1]}}}
¥put(5,28){¥¥includegraphics[width=20truemm]{001.eps}}
¥end{picture}"
if b[i+1] != nil
f1.print "
¥begin{picture}(89.1,54.6)(0,0)
¥put(-0.45,-0.2){¥line(1,0){90}}
¥put(-0.45,-0.2){¥line(0,1){55}}
¥put(89.55,54.8){¥line(-1,0){90}}
¥put(89.55,54.8){¥line(0,-1){55}}
¥put(46,20){¥makebox(0,0){¥¥Huge ¥bf #{b[i+1][2]}}}
¥put(52,45){¥makebox(0,0)[]{¥small #{eventname}}}
¥put(52,35.5){¥makebox(0,0){¥large #{b[i+1][0]}}}
¥put(82,3.5){¥makebox(0,0)[r]{¥large #{b[i+1][1]}}}
¥put(5,28){¥includegraphics[width=20truemm]{001.eps}}
¥end{picture}¥par
"
end
elsif b[i+1] != nil
f1.print "
¥begin{picture}(89.1,54.6)(0,0)
¥put(-0.45,-0.2){¥line(1,0){90}}
¥put(-0.45,-0.2){¥line(0,1){55}}
¥put(89.55,54.8){¥line(-1,0){90}}
¥put(89.55,54.8){¥line(0,-1){55}}
¥put(46,20){¥makebox(0,0){¥¥Huge ¥bf }}}
¥put(52,45){¥makebox(0,0)[]{¥small }}}
¥put(52,35.5){¥makebox(0,0){¥large }}}
¥put(82,3.5){¥makebox(0,0)[r]{¥large }}}
¥put(5,28){¥includegraphics[width=20truemm]{001.eps}}
¥end{picture}¥par
"
end
i += 2
end
f1.puts "¥end{document}
"
f1.close
puts "#{i}人分の名札ができた模様"
end