<?Pub UDT _bookmark _target?><?Pub UDT __target_1 _target?><?Pub UDT registeredtm trademark?><?Pub EntList bull rArr sect?><?Pub CX solbook(book(title()bookinfo()chapter()chapter()?><chapter id="printref-76596"><?Pub Tag atict:info tracking="on" ref="1"?><?Pub Tag
atict:user user="jonj" fullname="Juanita Heieck"?><?Pub Tag atict:user
user="jh118764" fullname="Juanita Heieck"?><?Pub Tag atict:user user="wsm"
fullname=""?><title>Printing in the Solaris Operating System (Reference)</title><highlights><itemizedlist><para>This chapter provides the following reference information for the following
features:</para><listitem><para><olink targetptr="gdtev" remap="internal">Solaris Print Manager</olink></para>
</listitem><listitem><para><olink targetptr="printref-18623" remap="internal">LP Print Service</olink></para>
</listitem><listitem><para><olink targetptr="ppdref-1" remap="internal">Using PPD Files To Set Up Printers</olink></para>
</listitem><listitem><para><olink targetptr="geqnf" remap="internal">PPD File Management Utility</olink></para>
</listitem><listitem><para><olink targetptr="gdkmc" remap="internal">How PAPI Is Implemented
in the Solaris OS</olink></para>
</listitem>
</itemizedlist>
</highlights><sect1 id="gdtev"><title>Solaris Print Manager</title><para>This section includes reference information that pertains to using the
Solaris Print Manager graphical user interface (GUI), also referred to as
Print Manager (<command>printmgr</command>), to set up and administer printing
services and printers.</para><sect2 id="gdtgy"><title>Printer
Definitions You Can Set With Solaris Print Manager</title><indexterm><primary>Solaris Print Manager</primary><secondary>modifications to printer definitions</secondary>
</indexterm><itemizedlist><para>The following are available printer definitions when using Solaris Print
Manager to set up and administer printing services and printers:</para><listitem><para>The Use PPD files attribute is the default when you create
a new print queue in Solaris Print Manager. If you are setting up a printer
that does not use PPD files, deselect the attribute by removing the checkmark
from the check box. To reselect this attribute, recheck the check box.</para><note><para>If Solaris Print Manager cannot locate a <filename>ppdcache</filename> file
to use, the Use PPD files attribute is grayed-out.</para>
</note>
</listitem><listitem><para>If you create a new print queue or modify an existing print
queue with PPD files by using Solaris Print Manger, you cannot assign the
printer type or file content type printer definitions. However, if you do
not use PPD files when creating a print queue, you can assign these printer
definitions.</para>
</listitem><listitem><para>When you create a new print queue or modify an existing print
queue with PPD files, the following Solaris Print Manager screens are available:</para><itemizedlist><listitem><para>New Attached Printer</para>
</listitem><listitem><para>Modify Printer Properties (for an attached printer)</para>
</listitem><listitem><para>New Network Printer</para>
</listitem><listitem><para>Modify Printer Properties (for a network printer)</para>
</listitem>
</itemizedlist><para>For these screens, when creating a print queue with PPD files, you are
required to provide the following information:</para><itemizedlist><listitem><para>Printer make</para>
</listitem><listitem><para>Printer model</para>
</listitem><listitem><para>Printer driver</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist><para><olink targetptr="gdtga" remap="internal">Table&nbsp;11&ndash;1</olink> describes the
printer definitions that are used by Solaris Print Manager, and their availability,
depending on the Solaris software release that you are running.</para><note><para>The definitions for the printer make, printer model, and printer
driver are only available when you create a print queue by using the Use PPD
files option in Solaris Print Manager.</para>
</note><table frame="all" id="gdtga"><title>Printer Definitions Used by Solaris Print
Manager</title><tgroup cols="3" colsep="1" rowsep="1"><?PubTbl tgroup dispwid="843.00px"?><colspec colname="colspec2" colwidth="30.69*"/><colspec colname="colspec3" colwidth="32.48*"/><colspec colname="colspec4" colwidth="35.82*"/><thead><row><entry><para>Printer Definition</para>
</entry><entry><para>Available in Solaris 9 Release?</para>
</entry><entry><para>Available in the Solaris 10 Release?</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>Printer Name</literal></para>
</entry><entry><para>Available</para>
</entry><entry><para>Available</para>
</entry>
</row><row><entry><para><literal>Printer Server</literal></para>
</entry><entry><para>Available</para>
</entry><entry><para>Available</para>
</entry>
</row><row><entry><para><literal>Description</literal></para>
</entry><entry><para>Applicable</para>
</entry><entry><para>Applicable</para>
</entry>
</row><row><entry><para><literal>Printer Port</literal></para>
</entry><entry><para>Available, for attached printers</para>
</entry><entry><para>Available, for attached printers</para>
</entry>
</row><row><entry><para><literal>Printer Type</literal></para>
</entry><entry><para>Available</para><para>Not available by default in the Solaris 9 9/04 release.</para>
</entry><entry><para>Available, by deselecting the Use PPD files attribute in Print Manager
drop-down menu</para>
</entry>
</row><row><entry><para><literal>File Content Type</literal></para>
</entry><entry><para>Available</para><para>Not available by default in the Solaris 9 9/04 release</para>
</entry><entry><para>Available, by deselecting the Use PPD files attribute in Print Manager
drop-down menu</para>
</entry>
</row><row><entry><para><literal>Printer Make</literal></para>
</entry><entry><para>Not available</para><para>Yes, available in the Solaris 9 9/04 release</para>
</entry><entry><para>Available</para>
</entry>
</row><row><entry><para><literal>Printer Model</literal></para>
</entry><entry><para>Not available</para><para>Available in the Solaris 9 9/04 release</para>
</entry><entry><para>Available</para>
</entry>
</row><row><entry><para><literal>Printer Driver</literal></para>
</entry><entry><para>Not available</para><para>Available in the Solaris 9 9/04 release</para>
</entry><entry><para>Available</para>
</entry>
</row><row><entry><para><literal>Fault Notification</literal></para>
</entry><entry><para>Available</para>
</entry><entry><para>Available</para>
</entry>
</row><row><entry><para><literal>Destination</literal></para>
</entry><entry><para>Available for a network printer</para>
</entry><entry><para>Available for a network printer</para>
</entry>
</row><row><entry><para><literal>Protocol</literal></para>
</entry><entry><para>Available for a network printer</para>
</entry><entry><para>Available for a network printer</para>
</entry>
</row><row><entry><para><literal>Options</literal></para>
</entry><entry><para>Available</para>
</entry><entry><para>Available</para>
</entry>
</row><row><entry><para><literal>User Access List</literal></para>
</entry><entry><para>Available</para>
</entry><entry><para>Available</para>
</entry>
</row><row><entry><para><literal>Default Printer</literal></para>
</entry><entry><para>Available</para>
</entry><entry><para>Available</para>
</entry>
</row><row><entry><itemizedlist><listitem><para><literal>Always Print Banner</literal></para>
</listitem><listitem><para><literal>User Selectable - Default=on</literal></para>
</listitem><listitem><para><literal>Never Print Banner</literal></para>
</listitem>
</itemizedlist>
</entry><entry><para> <literal>Always Print Banner</literal> (Default option)</para><para></para><para><literal>User Selectable - Default=on</literal> (Available when <literal>Always
Print Banner</literal> option is deselected)</para><para><literal>Never Print Banner</literal> (Not available)</para>
</entry><entry><para>Available (Default option for Solaris 10 release)</para><para><literal>User Selectable - Default=on</literal> </para><para><literal>Never Print Banner</literal></para><para>These options are located in a pull-down menu within Solaris Print Manager.</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>For a detailed description of the printer make, printer model, and printer
driver definitions, see <olink targetptr="printplan-30" remap="internal">Setting Printer Definitions</olink>.</para><note><para>Using PPD files is a per-queue configuration option and is not
a requirement for adding a new printer. Also, PPD files are not required for
printers that already contain the RIP feature.</para>
</note>
</sect2>
</sect1><sect1 id="printref-18623"><title>LP Print Service</title><indexterm id="printref-ix164"><primary>LP print service</primary><secondary>structure of</secondary>
</indexterm><para>This section describes the directory structure, files, and logs of the
LP print service.</para><sect2 id="printref-92628"><title>LP Print Service Commands</title><note><para>The LP Print Service client commands have been modified to be
a consumer of the FSG OpenPrinting Open Standard Print API (PAPI). These print
commands are layered on top of the PAPI. See <olink targetptr="gdkmc" remap="internal">How PAPI Is Implemented in the Solaris OS</olink> for
more information.</para>
</note><para>The following table lists frequently used LP print service commands. </para><table frame="topbot" id="printref-16924"><title>LP Print Service Commands</title><tgroup cols="3" colsep="0" rowsep="0"><colspec colname="column1" colwidth="108*"/><colspec colname="colspec1" colwidth="108.00*"/><colspec colname="colspec0" colwidth="108.00*"/><thead><row rowsep="1"><entry><para>Command</para>
</entry><entry><para>Task</para>
</entry><entry><para>Man Page</para>
</entry>
</row>
</thead><tbody><row><entry><para><command>enable</command></para>
</entry><entry><para>Activate a printer</para>
</entry><entry><para><olink targetdoc="refman" targetptr="enable-1" remap="external"><citerefentry><refentrytitle>enable</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry>
</row><row><entry><para><command>cancel</command></para>
</entry><entry><para>Cancel a print request</para>
</entry><entry><para><olink targetdoc="refman" targetptr="cancel-1" remap="external"><citerefentry><refentrytitle>cancel</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry>
</row><row><entry><para><command>lp</command></para>
</entry><entry><para>Send one or more file or files to a printer</para>
</entry><entry><para><olink targetdoc="refman" targetptr="lp-1" remap="external"><citerefentry><refentrytitle>lp</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry>
</row><row><entry><para><command>lpstat</command></para>
</entry><entry><para>Report the status of the LP print service</para>
</entry><entry><para><olink targetdoc="refman" targetptr="lpstat-1" remap="external"><citerefentry><refentrytitle>lpstat</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry>
</row><row><entry><para><command>disable</command></para>
</entry><entry><para>Deactivate on or more printers</para>
</entry><entry><para><olink targetdoc="refman" targetptr="enable-1" remap="external"><citerefentry><refentrytitle>enable</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry>
</row><row><entry><para><command>accept</command></para>
</entry><entry><para>Permit print requests to be queued for a specific destination</para>
</entry><entry><para><olink targetdoc="refman" targetptr="accept-1m" remap="external"><citerefentry><refentrytitle>accept</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry>
</row><row><entry><para><command>reject</command></para>
</entry><entry><para>Prevent print requests from being queued for a specific destination</para>
</entry><entry><para><olink targetdoc="refman" targetptr="accept-1m" remap="external"><citerefentry><refentrytitle>accept</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry>
</row><row><entry><para><command>lpadmin</command></para>
</entry><entry><para>Set up or change a printer configuration</para>
</entry><entry><para><olink targetdoc="refman" targetptr="lpadmin-1m" remap="external"><citerefentry><refentrytitle>lpadmin</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry>
</row><row><entry><para><command>lpfilter</command></para>
</entry><entry><para>Set up or change filter definitions</para>
</entry><entry><para><olink targetdoc="refman" targetptr="lpfilter-1m" remap="external"><citerefentry><refentrytitle>lpfilter</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry>
</row><row><entry><para><command>lpforms</command></para>
</entry><entry><para>Set up or change preprinted forms</para>
</entry><entry><para><olink targetdoc="refman" targetptr="lpforms-1m" remap="external"><citerefentry><refentrytitle>lpforms</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry>
</row><row><entry><para><command>lpadmin</command></para>
</entry><entry><para>Mount a form</para>
</entry><entry><para><olink targetdoc="refman" targetptr="lpadmin-1m" remap="external"><citerefentry><refentrytitle>lpadmin</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry>
</row><row><entry><para><command>lpmove</command></para>
</entry><entry><para>Move output requests from one destination to another destination</para>
</entry><entry><para><olink targetdoc="refman" targetptr="lpmove-1m" remap="external"><citerefentry><refentrytitle>lpmove</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry>
</row><row><entry><para><command>lpsched</command></para>
</entry><entry><para>Start the LP print service scheduler</para>
</entry><entry><para><olink targetdoc="refman" targetptr="lpsched-1m" remap="external"><citerefentry><refentrytitle>lpsched</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry>
</row><row><entry><para><command>lpshut</command></para>
</entry><entry><para>Stop the LP print service scheduler</para>
</entry><entry><para><olink targetdoc="refman" targetptr="lpshut-1m" remap="external"><citerefentry><refentrytitle>lpshut</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry>
</row><row><entry><para><command>lpusers</command></para>
</entry><entry><para>Set or change the default priority and priority limits that can be requested
of the LP print service by users </para>
</entry><entry><para><olink targetdoc="refman" targetptr="lpusers-1m" remap="external"><citerefentry><refentrytitle>lpusers</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>For information about Solaris print commands that have been modified
for use with the PAPI, see <olink targetptr="gdkmc" remap="internal">How PAPI Is Implemented in the Solaris OS</olink>.</para>
</sect2><sect2 id="printref-34"><title>Daemons and LP Internal Files</title><para><indexterm id="printref-ix174"><primary>LP print service</primary><secondary>daemons</secondary></indexterm><indexterm id="printref-ix175"><primary>daemons</primary><secondary>print</secondary></indexterm><indexterm id="printref-ix177"><primary>print daemons</primary></indexterm><indexterm id="printref-ix179"><primary>files</primary><secondary>used by LP print service</secondary></indexterm><indexterm id="printref-ix180"><primary>LP print service</primary><secondary>files used by</secondary></indexterm>The <filename>/usr/lib/lp</filename> directory
contains daemons and files used by the LP print service, as described in the
following table.</para><table frame="topbot" id="printref-86958"><title>Contents of the <filename>/usr/lib/lp</filename> Directory</title><tgroup cols="3" colsep="0" rowsep="0"><colspec colname="column1" colwidth="79*"/><colspec colname="column2" colwidth="100*"/><colspec colname="column3" colwidth="180*"/><thead><row rowsep="1"><entry><para>File</para>
</entry><entry><para>Type</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><filename>bin</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Contains files for generating printing alerts, slow filters, and queue
management programs.</para>
</entry>
</row><row><entry><para><filename>model</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Contains the standard printer interface program.</para>
</entry>
</row><row><entry><para><filename>postscript</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Contains all PostScript filter programs provided by the LP print service.
These filters come with descriptor files in the <filename>/etc/lp/fd</filename> directory.
These files tell the LP print service the characteristics of the filters and
where to locate them.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="printref-32"><title>LP Print Service Directories</title><para><indexterm id="printref-ix166"><primary>LP print service</primary><secondary>directories in</secondary></indexterm>The files of the LP print
service are distributed among the directories that are shown in the following
table.</para><table frame="topbot" id="printref-64046"><title>Directories for the LP Print
Service</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="column1" colwidth="108*"/><colspec colname="column2" colwidth="252*"/><thead><row rowsep="1"><entry><para>Directory</para>
</entry><entry><para>Contents</para>
</entry>
</row>
</thead><tbody><row><entry><para><filename>/usr/bin</filename></para>
</entry><entry><para>The LP print service user commands.</para>
</entry>
</row><row><entry><para><filename>/etc/lp</filename></para>
</entry><entry><para>A hierarchy of LP server configuration files.</para>
</entry>
</row><row><entry><para><filename>/usr/share/lib</filename></para>
</entry><entry><para>The <filename>terminfo</filename> database directory.</para>
</entry>
</row><row><entry><para><filename>/usr/lib/print</filename></para>
</entry><entry><para>The <command>lp</command> conversion scripts, <command>in.lpd</command> daemon,
and the <command>printd</command> daemon. The <command>printd</command> daemon
transfers all pending jobs in the<filename>/var/spool/print</filename> directory
once per minute. When no jobs are remaining to transfer, the <command>printd</command> daemon
exits.</para>
</entry>
</row><row><entry><para><filename>/usr/sbin</filename></para>
</entry><entry><para>The LP print service administrative commands</para>
</entry>
</row><row><entry><para><filename>/usr/lib/lp</filename></para>
</entry><entry><para>The <command>lpsched</command> program, binary files, PostScript filters,
and the <filename>model</filename> directory, which contains the
standard printer interface program.</para>
</entry>
</row><row><entry><para><filename>/var/lp/logs</filename></para>
</entry><entry><para>LP log files such as <filename>lpsched.</filename><replaceable>n</replaceable> (which includes messages from <literal>lpsched</literal>)
and <filename>requests.</filename><replaceable>n</replaceable> (which
includes information about completed print requests).</para>
</entry>
</row><row><entry><para><filename>/var/spool/lp</filename></para>
</entry><entry><para>The spooling directory where files are queued for printing.</para>
</entry>
</row><row><entry><para><filename>/var/spool/print</filename></para>
</entry><entry><para>The staging area for LP print service client-side requests.</para>
</entry>
</row><row><entry><para><filename>/etc/lp/model/uri</filename></para>
</entry><entry><para>The location of the interface script that process <replaceable>device-uri</replaceable> information.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="printref-11882"><title>LP Print Service Configuration Files</title><indexterm id="printref-ix167"><primary>LP print service</primary><secondary>configuration files in</secondary>
</indexterm><para>The <command>lpsched</command> daemon stores configuration information
 in the <filename>/etc/lp</filename> directory, as described in the following
table.</para><caution><para><indexterm id="printref-ix168"><primary>private interfaces</primary></indexterm><indexterm><primary>Expanded Printer Support</primary><secondary>private interfaces</secondary></indexterm><indexterm id="printref-ix169"><primary sortas="etc/lp directory:files in"><filename>/etc/lp</filename> directory</primary></indexterm>The configuration files listed in this table are private interfaces.
These files are subject to change in future releases. You should not build
software that relies on these files being in their current locations or that
relies on the data being in the format currently used. </para>
</caution><table frame="topbot" id="printref-69325"><title>Contents of the <filename>/etc/lp</filename> Directory</title><tgroup cols="3" colsep="0" rowsep="0"><colspec colname="column1" colwidth="87*"/><colspec colname="column2" colwidth="110*"/><colspec colname="column3" colwidth="162*"/><thead><row rowsep="1"><entry><para>File</para>
</entry><entry><para>Type</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><filename>classes</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Files identifying classes provided by the <command>lpadmin -c</command> command.</para>
</entry>
</row><row><entry><para><filename>fd</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Description of existing filters.</para>
</entry>
</row><row><entry><para><filename>filter.table</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Print filter look-up table.</para>
</entry>
</row><row><entry><para><filename>forms</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Location to put files for each form. Initially, this directory is empty.</para>
</entry>
</row><row><entry><para><filename>interfaces</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Printer interface program files.</para>
</entry>
</row><row><entry><para><filename>logs</filename></para>
</entry><entry><para>Link to <filename>/var/lp/logs</filename></para>
</entry><entry><para>Log files of printing activities.</para>
</entry>
</row><row><entry><para><filename>model</filename></para>
</entry><entry><para>Link to <filename>/usr/lib/lp/model</filename></para>
</entry><entry><para>The standard printer interface program.</para>
</entry>
</row><row><entry><para><filename>printers</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Directories for each local printer. Each directory contains configuration
information and alert files for an individual printer.</para>
</entry>
</row><row><entry><para><filename>pwheels</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Print wheel files or cartridge files.</para>
</entry>
</row><row><entry><para><filename>ppd</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Each local queue that is configured with a PPD file has a copy of the
PPD file placed here.</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para><indexterm id="printref-ix171"><primary sortas="etc/printcap file"><filename>/etc/printcap</filename> file</primary></indexterm>These configuration files
serve a function similar to the <filename>/etc/printcap</filename> file on
LPD-based print servers. </para><note><para>You can check the contents of the configuration files, but you
should not edit these files directly. Instead, use the <command>lpadmin</command> command
to make configuration changes. Your changes are written to the configuration
files in the <filename>/etc/lp</filename> directory. The <filename>lpsched</filename> daemon
administers and updates the configuration files.</para>
</note><para><indexterm id="printref-ix172"><primary sortas="etc/lp/printers directory"><filename>/etc/lp/printers</filename> directory</primary></indexterm>The <filename>/etc/lp/printers</filename> directory has a subdirectory for each local printer that is known
to the system. The following example shows the <filename>/etc/lp/printers</filename> subdirectories
of printers <literal>sparc1</literal> and <literal>luna</literal>. </para><screen>$ <userinput>ls -l /etc/lp/printers</userinput>
drwxrwxr-x 2 lp lp 512 Jan 23 23:53 luna
drwxrwxr-x 2 lp lp 512 Jan 11 17:50 sparc1</screen><para>The following table describes the files within each printer-specific
directory.</para><informaltable frame="topbot"><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="50*"/><colspec colname="colspec1" colwidth="50*"/><thead><row rowsep="1"><entry><para>File Name</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><filename>alert.sh</filename></para>
</entry><entry><para>Shell to execute in response to alerts</para>
</entry>
</row><row><entry><para><filename>alert.vars</filename></para>
</entry><entry><para>Alert variables</para>
</entry>
</row><row><entry><para><filename>configuration</filename></para>
</entry><entry><para>Configuration file</para>
</entry>
</row><row><entry><para><filename>users.deny</filename></para>
</entry><entry><para>List of users to whom printer access is denied</para>
</entry>
</row><row><entry><para><filename>comment</filename></para>
</entry><entry><para>Printer description</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><para>The configuration file for the printer <command>luna</command>, <filename>/etc/lp/printers/luna/configuration</filename>, would typically appear as follows:</para><screen>Banner: on: Always
Content types: PS
Device: /dev/term/b
Interface: /usr/lib/lp/model/standard
Printer type: PS
Modules: default</screen>
</sect2><sect2 id="printref-33"><title>The <filename>terminfo</filename> Database</title><indexterm id="printref-ix173"><primary>printer type</primary><secondary>defined in <filename>terminfo</filename> database</secondary>
</indexterm><para>The <filename>/usr/share/lib</filename> directory contains the <filename>terminfo</filename> database directory. This directory contains definitions for many
types of terminals and printers. The LP print service uses information in
the <filename>terminfo</filename> database to perform the following tasks:</para><itemizedlist><listitem><para>Initializes a printer</para>
</listitem><listitem><para>Establishes a selected page size, character pitch, line pitch,
and character set</para>
</listitem><listitem><para>Communicates the sequence of codes to a printer</para>
</listitem>
</itemizedlist><para>Each printer is identified in the <filename>terminfo</filename> database
with a short name. For a description of the structure of the <filename>terminfo</filename> database,
see <olink targetptr="printplan-15" remap="internal">Printer Type</olink>. If necessary, you
can add entries to the <filename>terminfo</filename> database, but doing so
is tedious and time-consuming. For more information, see <olink targetptr="printcust-11157" remap="internal">Adding a terminfo Entry for an Unsupported Printer</olink>.</para>
</sect2><sect2 id="printplan-17"><title>Printer Names in the <filename>terminfo</filename> Database</title><para>Information about each printer type is stored in the <filename>terminfo</filename> database
(<filename>/usr/share/lib/terminfo</filename>). This information includes
the printer capabilities and initialization control data. The printer you
install must correspond to an entry in the <filename>terminfo</filename> database.</para><screen>$ <userinput>pwd</userinput>
/usr/share/lib/terminfo
$ <userinput>ls</userinput>
1  3  5  7  9  B  H  P  a  c  e  g  i  k  m  o  q  s  u  w  y
2  4  6  8  A  G  M  S  b  d  f  h  j  l  n  p  r  t  v  x  z
$ </screen><para>Each subdirectory contains compiled database entries for terminals or
printers. The entries are organized by the first letter of the printer or
terminal type. For example, if you have an Epson printer, look in the <filename>/usr/share/lib/terminfo/e</filename> directory to find your particular model of Epson printer.</para><screen>$ <userinput>cd /usr/share/lib/terminfo/e</userinput>
$ <userinput>ls</userinput>
emots           ep2500+high   ep48            ergo4000      exidy2500
env230          ep2500+low    epson2500       esprit
envision230     ep40          epson2500-80    ethernet
ep2500+basic    ep4000        epson2500-hi    ex3000
ep2500+color    ep4080        epson2500-hi80  exidy
$ </screen><para>The entries for Epson printers begin with <literal>epson</literal>.</para><para>If you have an NEC printer, look in the <filename>/usr/share/lib/terminfo/n</filename> directory for your NEC printer model.</para><screen>$ <userinput>cd /usr/share/lib/terminfo/n</userinput>
$ <userinput>ls</userinput>
ncr7900        ncr7900iv      netronics      network        nuc
ncr7900-na     ncr7901        netty          netx           nucterm
ncr7900i       nec            netty-Tabs     newhp
ncr7900i-na    net            netty-vi       newhpkeyboard
$ </screen><para>The <literal>nec</literal> entry in this directory is for the NEC printer. </para>
</sect2><sect2 id="printref-22672"><title>LP Print Service Log Files</title><indexterm id="printref-ix181"><primary>log files</primary><secondary>for LP print service</secondary>
</indexterm><para><indexterm id="printref-ix182"><primary>LP print service</primary><secondary>log files</secondary></indexterm>The LP print service maintains
two sets of log files that are described in the following table.</para><informaltable frame="topbot"><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec2" colwidth="50*"/><colspec colname="colspec3" colwidth="50*"/><thead><row rowsep="1"><entry><para>Log File Name</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><command>syslogd</command></para>
</entry><entry><para>Set <literal>lpr.debug</literal> in <filename>/etc/syslog.conf</filename> to enable LP print service logging</para>
</entry>
</row><row><entry><para><filename>/var/spool/lp</filename></para>
</entry><entry><para>A list of current requests that are in the print queue</para>
</entry>
</row><row><entry><para><filename>/var/lp/logs/requests</filename></para>
</entry><entry><para>An ongoing history of print requests</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2><sect2 id="printref-35"><title>Print Queue Logs</title><indexterm id="printref-ix183"><primary>print queue</primary><secondary>log of</secondary>
</indexterm><indexterm id="printref-ix184"><primary>log files</primary><secondary>print queue</secondary>
</indexterm><para><indexterm id="printref-ix185"><primary sortas="var/spool/lp/tmp directory"><filename>/var/spool/lp/tmp</filename> directory</primary></indexterm><indexterm id="printref-ix186"><primary sortas="var/spool/lp/requests directory"><filename>/var/spool/lp/requests</filename> directory</primary></indexterm>The scheduler for each system keeps
a log of print requests in the <filename>/var/spool/lp/tmp/</filename><replaceable>system</replaceable> and <filename>/var/spool/lp/requests/</filename><replaceable>system</replaceable> directories. Each print request has two files, one file
in each directory, that contain information about the request. The information
in the <filename>/var/spool/lp/requests/</filename><replaceable>system</replaceable> directory
can be accessed only by superuser or <literal>lp</literal>. The information
in the <filename>/var/spool/lp/tmp/</filename><replaceable>system</replaceable> directory
can be accessed only by the user who submitted the request, superuser, or <literal>lp</literal>.</para><para>The following example shows the contents of the <filename>/var/spool/lp/tmp/starbug</filename> directory:</para><screen>$ <userinput>ls /var/spool/lp/tmp/starbug</userinput>
5     5-0
# <userinput>cat 5-0</userinput>
C 1
D print1
F /etc/profile
P 20
T /etc/profile
t simple
U root
s 0000
v 2</screen><para>These files remain in their directories only as long as the print request
is in the queue. Once the print request is finished, the information in the
files is combined and appended to the <filename>/var/lp/logs/requests</filename> file.
This file is described in the next section.</para><para>Use the information in the <filename>/var/spool/lp/logs</filename> directory
if you need to track the status of a print request that is currently in the
queue.</para>
</sect2><sect2 id="printref-36"><title>History Log Files</title><indexterm id="printref-ix187"><primary>history log (print requests)</primary>
</indexterm><indexterm id="printref-ix188"><primary>log files</primary><secondary>print request history log</secondary>
</indexterm><para>The LP print service records a history of printing services in two log
files, <filename>lpsched</filename> and <filename>requests</filename>. These
log files are located in the <filename>/var/lp/logs</filename> directory.
You can use the information in these log files to diagnose and troubleshoot
printing problems. An example of the contents of the <filename>/var/lp/logs</filename> directory
is as follows:</para><screen># <userinput>cd /var/lp/logs</userinput>
# <userinput>ls</userinput>
lpsched.1    requests    requests.2
lpsched      lpsched.2   requests.1
# </screen><para>The two most important log files for troubleshooting are the following:</para><itemizedlist><listitem><para>The <filename>lpsched</filename> log file &mdash; Contains
information about local printing requests.</para>
</listitem><listitem><para>The <filename>requests</filename> log file &mdash; Contains
information about print requests that are completed and no longer in the print
queue.</para>
</listitem>
</itemizedlist><para>The <filename>requests</filename> log file has a simple structure so
that you can extract data using common UNIX shell commands. Requests are listed
in the order they are printed. They are also separated by lines showing their
request IDs. Each line below the separator line, the line that starts with
=, is marked with a single letter that identifies the kind of information
contained in that line. Each letter is separated from the data by a single
space.</para><para>The following example shows the contents of a <filename>requests</filename> log
file:</para><screen># <userinput>pwd</userinput>
/var/lp/logs
# <userinput>tail requests.2</userinput>
= print1-3, uid 0, gid 1, size 206662, Wed Mar 14 08:56:30 MST 2003
z print1
C 1
D print1
F /usr/dict/words
P 20
T /usr/dict/words
t simple
U root
s 0x0014
v 2
#</screen><para><indexterm id="printref-ix189"><primary>print requests</primary><secondary>log</secondary></indexterm><indexterm id="printref-ix190"><primary>log files</primary><secondary>codes in request log</secondary></indexterm>The
following table shows the letter codes and the content of their corresponding
lines in the <filename>requests</filename> log file.  </para><table frame="topbot" id="printref-68125"><title>Codes in the <filename>requests</filename> Log
File</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="column1" colwidth="71*"/><colspec colname="column2" colwidth="288*"/><thead><row rowsep="1"><entry><para>Letter</para>
</entry><entry><para>Content of Line</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>=</literal></para>
</entry><entry><para>The separator line, which contains the following items: request ID,
user ID (UID), and group IDs (GIDs) of the user, the total number of bytes
in the original (unfiltered) file size, and the time when the request was
queued.</para>
</entry>
</row><row><entry><para><literal>z</literal></para>
</entry><entry><para>The name of the printer.</para>
</entry>
</row><row><entry><para><literal>C</literal></para>
</entry><entry><para>The number of copies printed.</para>
</entry>
</row><row><entry><para><literal>D</literal></para>
</entry><entry><para>The printer or class destination, or the word <literal>any</literal>.</para>
</entry>
</row><row><entry><para><literal>F</literal></para>
</entry><entry><para>The name of the file printed. The line is repeated for each file printed.
Files were printed in the order shown.</para>
</entry>
</row><row><entry><para><literal>f</literal></para>
</entry><entry><para>(Optional) The name of the form used.</para>
</entry>
</row><row><entry><para><literal>H</literal></para>
</entry><entry><para>(Optional) One of three types of special handling: resume, hold, and
immediate. </para>
</entry>
</row><row><entry><para><literal>N</literal></para>
</entry><entry><para>(Optional) The type of alert used when the print request was successfully
completed. The type is the letter <literal>M</literal> if the user
was notified by email or <literal>W</literal> if the user was notified
by a message to the terminal.</para>
</entry>
</row><row><entry><para><literal>O</literal></para>
</entry><entry><para>(Optional) The printer-dependent <option>o</option> options.
For example, <literal>nobanner</literal>.</para>
</entry>
</row><row><entry><para><literal>P</literal></para>
</entry><entry><para>The priority of the print request.</para>
</entry>
</row><row><entry><para><literal>p</literal></para>
</entry><entry><para>The list of pages printed.</para>
</entry>
</row><row><entry><para><literal>r</literal></para>
</entry><entry><para>(Optional) A single-letter line that is included if the user asked for &ldquo;raw&rdquo;
processing of the files with the <command>lp -r</command> command.</para>
</entry>
</row><row><entry><para><literal>S</literal></para>
</entry><entry><para>(Optional) The character set, print wheel, or cartridge used.</para>
</entry>
</row><row><entry><para><literal>T</literal></para>
</entry><entry><para>The title placed on the banner page.</para>
</entry>
</row><row><entry><para><literal>t</literal></para>
</entry><entry><para>The type of content found in the files.</para>
</entry>
</row><row><entry><para><literal>U</literal></para>
</entry><entry><para>The name of the user who submitted the print request.</para>
</entry>
</row><row><entry><para><literal>s</literal></para>
</entry><entry><para>The outcome of the request, shown as a combination of individual bits
expressed in hexadecimal format. Several bits are used internally by the print
service. The bits and what they mean are described in the following table.</para>
</entry>
</row><row><entry><para><literal>v</literal></para>
</entry><entry><itemizedlist><listitem><para>0 &mdash; Identifies that the print job originated
from the <command>in.1pd</command> print daemon or another system on the network.</para>
</listitem><listitem><para>2 &mdash; Identifies that the print job originated
from the <command>/usr/bin/lp</command> or <command>/usr/ucb/lpr</command> commands.</para>
</listitem><listitem><para>1 &mdash; Identifies that the print job originated from an
older version of the printing software.</para>
</listitem>
</itemizedlist>
</entry>
</row><row><entry><para><literal>x</literal></para>
</entry><entry><para>(Optional) The slow filter used for the print request.</para>
</entry>
</row><row><entry><para><literal>Y</literal></para>
</entry><entry><para>(Optional) The list of special modes for the print filters used to print
the request.</para>
</entry>
</row><row><entry><para><literal>z</literal></para>
</entry><entry><para>(Optional) The printer used for the request. This printer differs from
the destination (the <literal>D</literal> line) if the request was
queued for any printer or a class of printers, or if the request was moved
to another destination.</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>The following table shows the outcome codes in the LP <filename>requests</filename> log
file and their descriptions.</para><table frame="topbot" id="printref-25174"><title>Outcome Codes in the <filename>requests</filename> Log File</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="column1" colwidth="108*"/><colspec colname="column2" colwidth="252*"/><thead><row rowsep="1"><entry><para>Outcome Code</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>0x0001</literal></para>
</entry><entry><para>The request was held pending resume.</para>
</entry>
</row><row><entry><para><literal>0x0002</literal></para>
</entry><entry><para>Slow filtering is running.</para>
</entry>
</row><row><entry><para><literal>0x0004</literal></para>
</entry><entry><para>Slow filtering finished successfully.</para>
</entry>
</row><row><entry><para><literal>0x0008</literal></para>
</entry><entry><para>The request is on the printer.</para>
</entry>
</row><row><entry><para><literal>0x0010</literal></para>
</entry><entry><para>Printing finished successfully.</para>
</entry>
</row><row><entry><para><literal>0x0020</literal></para>
</entry><entry><para>The request was held pending user change.</para>
</entry>
</row><row><entry><para><literal>0x0040</literal></para>
</entry><entry><para>The request was canceled.</para>
</entry>
</row><row><entry><para><literal>0x0080</literal></para>
</entry><entry><para>The request will print next.</para>
</entry>
</row><row><entry><para><literal>0x0100</literal></para>
</entry><entry><para>The request failed filtering or printing.</para>
</entry>
</row><row><entry><para><literal>0x0200</literal></para>
</entry><entry><para>The request is in transit to a remote printer (obsolete).</para>
</entry>
</row><row><entry><para><literal>0x0400</literal></para>
</entry><entry><para>The user will be notified.</para>
</entry>
</row><row><entry><para><literal>0x0800</literal></para>
</entry><entry><para>A notification is running.</para>
</entry>
</row><row><entry><para><literal>0x1000</literal></para>
</entry><entry><para>A remote system has accepted the request (obsolete).</para>
</entry>
</row><row><entry><para><literal>0x2000</literal></para>
</entry><entry><para>The administrator placed a hold on the request.</para>
</entry>
</row><row><entry><para><literal>0x4000</literal></para>
</entry><entry><para>The printer had to change filters.</para>
</entry>
</row><row><entry><para><literal>0x8000</literal></para>
</entry><entry><para>The request is temporarily stopped.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="printref-15219"><title>Spooling Directories</title><indexterm id="printref-ix191"><primary>spooling directory</primary><secondary>print service</secondary>
</indexterm><indexterm id="printref-ix192"><primary>printing</primary><secondary>spooling directory</secondary>
</indexterm><para><indexterm id="printref-ix193"><primary sortas="var/spool/lp directory"><filename>/var/spool/lp</filename> directory</primary></indexterm>Files queued for printing
are stored in the <filename>/var/spool/lp</filename> directory until they
are printed, which might be only seconds. The following table shows the contents
of the <filename>/var/spool/lp</filename> directory. </para><table frame="topbot" id="printref-74445"><title>Contents of the <filename>/var/spool/lp</filename> Directory</title><tgroup cols="3" colsep="0" rowsep="0"><colspec colname="column1" colwidth="88*"/><colspec colname="column2" colwidth="88*"/><colspec colname="column3" colwidth="220*"/><thead><row rowsep="1"><entry><para>File</para>
</entry><entry><para>Type</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><filename>SCHEDLOCK</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Lock file for the scheduler. Check for this file if the scheduler terminates
and will not restart.</para>
</entry>
</row><row><entry><para><filename>admins</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Link to <filename>/etc/lp</filename><command>.</command></para>
</entry>
</row><row><entry><para><filename>bin</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Link to <filename>/usr/lib/lp/bin</filename><command>.</command></para>
</entry>
</row><row><entry><para><filename>logs</filename></para>
</entry><entry><para>Link</para>
</entry><entry><para>Link to <filename>../lp/logs</filename> where completed print
requests are logged.</para>
</entry>
</row><row><entry><para><filename>model</filename></para>
</entry><entry><para>Link</para>
</entry><entry><para>Link to <filename>/usr/lib/lp/model</filename><command>.</command></para>
</entry>
</row><row><entry><para><filename>requests</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Directory that contains subdirectories for each configured printer where
print requests are logged until printed. Users cannot access this log.</para>
</entry>
</row><row><entry><para><filename>system</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>A print status file for the system.</para>
</entry>
</row><row><entry><para><filename>temp</filename></para>
</entry><entry><para>Link</para>
</entry><entry><para>Link to <filename>/var/spool/lp/tmp/</filename><replaceable>hostname</replaceable>, which contains the spooled requests.</para>
</entry>
</row><row><entry><para><filename>tmp</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Directory for each configured printer where print requests are logged
until printed. Changes to existing print requests are also recorded in this
directory.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="printref-53457"><title>Filtering Print Files</title><para><indexterm id="printref-ix202"><primary>print filters</primary><secondary>defined</secondary></indexterm>Print filters are programs on the print server that
convert the content of a queued file from one format to another format. </para><para><indexterm id="printref-ix203"><primary sortas="usr/lib/lp/postscript directory"><filename>/usr/lib/lp/postscript</filename> directory</primary></indexterm>A print filter can be as simple or as complex as needed.
The Solaris OS provides print filters in the <filename>/usr/lib/lp/postscript</filename> directory
that cover most situations where the destination printer requires the data
to be in PostScript format. If you need filters for nonPostScript printers,
you have to create the filters and add them to the systems that need filters. </para><para><indexterm id="printref-ix204"><primary sortas="etc/lp/fd directory"><filename>/etc/lp/fd</filename> directory</primary></indexterm>A set of <emphasis>print
filter descriptor files</emphasis> are provided in the <filename>/etc/lp/fd</filename> directory.
These descriptor files describe the characteristics of the filter (for example,
fast or slow filter). These description files point to the filter program
(for example, to <filename>/usr/lib/lp/postscript/postdaisy</filename>). </para>
</sect2><sect2 id="printref-41"><title>How the Printer Interface Program Works</title><para>The LP print service interacts with other parts of the Solaris OS. The
print service uses a standard printer interface program to do the following:</para><itemizedlist><listitem><para>Initialize the printer port, if necessary. The standard printer
interface program uses the <filename>stty</filename> command to initialize
the printer port.</para>
</listitem><listitem><para>Initialize the printer. The standard printer interface program
uses the <filename>terminfo</filename> database and the <literal>TERM</literal> shell
variable to find the appropriate control sequences.</para>
</listitem><listitem><para>Print a banner page, if necessary.</para>
</listitem><listitem><para>Print the correct number of copies specified by the print
request.</para>
</listitem>
</itemizedlist><para><indexterm id="printref-ix205"><primary>printer interface program</primary></indexterm><indexterm id="printref-ix206"><primary>LP print service</primary><secondary>interface program</secondary></indexterm><indexterm id="printref-ix207"><primary sortas="usr/lib/lp/model directory"><filename>/usr/lib/lp/model</filename> directory</primary></indexterm>The LP print service uses the standard
interface program, found in the <filename>/usr/lib/lp/model</filename> directory,
unless you specify a different program. You can create custom interface programs.
However, you must make sure that the custom program does not terminate the
connection to the printer or interfere with proper printer initialization.</para>
</sect2>
</sect1><sect1 id="ppdref-1"><title>Using PPD Files To Set Up Printers</title><para>Support for setting up and administering printers with PPD files has
been incorporated into the Solaris print subsystem. Two interface scripts, <command>standard_foomatic</command>, and <command>netstandard_foomatic</command>,
are available. These interface scripts provide the generic Solaris interface
between the Solaris spooler and the back-end process of the Solaris print
server.</para><para>The following are examples of the types of printers that are supported:</para><itemizedlist><listitem><para>Lexmark Optra E312</para>
</listitem><listitem><para>Epson Stylus Photo 1280</para>
</listitem><listitem><para>Canon BJC-55</para>
</listitem><listitem><para>QMS magicolor 2+</para>
</listitem>
</itemizedlist><sect2 id="gdtft"><title>Raster Image Processor Support</title><para>The raster image support in the Solaris OS (RIP) enables you to print
to printers that do not have resident PostScript processing  capabilities.
The Solaris printing software provides the print server RIP and supporting
technologies. The RIP occurs behind the scenes. However, to use the appropriate
driver you need to configure each printer by using either Solaris Print Manager
or the <command>lpadmin</command> <option>n</option> command. For step-by-step
instructions on using the <command>lpadmin</command> <option>n</option> command,
see <olink targetptr="ertru" remap="internal">How to Add a New Directly Attached Printer by
Using LP Print Service Commands</olink>.</para>
</sect2><sect2 id="ermjz"><title>Support for PostScript Printer Description Files</title><para>The <command>lpadmin</command> and <command>lpstat</command> commands,
as well as the Solaris Print Manager printer definition screens, support the
use of PPD files.</para><itemizedlist><para>The following new software packages are associated with this feature:</para><listitem><para><literal>SUNWa2psr</literal></para>
</listitem><listitem><para><literal>SUNWa2psu</literal></para>
</listitem><listitem><para><literal>SUNWespgs</literal></para>
</listitem><listitem><para><literal>SUNWffiltersr</literal></para>
</listitem><listitem><para><literal>SUNWffiltersu</literal></para>
</listitem><listitem><para><literal>SUNWfppd</literal></para>
</listitem><listitem><para><literal>SUNWgimpprint</literal></para>
</listitem><listitem><para><literal>SUNWhpijs</literal></para>
</listitem><listitem><para><literal>SUNWimagick</literal></para>
</listitem><listitem><para><literal>SUNWpsutils</literal></para>
</listitem>
</itemizedlist><para>For more information about supported printers, see <olink targetptr="ermjs" remap="internal">Where to Find Information About Supported Printers and Available PPD Files</olink>.</para>
</sect2><sect2 id="ermjs"><title>Where to Find Information About Supported Printers
and Available PPD Files</title><indexterm><primary>supported printers</primary><secondary>where to find information</secondary>
</indexterm><indexterm><primary>information about supported printers</primary>
</indexterm><caution role="caution"><para>The location where the PPD files and the <filename>ppdcache</filename> file is stored are private, as is the contents of the <filename>ppdcache</filename> file. The placement of these files and the contents of
the <filename>ppdcache</filename> are subject to change. Do not build software
that relies on these files being in their current location or that relies
on the data being in the format that is currently used.</para>
</caution><para>If the file required by your printer is not available, you can add your
own PPD file. If you use the <command>lpadmin</command> <option>n</option> command
to create a new print queue, you can store your own PPD files anywhere that
you choose. If you are running the Solaris 10 OS, and you use Solaris Print
Manager to create the print queue, the PPD file must have an entry in the <filename>ppdcache</filename> file.</para><para>If you are running at least the Solaris Express Developer Edition 5/07
release, PPD files are located in any of following four repositories on the
system:</para><variablelist><varlistentry><term><filename>/usr/share/ppd</filename></term><listitem><para>Specifies the <filename>system</filename> repository.</para>
</listitem>
</varlistentry><varlistentry><term><filename>/usr/local/share/ppd</filename>	</term><listitem><para>Specifies the <filename>admin</filename> repository.</para>
</listitem>
</varlistentry><varlistentry><term><filename>/opt/share/ppd</filename></term><listitem><para>Specifies the <filename>vendor</filename> repository.</para>
</listitem>
</varlistentry><varlistentry><term><filename>/var/lp/ppd</filename></term><listitem><para>Specifies the <filename>user</filename> repository.</para>
</listitem>
</varlistentry>
</variablelist><para>Copies of PPD files that are specified by using the <command>lpadmin</command> command
with the <option>n</option> option, or by using the <option>a</option> option
with the <command>ppdmgr</command> command are stored in the <filename>user</filename> repository
under the same PPD file name.</para><para>If you use the <command>ppdmgr</command> utility with the <option>a </option> and
the <option>R</option> options, a copy of the specified PPD file can be stored
in the <filename>admin</filename> repository.</para><para>If you create a print queue with Solaris Print Manager, and no entry
exists for the PPD file in the <filename>ppdcache</filename> file, you can
use the <command>ppdmgr</command> utility to add the file to the system. The
cache of PPD file information that Solaris Print Manager uses is then updated
to reflect any changes you make by using either of these two methods.</para><para>If you are <emphasis>not</emphasis> running at least the Solaris Express
Developer Edition 5/07 release, PPD files are located in the <filename>/usr/lib/lp/model/ppd/system</filename> directory or any alternate directory that you specify.</para><para> The output of the <command>ls</command> command lists all the PPD files
for a particular printer manufacturer.</para><para>For additional task-related information, see <olink targetptr="gfjno" remap="internal">Administering
Printers That Are Associated With PPD Files (Task Map)</olink>.</para>
</sect2>
</sect1><sect1 id="geqnf"><title>PPD File Management Utility</title><indexterm><primary>PPD files</primary><secondary>administering with the PPD File Management utility (Reference)</secondary>
</indexterm><indexterm><primary>administering PPD files</primary><secondary>reference</secondary>
</indexterm><para>This section contains reference information for managing PPD files.</para><para>When the <command>ppdmgr</command> utility is used to add a PPD file
to the system, a compressed (gzipped) copy of the specified PPD file is stored
on the system. The purpose is to maintain a current cache of PPD file information
from all known PPD files on the system. </para><para>The full path of the PPD file that is copied to the system follows:</para><screen><replaceable>repository</replaceable>/<replaceable>label</replaceable>/<replaceable>manufacturer</replaceable>/<replaceable>ppd-file-name</replaceable></screen><variablelist><varlistentry><term><replaceable>repository</replaceable></term><listitem><para>Is the specified repository.  If no repository is specified
by using the <option>R</option> option, the default repository is the user
repository, <filename>/var/lp/ppd/</filename>.</para>
</listitem>
</varlistentry><varlistentry><term><replaceable>label</replaceable></term><listitem><para>Is the specified label.  If no label is specified by using
the <option>L</option> option, the default label is <filename>user</filename>,
within the <filename>user</filename> repository.</para>
</listitem>
</varlistentry><varlistentry><term><replaceable>manufacturer</replaceable></term><listitem><para>Is the manufacturer's name that is contained within the PPD
file. This name might be modified according to the manufacturer aliases that
are defined in the <filename>/var/lp/ppd/manufaliases</filename> file. See <olink targetptr="gfhxx" remap="internal">Manufacturer Aliases File</olink>.</para>
</listitem>
</varlistentry><varlistentry><term><replaceable>ppd-file-name</replaceable></term><listitem><para>Is the same as the original PPD file name that is specified
with the <command>ppdmgr</command> utility. This file can also contain the <filename>.gz</filename> extension if the PPD file is compressed.</para>
</listitem>
</varlistentry>
</variablelist><para>The following figures show the layout of a typical PPD file repository
and the <command>ppdmgr</command> utility directory layout, which contains
all relevant <filename>ppdmgr</filename> delivered and generated files, including
the PPD <filename>user</filename> file repository.</para><mediaobject><imageobject><imagedata entityref="ppdfile_dir_tree3" width="100"/>
</imageobject><textobject><simpara>Graphic showing the directory layout of a PPD file repository
and the directory layout for delivered and generated ppdmgr files.</simpara>
</textobject>
</mediaobject><sect2 id="geqmb"><title>PPD File Repositories</title><indexterm><primary>PPD file repositories</primary><secondary>types of</secondary>
</indexterm><indexterm><primary>PPD file repositories</primary><secondary>description and locations</secondary>
</indexterm><indexterm><primary>location of the PPD file repositories</primary>
</indexterm><indexterm><primary>description of the PPD file repositories</primary>
</indexterm><para>The following table describes the PPD file repositories that are located
on a system.</para><table frame="topbot" id="gexss"><title>Description of the PPD File Repositories</title><tgroup cols="4" colsep="0" rowsep="1"><?PubTbl tgroup dispwid="1171.00px"?><colspec colwidth="18.44*"/><colspec colwidth="24.54*"/><colspec colwidth="26.46*"/><colspec colwidth="30.54*"/><thead><row><entry><para>Repository</para>
</entry><entry><para>Location</para>
</entry><entry><para>Contents</para>
</entry><entry><para>Method Used to Add or Modify</para>
</entry>
</row>
</thead><tbody><row><entry rowsep="0"><para><filename>admin</filename></para>
</entry><entry rowsep="0"><para><filename>/usr/local/share/ppd/</filename></para>
</entry><entry rowsep="0"><para>This PPD file repository is used to store PPD files that are used by
system administrators.</para>
</entry><entry rowsep="0"><para>PPD files can be added to this repository manually, by using either
the <command>ppdmgr</command> utility or the <command>pkgadd</command> command.</para>
</entry>
</row><row><entry rowsep="0"><para><filename>all</filename></para>
</entry><entry rowsep="0"><para>Represents all of the PPD repositories on a system</para>
</entry><entry rowsep="0"><para>This repository represents all supported PPD repository locations on
a system.</para>
</entry><entry rowsep="0"><para>You can only specify the <filename>all</filename> repository when requesting
an update or rebuild of the PPD cache file by using the <command>ppdmgr</command> utility.</para>
</entry>
</row><row><entry rowsep="0"><para><filename>system</filename></para>
</entry><entry rowsep="0"><para><filename>/usr/share/ppd/</filename></para>
</entry><entry rowsep="0"><para>This repository contains PPD files that are delivered with Solaris OS.</para>
</entry><entry rowsep="0"><para>PPD files that are delivered by Sun can be added to the <filename>system</filename> repository
by using the <command>pkgadd</command> and <command>patchadd</command> commands.</para><para>A PPD file in this repository should not be modified manually or by
using the <command>ppdmgr</command> utility. If you modify this repository
manually, your changes might be lost.</para>
</entry>
</row><row><entry rowsep="0"><para><filename>user</filename></para>
</entry><entry rowsep="0"><para><filename>/var/lp/ppd </filename></para>
</entry><entry rowsep="0"><para>This repository is used, as needed, by administrators and users with
appropriate privileges (Printer Management).</para>
</entry><entry rowsep="0"><para>PPD
files that are added to the system by using the <command>ppdmgr</command> command
with the <option>a</option> option are added to this repository unless otherwise
specified.</para>
</entry>
</row><row><entry rowsep="0"><para><filename>vendor</filename></para>
</entry><entry rowsep="0"><para><filename>/opt/share/ppd/</filename></para>
</entry><entry rowsep="0"><para>This repository is a central location for storing PPD files that are
delivered to the Solaris OS by vendors.</para>
</entry><entry rowsep="0"><para>The <command>pkgadd</command> command is used to add PPD files to this
repository</para><note><para>This repository cannot be modified by using the <command>ppdmgr</command> utility.</para>
</note>
</entry>
</row>
</tbody>
</tgroup>
</table><caution role="caution"><para>The location of the PPD files and the <filename>ppdcache</filename> file is private and is therefore subject to change. Do <emphasis>not</emphasis> build
software that relies on these files being in their current location or the
data being in its current format.</para>
</caution>
</sect2><sect2 id="geqos"><title>PPD File Labels</title><indexterm><primary>PPD file labels</primary><secondary>reference</secondary>
</indexterm><para>On a system that is running the Solaris software, PPD files can be stored
default label directories.  You can also specify a label of your own choosing
to organize PPD files, as long as the label is not reserved by the system.</para><itemizedlist><para>The following label names are reserved:</para><listitem><para><literal>caches</literal></para>
</listitem><listitem><para><literal>ppdcache</literal></para>
</listitem><listitem><para><literal>manufaliases</literal></para>
</listitem><listitem><para><literal>all</literal></para>
</listitem>
</itemizedlist><para>With the exception of the <literal>all</literal> label name, these label
names cannot be specified by using either the <option>L</option> or <option>R</option> options
of the <command>ppdmgr</command> utility. However, you can specify the <literal>all</literal> label name with the <option>L</option> or the <option>R</option> option
when using the <option>r</option> and <option>u</option> options. Any label
name that begins with <literal>SUNW</literal> is reserved for use by Sun,
but is not prohibited.</para><para>If you add a PPD file to a system and specify a label that does not
exist, a directory with that label name is created in the specified repository.
 By default, if no PPD file repository is specified, this directory is <filename>/var/lp/ppd/label</filename>. For more information about specifying labels
when you add PPD files to a system, see <olink targetptr="geqok" remap="internal">Description
of the Command-Line Options for the ppdmgr Utility</olink>.</para>
</sect2><sect2 id="gexki"><title>Description of the Printer Driver Field in Solaris
Print Manager</title><para>The Printer Driver field in Solaris Print Manager is displayed when
you select the Add New Printer (attached or network) or Modify Printer Attributes
(attached or network) menu options. This field contains printer driver descriptions
from the PPD cache file, based on the printer model that you select. To distinguish
between duplicate printer driver descriptions that have different labels within
the PPD file repositories, the label and abbreviation of the PPD file repository
name is also displayed.</para><para>The format that is used for the printer driver description is as follows:</para><para><replaceable>label</replaceable>(<replaceable>repository-letter</replaceable>): <replaceable>driver-description</replaceable></para><para>For example, the following PPD file is located in the <filename>PHOTOS</filename> label
within the <filename>user</filename> PPD file repository:</para><para><filename>/var/lp/ppd/PHOTOS/HP/HP-PhotoSmart_P1100-hpijs.ppd.gz</filename></para><para>This PPD file would appear in Solaris Print Manager's Printer Driver
field selection list as follows:</para><para><literal>PHOTOS(U): Foomatic/hpijs (recommended)</literal></para><para>In the following example, the following PPD file is located in the <filename>SUNWfoomatic</filename> label within the <filename>system</filename> PPD file
repository:</para><para>This PPD file would appear in Solaris Print Manager's Printer Driver
field selection list as follows:</para><para><literal>SUNWfoomatic(S): Foomatic/hpijs (recommended)</literal></para><para>The following table describes the PPD file repository letters, the repositories
they represent and the location of the repositories a the system.</para><informaltable frame="topbot"><tgroup cols="3" colsep="0" rowsep="0"><colspec colwidth="33*"/><colspec colwidth="33*"/><colspec colwidth="33*"/><thead><row><entry rowsep="1"><para>Repository Abbreviation</para>
</entry><entry rowsep="1"><para>Repository Name</para>
</entry><entry rowsep="1"><para>Repository Location</para>
</entry>
</row>
</thead><tbody><row><entry colsep="1" rowsep="1"><para><literal>A</literal></para>
</entry><entry colsep="1" rowsep="1"><para><filename>admin</filename></para>
</entry><entry colsep="1" rowsep="1"><para><filename>/usr/local/share/ppd</filename></para>
</entry>
</row><row><entry colsep="1" rowsep="1"><para><literal>S</literal></para>
</entry><entry colsep="1" rowsep="1"><para><filename>system</filename></para>
</entry><entry colsep="1" rowsep="1"><para><filename>/usr/share/ppd</filename></para>
</entry>
</row><row><entry colsep="1" rowsep="1"><para><literal>U</literal></para>
</entry><entry colsep="1" rowsep="1"><para><filename>user</filename></para>
</entry><entry colsep="1" rowsep="1"><para><filename>/var/lp/ppd</filename></para>
</entry>
</row><row><entry colsep="1" rowsep="1"><para><literal>V</literal></para>
</entry><entry colsep="1" rowsep="1"><para><filename>vendor</filename></para>
</entry><entry colsep="1" rowsep="1"><para><filename>/opt/share/ppd</filename></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2><sect2 id="gfhxx"><title>Manufacturer Aliases File</title><indexterm><primary>manufacturer aliases file</primary><secondary><filename>/var/lp/ppd/manufaliases</filename></secondary>
</indexterm><indexterm><primary><filename>/var/lp/ppd/manufaliases</filename> file</primary><secondary>description of</secondary>
</indexterm><para>Manufacturer directories, one for each manufacturer, are located in
the PPD repositories on a system. When PPD files are added to a system, the
manufacturer name that is contained in the PPD file is used to determine which
manufacturer directory to copy the PPD file to. A private file, <filename>/var/lp/ppd/manufaliases</filename>, contains aliases for all the manufacturer entries in a PPD file.
 The <filename>manufaliases</filename> file is referenced to determine which
manufacturer directory to copy the PPD file to. This process ensures that
there is one directory per manufacturer, rather than one directory per manufacturer
alias. For example, if a PPD file contains the manufacturer name, Hewlett-Packard,
and an <filename>HP</filename> alias for Hewlett-Packard is listed in the <filename>manufaliases</filename> file, the PPD file is stored in the <filename>HP</filename> directory.
 This strategy applies to all PPD files that are added to a system by using
the <command>ppdmgr</command> utility and the <command>lpadmin</command> <option>n</option> command.</para><note><para>The <filename>manufaliases</filename> file is a private file.
Do <emphasis>not</emphasis> edit this file. Do <emphasis>not</emphasis> build
software that relies on the file being in its current location or the data
being in its current format.</para>
</note>
</sect2><sect2 id="gfhze"><title>PPD File Caches</title><indexterm><primary>PPD file caches</primary>
</indexterm><indexterm><primary><filename>/var/lp/ppd/caches/</filename></primary><secondary>location of PPD file caches</secondary>
</indexterm><indexterm><primary>location of PPD file caches</primary>
</indexterm><para>Private PPD file caches are maintained in the <filename>/var/lp/ppd/caches/</filename> directory, one for each label within each repository.</para><para>The format of the cache file name that is used follows:</para><para><replaceable>PPD-repository</replaceable>: <replaceable>label</replaceable></para><para>The information about PPD files that is in the PPD cache files is maintained
by using the <command>ppdmgr</command> utility. Do <emphasis>not</emphasis> edit
the PPD cache files manually. Note that the cache files in the <filename>/var/lp/ppd/caches</filename> directory are used to generate the private PPD cache file, <filename>/var/lp/ppd/ppdcache</filename>. This file is used by the <command>printmgr</command> utility.
For more information, see the <olink targetdoc="group-refman" targetptr="printmgr-1m" remap="external"><citerefentry><refentrytitle>printmgr</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page.</para><note><para>The location of the <filename>ppdcache</filename> and it's contents
is private. Do <emphasis>not</emphasis> build software that relies on this
file being in its current location or on the data being in its current format.
This information applies to any private files that are generated or delivered
for use by the <command>ppdmgr</command> utility.</para>
</note>
</sect2><sect2 id="geqok"><title>Description of the Command-Line Options for the <command>ppdmgr</command> Utility</title><indexterm><primary><command>ppdmgr</command></primary><secondary>command-line options</secondary>
</indexterm><indexterm><primary>command-line options</primary><secondary><command>ppdmgr</command> command</secondary>
</indexterm><indexterm><primary>options of the <command>ppdmgr</command> command</primary>
</indexterm><para>In this section, the command-line options for the <command>ppdmgr</command> utility
are described. Additional information about processes, guidelines, and restrictions
for administering PPD files by using the <command>ppdmgr</command> utility
are also described.</para><para>The PPD Manager (<command>ppdmgr</command>) utility is located in <filename>/usr/sbin/ppdmgr</filename>.</para><para><emphasis role="strong">To add a PPD file to a system, you would use
the following syntax:</emphasis></para><screen><userinput>ppdmgr -a <replaceable>ppd-file-path</replaceable></userinput></screen><para>The <option>a</option> option copies the PPD file that is specified
in <filename>ppd-file-path</filename> to the PPD repository, then updates
the PPD cache file to reflect the change. If you do not specify a PPD file
repository by using the <option>R</option> option, the PPD file is stored
in the <filename>user</filename> PPD file repository.  If you do not specify
a label by using the <option>L</option> option, the PPD file is stored in
the <filename>user</filename> label directory.</para><itemizedlist><para>The following verifications are performed when you use the <option>a</option> option
with the <command>ppdmgr</command> utility:</para><listitem><para><emphasis role="strong">Label verification</emphasis> &ndash;
A label name must <emphasis>not</emphasis> be a reserved label name.</para><itemizedlist><para>The following label names are reserved:</para><listitem><para><literal>caches</literal></para>
</listitem><listitem><para><literal>ppdcache</literal></para>
</listitem><listitem><para><literal>manufaliases</literal></para>
</listitem><listitem><para><literal>all</literal></para>
</listitem>
</itemizedlist>
</listitem><listitem><para><emphasis role="strong">PPD File Path verification</emphasis> &ndash;
The specified <replaceable>ppd-file-path</replaceable> must be accessible
and must contain either the <filename>.pdd </filename> or <filename>ppd.gz</filename> extension.</para>
</listitem><listitem><para><emphasis role="strong">PPD file verification</emphasis> &ndash;
The PPD file that is specified in <replaceable>ppd-file-path</replaceable> must
be a valid PPD file.</para>
</listitem>
</itemizedlist><note><para>If you provide information that does not pass the various verification
checks, or if any of the actions that are performed by the <command>ppdmgr</command> utility
are unsuccessful, an error message is displayed, and the utility exits.</para>
</note><itemizedlist><para><emphasis role="strong">Additional Actions Performed:</emphasis></para><listitem><para>If needed, parent directories of the destination path are
created.</para>
</listitem><listitem><para>If a version of the PPD file with a <filename>.gz</filename> extension
already exists in the PPD file repository, and the gzipped versions are not
duplicates, an error message is displayed.</para>
</listitem><listitem><para>The <replaceable>ppd-file-path</replaceable> is copied to
the destination path.</para>
</listitem><listitem><para>To reflect the change in the <filename>ppdcache</filename> file,
the update action is then applied.</para>
</listitem>
</itemizedlist><para><emphasis role="strong">To specify PPD file repository, you would use
the following syntax:</emphasis></para><screen><userinput>ppdmgr -R <replaceable>repository</replaceable></userinput></screen><para>The <option>R</option> option with <replaceable>repository</replaceable> is
used to identify one of the supported PPD file repositories.  When the <option>R</option> option
is not specified, the default <replaceable>repository</replaceable> is <filename>user</filename>. When the <option>R</option> option is specified with the <option>a</option> option, the valid repository names are <filename>user</filename> and <filename>admin</filename>. See <olink targetptr="geqmb" remap="internal">PPD File Repositories</olink> for
more information about all of the supported repository names and their locations.</para><para><emphasis role="strong">To specify a label, you would use the following
syntax:</emphasis></para><screen><userinput>ppdmgr -L <replaceable>label-name</replaceable></userinput></screen><para>The <option>L</option> option with the <replaceable>label-name</replaceable> is
used to identify a grouping of PPD files within a PPD file repository. The
label is also the name of the directory that is located in the PPD file repository.
 The label can be comprised of any characters from the portable character
set. However, the label cannot contain a semicolon (<literal>;</literal>).</para><para>When the <option>L</option> option is <emphasis>not</emphasis> specified,
the following are the defaults that are used for specifying a label name.</para><informaltable frame="topbot"><tgroup cols="2" colsep="0" rowsep="0"><colspec colwidth="40.42*"/><colspec colwidth="59.58*"/><thead><row rowsep="1"><entry><para><command>ppdmgr</command> Command-Line Option</para>
</entry><entry><para>Default Label</para>
</entry>
</row>
</thead><tbody><row><entry><para><option>a</option></para>
</entry><entry><para>Defaults to the <replaceable>label</replaceable> in <filename>ppd-file-path</filename>, if the <filename>ppd-file-path</filename> is located within a
supported repository. Otherwise <replaceable>label</replaceable> defaults
to <filename>user</filename>.</para>
</entry>
</row><row><entry><para><option>r</option></para>
</entry><entry><para>Defaults to the <filename>all</filename> label.</para>
</entry>
</row><row><entry><para><option>u</option></para>
</entry><entry><para>Defaults to the <filename>all</filename> label.</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><para><emphasis role="strong">To request an update of the PPD cache file,
you would use the following syntax:</emphasis></para><screen><userinput>ppdmgr -u</userinput></screen><para>This option updates the cache file to reflect modifications within PPD
file repositories.  The PPD cache file is updated only if modifications are
detected.</para><note><para>When the <option>a</option> option is specified, an update of
the PPD cache file occurs automatically to reflect the change in the label
directory within the repository where the PPD file was copied.</para>
</note><para> When the <option>R</option> or <option>L</option> option is not specified,
the PPD cache file is updated to reflect modifications in the <filename>all</filename> label
directory within the <filename>user</filename> repository.</para><para><emphasis role="strong">To request a rebuild of PPD cache file, you
would use the following syntax:</emphasis></para><screen><userinput>ppdmgr -r</userinput></screen><para>The <option>r</option> option rebuilds the cache by removing and regenerating
any intermediary cache files that are associated with the specified label
within the specified PPD file repository.  This action results in an update
of the PPD cache file, <filename>/var/lp/ppd/ppdcache</filename>, if any intermediary
cache files are removed. Because a regeneration of the specified label within
the specified PPD file repository is required, the regeneration of the PPD
cache information can be very time-consuming.  The time that it takes to rebuild
the PPD cache file depends upon the number of PPD files that are affected,
Therefore, the <option>r</option> option should only be used when PPD cache
file corruption is suspected.</para><para>When the <option> R</option> or <option> L</option> option is not specified,
intermediary cache files that are associated with all of the labels within
the <filename>user</filename> PPD file repository are removed. These modifications
are then reflected in the PPD cache file.</para><para><emphasis role="strong">To display the full path of PPD File in the
repository, you would use the following syntax:</emphasis></para><screen><userinput>ppdmgr -a <replaceable>ppd-file-path</replaceable> -w</userinput></screen><para>The <option>w</option> option must be specified with the <option>a</option> option,
and the PPD file is added to the system successfully, the full destination
path of the PPD file is displayed on <literal>stdout</literal>.  Otherwise,
this option is ignored.</para>
</sect2>
</sect1><sect1 id="gdkmc"><title>How PAPI Is Implemented in
the Solaris OS</title><para>This section contains additional background information about the FSG
OpenPrinting Open Standard Print Application Programming Interface (PAPI),
a print service-independent interface for accessing printing support on a
local host or a network.</para><para>The PAPI contains a set of printing related objects or data structures
and a set of operations or functions to manipulate the objects.</para><itemizedlist><para>The following are supported tasks:</para><listitem><para>Querying the print service</para>
</listitem><listitem><para>Submitting print jobs</para>
</listitem><listitem><para>Modifying print jobs</para>
</listitem><listitem><para>Canceling print jobs</para>
</listitem>
</itemizedlist><sect2 id="gfiko"><title>Modified Solaris Print Commands</title><para>Table <olink targetptr="gfhzx" remap="internal">Table&nbsp;11&ndash;10</olink> describes
the Solaris print commands that have been modified for use with the PAPI.</para><table frame="all" id="gfhzx"><title>Modified Solaris Print Commands</title><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="33*"/><colspec colwidth="33*"/><colspec colwidth="33*"/><thead><row><entry><para>Command</para>
</entry><entry><para>Origin</para>
</entry><entry><para>Function</para>
</entry>
</row>
</thead><tbody><row><entry><para><command>lpr</command></para>
</entry><entry><para>BSD</para>
</entry><entry><para>Submit print jobs.</para>
</entry>
</row><row><entry><para><command>lpq</command></para>
</entry><entry><para>BSD</para>
</entry><entry><para>Query print queues and print jobs.</para>
</entry>
</row><row><entry><para><command>lprm</command></para>
</entry><entry><para>BSD</para>
</entry><entry><para>Remove print jobs.</para>
</entry>
</row><row><entry><para><command>lpc</command></para>
</entry><entry><para>BSD</para>
</entry><entry><para>Control print jobs:</para><para><command>accept</command>, <command>reject</command>, <command>enable</command>, <command>disable</command>, <command>clear</command>, <command>topq</command></para>
</entry>
</row><row><entry><para><command>lp</command></para>
</entry><entry><para>SysV</para>
</entry><entry><para>Submit print jobs.</para>
</entry>
</row><row><entry><para><command>lpstat</command></para>
</entry><entry><para>SysV</para>
</entry><entry><para>Query print server (print queues, print jobs, other).</para>
</entry>
</row><row><entry><para><command>cancel</command></para>
</entry><entry><para>SysV</para>
</entry><entry><para>Remove print jobs.</para>
</entry>
</row><row><entry><para><command>lpmove</command></para>
</entry><entry><para>SysV</para>
</entry><entry><para>Move jobs between local print queues.</para>
</entry>
</row><row><entry><para><command>accept</command></para>
</entry><entry><para>SysV</para>
</entry><entry><para>Enable queueing of print jobs on a print queue.</para>
</entry>
</row><row><entry><para><command>reject</command></para>
</entry><entry><para>SysV</para>
</entry><entry><para>Disable queueing of print jobs on a print queue.</para>
</entry>
</row><row><entry><para><command>enable</command></para>
</entry><entry><para>SysV</para>
</entry><entry><para>Enable job processing on a print queue.</para>
</entry>
</row><row><entry><para><command>disable</command></para>
</entry><entry><para>SysV</para>
</entry><entry><para>Disable job processing on a print queue.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2>
</sect1>
</chapter><?Pub *0000088420 0?>