SewiGの日記
2004-05-24 [月] [長年日記]
■ [Opinion] 大分大学工学部知能情報システム工学科の印刷用紙無駄遣い事情
UNIXで印刷をしたいときはlprコマンドが使われることが多いですが、当学科では学生用レーザプリンタが2台しかないので、-Pオプションをつけないでおのおののプリンタに直接出力するPerlコマンドが用意されています。
ところが、このスクリプトはテキストファイルを引数にするとa2ps経由でPostscriptファイル変換したものを勝手にlprに流し込む極悪スクリプトなんです。さらに、学科にはこの極悪スクリプトによる印刷方法しか知らないという情報系とは思えない学生も居るため、印刷後のイメージを確認できず印刷ミスの用紙を山積みにする学生が大量に居るわけです。まぁ無知な学生も悪いのですが、スクリプトにオプションを付加してないなど作り込みが悪いスクリプトを作った方も問題ではありますが。
とりあえず、一部引用するとこんな感じのやつです。 (なんかシェルスクリプトで書いても充分な規模のスクリプトな気がする)
#!/usr/bin/perl $ps = "pr1"; $tf = $ARGV[0]; open(TF,"$tf") || die "cannot find $tf\n" ; while(<TF>){ if(/\0\0/){ print " \"$tf\" may be a binary file\n" ; exit 1 ; } if(/%!PS/){ exec ("echo ' PostScript file printout'; /usr/local/bin/lprl -P$ps $tf") ; } else{ exec ("/usr/local/bin/a2ps -a4 -L \"%user %month %mday %hour:%min\" $tf | /usr/local/bin/lprl -P$ps") ; } } close(TF); # a2psのオプションが固定だったり、直接プリンタに出力しないオプションがなかったりして # 問題が多いスクリプト(引用のルールに従い一部のみ掲載) # とりあえず、| /usr/local/bin/lprl -P$ps を消せば応急処置としてはOK
さらに実験用表紙がPostscriptで配布されていて、2枚目が白紙ページのみが含まれていて、これまた印刷内容を 確認せず、コマンドラインでlprに出力する学生ばかりなので白紙の紙が増産される悲惨な状況にあります。