#!/bin/sh # cupless [-2t] [-n #] [-r FROM-TO] [-P PRINTER] PDFS... - tiny PJL printer driver duplex=OFF qty=1 user=$(whoami) range=- printcmd=cat fmtcmd=cat fmttxt() { paps "$@" | ps2pdf - - } while getopts 2tn:r:P: name do case $name in 2) duplex=ON ;; n) qty=$((0+OPTARG)) ;; r) range=$OPTARG ;; P) printcmd="nc $OPTARG 9100" ;; t) fmtcmd="fmttxt" ;; ?) printf "Usage: %s: [-2] [-n #] [-r FROM-TO] [-P PRINTER] PDFS...\n" $0 1>&2 exit 1;; esac done start=${range%%-*} start=${start:+START=$start} end=${range##*-} end=${end:+END=$end} shift $(($OPTIND-1)) { printf '\033%%-12345X@PJL @PJL JOB NAME="%s printing" %s %s @PJL SET DUPLEX=%s @PJL SET QTY=%s @PJL ENTER LANGUAGE = PDF ' "$user" "$start" "$end" $duplex $qty $fmtcmd "$@" printf '\033%%-12345X@PJL @PJL EOJ NAME="%s done printing" \033%%-12345X' "$user" } | $printcmd