#! /usr/bin/perl -w use strict ; use vars qw( $SRCFILE $PRINTER $ToPsCmd $Dir $Sig $Copies $Collate) ; # Change the value of $Sig for a different book "signature" # It must a multiple of 4 $Sig=8 ; $ToPsCmd="/System/Library/Printers/Libraries/convert" ; foreach (@ARGV) { m#/tmp/printing# && ($SRCFILE=$_ , s/(.*\/).*/$1/ , $Dir = $_) ; /(DestinationPrinterID=)([^\s]*)\s/ && ($PRINTER=$2) ; /(PMCopies..n.=)([0-9]*)([^0-9])/ && ($Copies=$2) ; /(PMCopyCollate..b.=)([a-z,A-Z]*)/ && ($Collate=$2) ; } ; system("$ToPsCmd -f \"$SRCFILE\" -o \"$Dir\"/ToPS.ps -j application/postscript") ; system("psbook -s$Sig \"$Dir\"/ToPS.ps | lpr -P$PRINTER -# $Copies -o sides=two-sided-short-edge -o number-up=2 -o Collate=$Collate") ;