部門 > Ruby > 名札自動作成プログラム改訂版

「部門/Ruby/名札自動作成プログラム改訂版」の編集履歴(バックアップ)一覧はこちら

部門/Ruby/名札自動作成プログラム改訂版」(2012/03/01 (木) 20:04:53) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

なんか前のやつを久しぶりに動かしたら全然期待と違う動きをするので、直してみた。CSVが偶数行じゃないと動かないという問題も解決したつもり。でもこれもちゃんと動くかどうかよくわからない。TeXコマンドをファイルに出力するときに、\\にするのか、\にするかは環境に依存しそう。もっとうまく書きたいけど、めんどいからこんな感じで。 #highlight(ruby,linenumber){{{ #!/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 }}} **コメント #comment_num2()
なんか[[前のやつ>http://www47.atwiki.jp/cscd/pages/52.html]]を久しぶりに動かしたら全然期待と違う動きをするので、直してみた。CSVが偶数行じゃないと動かないという問題も解決したつもり。でもこれもちゃんと動くかどうかよくわからない。TeXコマンドをファイルに出力するときに、\\にするのか、\にするかは環境に依存しそう。もっとうまく書きたいけど、めんどいからこんな感じで。 #highlight(ruby,linenumber){{{ #!/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 }}} **コメント #comment_num2()

表示オプション

横に並べて表示:
変化行の前後のみ表示: