Compatibility and Interaction with System

Transport Support

Job Operation ID's

Operation ID

Transport

LPR transport

CUPS transport
minimal compliant BSD LPRng n/a
APS_OP_JCANCEL no yes yes yes
APS_OP_JDELETE no yes yes yes
APS_OP_JPAUSE no no no yes
APS_OP_JRESUME no no no yes
APS_OP_JSTORENOW no no no no
APS_OP_JSTOREWHENCOMPLETE no no no no

Queue Operation ID's

Operation ID

Transport

LPR transport

CUPS transport
minimal compliant BSD LPRng n/a
APS_IS_QAUTODENYNEWJOBS no (false) maybe (false) yes yes
APS_IS_QAUTODISCARDNEWJOBS no (false) maybe (false) yes yes
APS_IS_QAUTOPAUSENEWJOBS no (false) maybe (false) yes yes
APS_IS_QREADY no (true) maybe (true) yes yes
APS_IS_QSUSPENDED no (false) maybe (false) yes yes
APS_OP_QAUTODENYNEWJOBS no no yes yes
APS_OP_QAUTODISCARDNEWJOBS no no no no
APS_OP_QAUTOPAUSENEWJOBS no no no yes
APS_OP_QNOAUTODENYNEWJOBS no no yes yes
APS_OP_QNOAUTODISCARDNEWJOBS no no no no
APS_OP_QNOAUTOPAUSENEWJOBS no no no yes
APS_OP_QPAUSEALLJOBS no no no yes
APS_OP_QPURGE no yes yes yes
APS_OP_QRESUME no no yes yes
APS_OP_QRESUMEALLJOBS no no no yes
APS_OP_QSUSPEND no no yes yes

Command-line Tool Support

BSD-style Line Printer Command Set: LPC

Parameter

BSD-style LPR Compatible Package

minimal (n/a) compliant (n/a) BSD LPRng CUPS
display status status <prt> status <prt>
resequence jobs by priority (push to top of list) topq <jobs> topq <jobs>
repeat a job redo <prt> <job>
move a job to another printer queue move <prt> <job> <target>
redirect all jobs to another printer queue redirect <prt> [<target>,off]
clean up temporary files clean
suspend printing stop <prt> stop <prt>
resume printing start <prt> start <prt>
hold job (pause) hold <prt> <job>
resume job release <prt> <job>
pause all jobs hold <prt> all
resume all jobs resume <prt> all
suspend and deny new jobs down <prt> down <prt>
resume and accept new jobs up <prt> up <prt>
deny new jobs (auto-deny) disable <prt> disable <prt>
accept new jobs (no auto-deny) enable <prt> enable <prt>
hold new jobs (auto-pause) holdall <prt>
don't pause hold jobs (no auto-pause) holdall <prt>
restart daemon restart <prt> kill <prt>
terminate job forcefully & kill daemon abort <prt>
reload printer database (printcap) reread <prt>
specify printer to use if not indicated -Pprinter[@host]
authenticate -A
verbose
version -V

Expected "lpc status" output in BSD mode:

$ lpc status {printer}
{printer}:
        queuing is enabled   / queuing is disabled
        printing is enabled  / printing is disabled
        no entries           / {#} entr{y/ies} in spool area
        no daemon present    / lp is ready and printing

Expected "lpc status" output in LPRng mode:

$ lpc status {printer}
 Printer          Printing Spooling Jobs  Server   Slave Redirect  Status
{printer@host}     enabled  enabled   #     pid#    pid#  none
{printer@host}    disabled disabled   #     pid#    pid#  none     (holdall)

BSD-style Line Printer Command Set: LPR

Parameter

BSD-style LPR Compatible Package

minimal compliant BSD LPRng CUPS
specify source [filename] else stdin [filename], else stdin [filename], else stdin [filename], else stdin
specify printer -Pprinter -Pprinter -Pprinter -Pprinter[@host]
specify number of copies -# -# -# or -K
enable binary printing -l -l -l or -b
remove original completion -r -r -r
suppress 'burst' header page -h -h -h
specify job name -Jname -Jname
specify job title -Ttitle -Ttitle
authenticate -A
set priority class -C[A-Z]
print immediately (while spooling) -k
verbose
version -V
version & copyright -VV

BSD-style Line Printer Command Set: LPRM

Parameter

BSD-style LPR Compatible Package

minimal (n/a) compliant BSD LPRng CUPS
specify jobs [job #[,...]] [job #[,...]] [job #[,...]]
specify users [user[,...]] [user[@host][,...]]
specify printer -Pprinter -Pprinter -Pprinter[@host]
purge queue - - -a
authenticate -A
verbose -V
version -V

BSD-style Line Printer Command Set: LPQ

Parameter

BSD-style LPR Compatible Package

minimal (n/a) compliant BSD LPRng CUPS
specify jobs [job #[,...]] [job #[,...]] [job #[,...]]
specify users [user[,...]] [user[@host][,...]]
specify printer -Pprinter -Pprinter -Pprinter[@host]
short summary list -s
verbose list -l -l -l
very verbose list -ll
extremely verbose list -v
authenticate -A
version -V

Expected "lpq -l" output in BSD or Compliant mode:

$ lpr -l -P{printer} [job #]
{printer}
Warning: {printer} is down:
Warning: {printer} queue is turned off
Warning: no daemon present

{owner}: {rank}                                      [job ###{hostname}]
         {name}                                      {size} bytes
         {name}                                      {size} bytes

Where <rank> is one of: "active", "1st", "2nd", "3rd", "4th", "#th".

Expected "lpq -v" output in LPRng mode:

$ lpq -v -P{printer} {job #}
Printer: {printer}@{spoolHost}
Printing: yes
Aborted: yes
Spooling: yes
Queue: 4 printable jobs          / no printable jobs in queue
                                 / 1 printable job
 Holding: 1 held jobs in queue
Server: pid {pid} active, Unspooler: pid {pid} active
Server: no server active
Status: {some status string}
Filter_status: {some status string}
Job: {ownerName}@{jobHost}+{job #} status= {status}
Job: {ownerName}@{jobHost}+{job #} size= {size bytes}
Job: {ownerName}@{jobHost}+{job #} time= {hh}:{mm}:{ss}
Job: {ownerName}@{jobHost}+{job #} CONTROL=
- {series of control tag lines here all prefixed with '-'}
Job: {ownerName}@{jobHost}+{job #} HOLDFILE=
- {series of holdfile tag lines here all prefixed with '-'}

{status} one of:

redirect->{host} (APS_JOB_QUEUEING) redirecting to {host}
{order} (order = #) job is #th in line to be printed
active (order = 0) job is pending and server is up
stalled(#sec) (order = 0) job stalled for # secs
hold (APS_JOB_PAUSED) job has been held
class (APS_JOB_PAUSED) job held by class restrictions
done (APS_JOB_COMPLETED) job has finished
ERROR: {string} (APS_JOB_FAILED) job stopped on an error
remove (APS_JOB_DISCARDED) job has been removed