LPR/LPD: Extending the Control File Command Set

Glenn Trewitt <trewitt@pa.dec.com> Thu, 12 March 1992 23:26 UTC

Received: from nri.nri.reston.va.us by ietf.NRI.Reston.VA.US id aa00977; 12 Mar 92 18:26 EST
Received: from nri.reston.va.us by NRI.Reston.VA.US id aa29288; 12 Mar 92 18:26 EST
Received: from inet-gw-1.pa.dec.com by NRI.Reston.VA.US id aa29280; 12 Mar 92 18:26 EST
Received: by inet-gw-1.pa.dec.com; id AA13881; Thu, 12 Mar 92 15:27:33 -0800
Received: by nsl.pa.dec.com; id AA01357; Thu, 12 Mar 92 14:26:05 -0800
Received: by nsl.pa.dec.com; id AA01351; Thu, 12 Mar 92 14:26:00 -0800
Received: by miasma.pa.dec.com; id AA17797; Thu, 12 Mar 92 14:24:16 -0800
Message-Id: <9203122224.AA17797@miasma.pa.dec.com>
To: print-wg@pa.dec.com
Cc: Glenn Trewitt <trewitt@pa.dec.com>
Subject: LPR/LPD: Extending the Control File Command Set
Organization: DEC Network Systems Laboratory (Palo Alto, CA / UCH)
Phones: H:408-773-9239, W:415-688-1324, DTN:543-1324, Fax:415-324-2797
Date: Thu, 12 Mar 1992 14:24:15 -0800
From: Glenn Trewitt <trewitt@pa.dec.com>
X-Mts: smtp

There have been some discussions at the meetings about how to extend
the control file command set in a reasonable way.  What about the
following?  I will update new-lpd.{ps,txt} shortly.
	- Glenn


7.1 Extending the Control File Command Set
   The commands described here, except for 'k', 'x' and 'X', are the
   ones defined by the original BSD LPR/LPD implementation.  Many other
   control file commands have been implemented in other, later versions.
   We will not attempt to account for them here since, in some cases,
   that would require us to "bless" one usage over another.

   The "address space" of single printable characters is not large
   enough for effective extensions.  For this reason, we allow the
   definitions of the remaining single-character commands to remain
   undefined and therefore, implementation-dependent.  We recommend that
   control file commands that are not understand by a printing daemon be
   logged with other job messages and ignored.  Processing of the job
   should proceed on a "best-effort" basis.

   The 'X' and 'x' commands are defined to allow command extension,
   providing a much larger set of available commands.  We do not define
   any naming authority, but rely on implementors communicating among
   themselves and documenting what they've done to provide
   interoperability.  The larger command space should reduce the
   likelyhood of collisions.


8.17 X - Extended Print Option

       +---+------ +----+------------+----+
       | X | ident | SP | options... | LF |
       +---+-------+----+------------+----+
       Command code   'X'
       Operand 1      Extension identifier
       Remainder      Extension-specific options

   This command allows for print option extensions to be made to
   cooperating clients and servers.  The extension identifier is chosen
   by the implementor of the extension.  It should be expressive enough
   to be distinct from other identifiers that might be chosen by other
   implementors.

   The remainder of the line, after the space, may consist of any
   characters except LF.  The interpretation of the options is up to the
   implementor of the option.  If many extensions are to be made, we
   recommend that a single extension identifier be chosen, with the

   For example, suppose that an implementation wishes to use LPR/LPD to
   transport ISO Document Printing Architecture print jobs.  ISO DPA has
   dozens of attributes that may be chosen.  Rather than clutter up the
   extension name space with these attribute names, they might choose an
   extension identifier "ISO-DPA" and let the remainder of the line be
   white-space separated attribute-value pairs.

   The implementation of the 'X' command and any identifiers by a daemon
   is optional.  Extensions that are not recognized should be logged
   with other job messages and ignored.




10.12 x - Extended Print Command

       +---+------ +----+------+----+
       | x | ident | SP | file | LF |
       +---+-------+----+------+----+
       Command code   'x'
       Operand 1      Extension identifier
       Operand 2      File to print

   This command allows for file type extensions to be made to
   cooperating clients and servers.  The extension identifier is chosen
   by the implementor of the extension.  It should be expressive enough
   to be distinct from other identifiers that might be chosen by other
   implementors.

   For example, suppose someone wants to be able to spool "TIFF" files
   directly, and have the system do the conversion.  The extension
   identifier "tiff" might be chosen:

       xtiff dfA123user.bigco.com

   The implementation of the 'x' command and any identifiers by a daemon
   is optional.  Extensions that are not recognized should be logged
   with other job messages and ignored.  This will result in the file
   not being printed.