Failure to Print Multiple Copiee with Raw Option

Don Badrak dbadrak at tco.census.gov
Mon Sep 15 09:10:00 PDT 2008


> Don Badrak wrote:
> > ...
> > Do I need to drop the number of copies somehow before they get passed off to the next filter or backend?  I'd like for a fix by HP firmware to all of a sudden not end up getting n^2 copies if I put in the PJL code.
>
> No, as soon as you provide your filter, it is responsible for copy
> generation.

I've created this script.

### start-of-script
#!/bin/bash

# this handles the case where the backend device can accept raw PDF but
# doesn't properly print out multiple copies when using raw mode.  This
# appears to be limited to the HP DesignJet 4500ps plotter series. Place
# this line in the PPD file for each printer:
#
#     *cupsFilter: "application/pdf 0 pdfraw"
#
# this will send out the PJL to print out the right number of copies.
#
# filter job user title num-copies options [ filename ]

jobnumber=$1
user=$2
title=$3
copies=$4
options=$5
filename=$6
hostname=`hostname -s`

if [ $copies -gt 999 -o $copies -lt 1 ]
then
   echo "INFO: copies out of range (1 .. 999), using default of 1"
   copies=1
fi

# See if we have a filename on the command-line...
if test -z "$filename"; then
        ifile="-"
else
        ifile="$filename"
fi

echo "DEBUG: Sending PJL to set COPIES=$copies" 1>&2

printf "\e%%-12345X at PJL JOB NAME=\"${jobnumber} ${title}\"\r\n"
printf "@PJL SET COPIES = $copies\r\n"
printf "@PJL SET USERNAME = \"${user}@${hostname}\"\r\n"
printf "@PJL ENTER LANGUAGE = PDF\r\n"
echo "DEBUG: Sending PDF file $ifile" 1>&2
cat $ifile
printf "\e%%-12345X at PJL EOJ\r\n"

exit
### end-of-script

It works great! Thanks.  Now, on the web interface, it even shows me the  username and the job name.

There is one slight problem -- it no longer logs to the /var/log/cups/page_log when it completes.  Is there something I'm missing in the script? Thanks.

Don




More information about the cups mailing list