summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Weller <lhw@ring0.de>2012-08-09 18:25:41 +0200
committerLennart Weller <lhw@ring0.de>2012-08-09 18:25:41 +0200
commitc8904cd366e1b2c62120e9055f442ef3885fda82 (patch)
treeef92302ad84d70aad34892a6e1d34ce343368cb4
parent427c3a37764890d9bd3facc8cc0a5d8a33511d79 (diff)
downloadserial-barcode-scanner-c8904cd366e1b2c62120e9055f442ef3885fda82.tar.bz2
pass list generator
-rw-r--r--passlist.rb71
1 files changed, 71 insertions, 0 deletions
diff --git a/passlist.rb b/passlist.rb
new file mode 100644
index 0000000..cb02bd1
--- /dev/null
+++ b/passlist.rb
@@ -0,0 +1,71 @@
+#!/usr/bin/env ruby -w
+# encoding: UTF-8
+
+require "csv"
+
+#csv input "userid,firstname,lastname"
+
+@template = %q{
+ \documentclass[a4paper,landscape]{article}
+ \usepackage[utf8]{inputenc}
+ \usepackage{graphicx}
+ \usepackage{longtable}
+ \usepackage{array}
+ \usepackage{rotating}
+ \usepackage[top=0.5cm,right=0.5cm,bottom=0.5cm,left=0.5cm,landscape]{geometry}
+ \renewcommand{\familydefault}{\sfdefault}
+ \renewcommand{\arraystretch}{2}
+ \renewcommand{\tabcolsep}{0cm}
+ \title{Barcodelist}
+ \author{Kreativitaet trifft Technik}
+ \date{\today}
+ \begin{document}
+ \begin{center}
+ \begin{longtable}{| >{\centering\arraybackslash}p{8.5cm}| >{\centering\arraybackslash}p{8.5cm}| >{\centering\arraybackslash}p{8.5cm}|}
+ %s
+ \end{longtable}
+ \end{center}
+ \end{document}}
+
+@line = %q{
+ \hline
+ %s
+ \hline
+ %s
+ \hline}
+
+@graphics = %q{ \includegraphics{%s} \rule{0cm}{3.5cm} %s}
+@name = %q{ %s %s %s}
+@ktt = %q{\includegraphics[width=8cm,angle=180]{ktt} %s }
+
+@csv = CSV.read(ARGV[0])
+
+#generate barcodes
+@csv.each{|r|
+ system("barcode -n -E -b 'USER %s' -o '%s.eps' -e 39\n" % [r[0], r[0]])
+}
+
+#generate latex
+tmp = ""
+graphics = ""
+name = ""
+1.upto(@csv.length){|i|
+ le = i % 3 == 0 || i >= @csv.length
+ sign = le ? "\\\\" : "&"
+ graphics += @graphics % [@csv[i-1][0], sign]
+ name += @name % [@csv[i-1][1], @csv[i-1][2], sign]
+ if le
+ tmp += @line % [graphics, name]
+ graphics = ""
+ name = ""
+ 1.upto(3) {|j|
+ sign = j == 3 ? "\\\\" : "&"
+ graphics += @ktt % sign
+ name += " " + sign
+ }
+ tmp += @line % [name, graphics]
+ graphics = ""
+ name = ""
+ end
+}
+File.open("barcode.latex", "w+"){|f| f.write(@template % tmp)}