<?Pub UDT _bookmark _target?><?Pub UDT __target_1 _target?><?Pub UDT registeredtm trademark?><?Pub EntList bull rArr sect hyphen?><?Pub CX solbook(book(title()bookinfo()?><chapter id="printintro-1"><?Pub Tag atict:info tracking="off" 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>Introduction to Printing in the Solaris Operating System</title><highlights><para>This chapter provides an introduction to printing in the Solaris Operating System (
Solaris OS). Conceptual information about Solaris printing services, tools,
and protocols is described. Each of the subsequent chapters in this book describe
how to use these tools, protocols, and technologies to administer printing
services and printers. </para><para>Several terms and concepts that are introduced in this chapter and
are used frequently throughout this book. To fully grasp printing concepts,
a basic understanding of these concepts and terms is essential. For a complete
listing of all the printing concepts and terms, see <olink targetptr="gdqrm" remap="internal">Glossary</olink>.</para><itemizedlist><para>This is a list of the information in this chapter.</para><listitem><para><olink targetptr="printconcept-42" remap="internal">What's New in Printing?</olink></para>
</listitem><listitem><para><olink targetptr="printconcept-40" remap="internal">Fundamentals of Printing
in the Solaris Operating System</olink></para>
</listitem><listitem><para><olink targetptr="gdtha" remap="internal">Overview of the Solaris Printing
Architecture</olink></para>
</listitem><listitem><para><olink targetptr="gdsuo" remap="internal">Implementation of the Open Standard
Print API</olink></para>
</listitem><listitem><para><olink targetptr="gedcr" remap="internal">Using Printing Protocols in the Solaris
Release</olink></para>
</listitem><listitem><para><olink targetptr="gezpb" remap="internal">Overview of Solaris Print Manager</olink></para>
</listitem><listitem><para><olink targetptr="printconcept-31908" remap="internal">Overview of the LP Print
Service </olink></para>
</listitem><listitem><para><olink targetptr="printconcept-49" remap="internal">The Solaris Print Client-Server
Process</olink></para>
</listitem><listitem><para><olink targetptr="printconcept-15" remap="internal">Where to Find Printing
Tasks</olink></para>
</listitem>
</itemizedlist>
</highlights><sect1 id="printconcept-42"><title>What's New in Printing?</title><para>This section describes new and changed printing features in this Solaris
release. For a complete listing of new Solaris features and a description
of Solaris releases, see <olink targetdoc="solwhatsnew" remap="external"><citetitle remap="book">Solaris
Express Developer Edition What&rsquo;s New</citetitle></olink>.</para><sect2 id="gifbm"><title>Common UNIX Printing System</title><para><emphasis role="strong">Solaris Express Community Edition, build 87:</emphasis> The
Common UNIX Printing System (CUPS), Version 1.3.6, is now part of the Solaris
OS distribution.</para><para>The Common UNIX Printing System (CUPS) is a modular printing system
that enables a system to function as a print server. A system that is running
CUPS is a host that can accept print requests from client systems, process
the requests, then send them to the appropriate printer.</para><itemizedlist><para>To facilitate this support in the Solaris OS, the following interfaces
have been introduced:</para><listitem><para>A new <command>print&hyphen;service</command> command that
enables you choose between the LP print service and CUPS.</para>
</listitem><listitem><para>Two new Service Management Facility (SMF) services:</para><itemizedlist><listitem><para><filename>svc:/application/cups/scheduler</filename> &ndash;
This service controls the <command>cupsd</command> daemon. This daemon provides
basic printing services, including queueing, filtering, spooling, notification,
Internet Print Protocol support, device enumeration, web management, and more.</para>
</listitem><listitem><para><filename>svc:/application/cups/in-lpd</filename> &ndash;
This service controls the <command>cupd-lpd</command> daemon. This daemon
provides basic RFC-1179 (LPD protocol) support for CUPS.</para>
</listitem>
</itemizedlist><para>The <literal>Printer Management</literal> profile and the <literal>solaris.smf.manage.cups</literal> authorization enable users who do not have superuser privileges
to manage these SMF services.</para><note><para>These services are marked as incompatible with their corresponding
LP services and will not run if the corresponding LP services are running.</para>
</note>
</listitem>
</itemizedlist><para>For more information, see the CUPS documentation page, at <ulink url="http://www.opensolaris.org/os/community/printing/Documentation/cupsprint/" type="url"></ulink>. The complete set of CUPS documentation is also accessible
from a CUPS server on a host that is running CUPS by typing <filename>http://localhost:631/help/</filename> in a web browser.</para>
</sect2><sect2 id="ghgvh"><title>OpenSolaris Print Manager</title><para><emphasis role="strong">Solaris Express Community Edition, build 97
and OpenSolaris 2008.11 release:</emphasis> The <trademark>OpenSolaris</trademark> Print
Manager application is a graphical user interface (GUI) that you can use to
manage local and remote printer queues, printer groups, and print jobs. Print
Manager enables you to perform many aspects of printer administration. You
can run the OpenSolaris Print Manager application from the Main Menubar on
the GNOME desktop panel. For more information, see <olink targetptr="printdesktop-1" remap="internal">Chapter&nbsp;10, Setting Up and Administering Printers
From the Desktop (Tasks)</olink>.</para>
</sect2><sect2 id="gfkcv"><title>Automatic Printer Discovery and Configuration
in the Desktop Environment</title><para><emphasis role="strong">OpenSolaris 2008.05:</emphasis> The Solaris
OS has the capability to automatically discover directly attached
and network&hyphen;attached printers. This service is implemented through
the Hardware Abstraction Layer (HAL) and has the capability to detect SNMP
capable printers on a on network where a Solaris host is attached. This functionality
is managed by the Service Management Facility (SMF) and can be enabled by
using the <command>svcadm</command> command. Authorizations that are required
to use this feature have been added to the Print Management user profile.
See <olink targetptr="printdesktop-1" remap="internal">Chapter&nbsp;10, Setting Up and Administering
Printers From the Desktop (Tasks)</olink> for further details of this feature.</para><itemizedlist><para>This feature provides the following types of support:</para><listitem><para>Detection</para>
</listitem><listitem><para>Configuration</para>
</listitem><listitem><para>Notification</para>
</listitem>
</itemizedlist><para>The detection component has the ability to discover USB printers that
have been physically connected to or disconnected from a local system. The
configuration component enables you to configure certain properties of directly
attached USB printers. The notification component lets you know when a printer
has been connected or disconnected from the local system.</para><para>Automatic printer discovery includes enhanced hardware abstraction layer
(HAL) support for recognizing USB printer hotplug events, as well as network
attached printers on a Solaris hosted network. HAL USB support was introduced
in the Solaris Express Developer Edition 5/07 release. The hardware abstraction
layer (HAL) daemon, <command>hald</command>, provides a view of devices that
are attached to a local system. This view is updated automatically as a system's
hardware configuration changes, by hotplugging or other methods. You can find
out more about HAL at <ulink url="http://opensolaris.org/os/project/tamarack/" type="url"></ulink>.</para><para>More information can be found at <ulink url="http://www.opensolaris.org/os/project/presto" type="url"></ulink>. </para><para>For step-by-step instructions, see <olink targetptr="printdesktop-1" remap="internal">Chapter&nbsp;10,
Setting Up and Administering Printers From the Desktop (Tasks)</olink>.</para><para>More information about other OpenSolaris printing projects can be found
at <ulink url="http://opensolaris.org/os/community/printing/" type="url"></ulink>.</para>
</sect2><sect2 id="gdsws"><title>Privilege Requirements for Using Solaris Print Commands</title><para>The design of the Open Standard Print API (PAPI) implementation in the
Solaris release makes it no longer necessary for applications, toolkits, and
print commands to run with elevated privilege to interact with print services.</para><itemizedlist><para>As a result, the following print commands are no longer installed SUID
root:</para><listitem><para><command>/usr/bin/lp</command></para>
</listitem><listitem><para><command>/usr/bin/lpstat</command></para>
</listitem><listitem><para><command>/usr/bin/cancel</command></para>
</listitem><listitem><para><command>/usr/bin/lpmove</command></para>
</listitem><listitem><para><command>/usr/{ucb|bin}/lpr</command></para>
</listitem><listitem><para><command>/usr/{ucb|bin}lpq</command></para>
</listitem><listitem><para><command>/usr/{ucb|bin}/lprm</command></para>
</listitem><listitem><para><command>/usr/lib/print/printd</command></para>
</listitem>
</itemizedlist><itemizedlist><para>Previsously, these commands were installed SUID root because the commands
required an elevated privilege for the following purposes:</para><listitem><para>Opening a reserved port</para>
</listitem><listitem><para>Allocating a sequential job-id number</para>
</listitem><listitem><para>Manipulating files in the <filename>/var/spool/print</filename> directory</para>
</listitem>
</itemizedlist><para>This functionality is now localized in a small helper application, <filename>/usr/lib/print/lpd-port</filename>. As a result, any applications that use
RFC-1179 PAPI support no longer require elevated privilege.  The <command>lpd-port</command> helper application contains minimal support for passing RFC-1179
protocol requests on a reserved port and allocating sequential job-id numbers.
 Although the helper application is installed SUID root, all elevated privileges
are dropped until they are required. When necessary, the privilege is elevated
for the required operation and then permanently dropped if the elevated privilege
is no longer required.  In the Solaris release, this process is accomplished
through the use of privileges.  On other platforms, the process is accomplished
by using the <command>setuid</command>, <command>seteuid</command>, or <command>setreuid</command> functions.</para><para>If you have local printers that you do not want to share on the network,
you can safely disable the printing network listeners. If you are running
the Solaris release, or a CUPS server, the <command>lpstat</command> command
provides you with more information about remote print queues and print jobs,
as well as their capabilities when using IPP to communicate with those servers.</para><itemizedlist><para>When IPP is in use, and with the proper authorization, the following
operations can be performed on remote print queues and print jobs:</para><listitem><para><command>accept</command></para>
</listitem><listitem><para><command>reject</command></para>
</listitem><listitem><para><command>enable</command></para>
</listitem><listitem><para><command>disable</command></para>
</listitem><listitem><para><command>move job</command></para>
</listitem><listitem><para><command>modify job</command></para>
</listitem>
</itemizedlist><para>Also, you can now move print requests between queues on a print server
and modify print requests remotely when IPP is in use.</para><para>For more information, see the <olink targetdoc="group-refman" targetptr="privileges-5" remap="external"><citerefentry><refentrytitle>privileges</refentrytitle><manvolnum>5</manvolnum></citerefentry></olink> man page. For step-by-step
procedures, see <olink targetptr="gedvp" remap="internal">Administering Printers by Using the
Internet Printing Protocol (Task Map)</olink>.</para>
</sect2><sect2 id="gepju"><title>PPD File Management Utility</title><indexterm><primary>PPD File Manager</primary><secondary><command>ppdmgr</command></secondary>
</indexterm><indexterm><primary><command>ppdmgr</command> command</primary>
</indexterm><indexterm><primary>managing PPD files</primary><secondary>by using <command>ppdmgr</command> command</secondary>
</indexterm><para><emphasis role="strong">Solaris Express Developer Edition
5/07:</emphasis> The
PPD File Manager, <command>/usr/sbin/ppdmgr</command>, is a utility for administering <trademark>PostScript</trademark> Printer Description (PPD) files that are used with
the Solaris print subsystem. When you add a PPD file to the system by using
the <command>ppdmgr</command> utility or the <command>lpadmin</command> command
with the <option>n</option> option, a cache of PPD file information is automatically
updated. This cache is used by Solaris Print Manager and the
printing tools that are available in the GNOME Desktop Environment.</para><para>For more information, see <olink targetptr="geawn" remap="internal">Administering PPD
Files by Using the PPD File Management Utility (Task Map)</olink> and the <olink targetdoc="group-refman" targetptr="ppdmgr-1m" remap="external"><citerefentry><refentrytitle>ppdmgr</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page.</para>
</sect2>
</sect1><sect1 id="printconcept-40"><title>Fundamentals of Printing in the Solaris Operating System</title><para>The Solaris printing software provides an environment for setting up
and managing print servers and print clients.</para><itemizedlist><para>The Solaris printing software contains these tools and services:</para><listitem><para>Solaris Print Manager &ndash; A graphical user interface (GUI)
that enables you to manage printing configuration on a local system or in
a naming service.</para>
</listitem><listitem><para>LP print service commands &ndash; A command-line interface
(CLI) that is used to set up and manage printers on a local system or in a
naming service. These commands also provide functionality that extend beyond
the other print management tools.</para>
</listitem><listitem><para>PostScript Printer Definition File Manager (<command>ppdmgr</command>) &ndash;
The PPD File Manager is a command-line utility that is used to administer
PPD files and the cache of printer information on a Solaris system.</para>
</listitem><listitem><para>OpenSolaris Print Manager &ndash;
Is a GUI tool that is available in the GNOME Desktop Environment for automatic
printer discovery and configuration. The tool monitors printer attachments
and detachments.</para>
</listitem>
</itemizedlist><para>For more information, see <olink targetptr="printadmin-15883" remap="internal">Chapter&nbsp;5,
Administering Printers by Using Solaris Print Manager and LP Print Commands
(Tasks)</olink>.</para><itemizedlist><para>The Solaris printing software includes these additional interfaces,
protocols, and technologies:</para><listitem><para>Open Standard Print API (PAPI) interface</para>
</listitem><listitem><para>Berkeley Software
Distribution (BSD) protocol</para>
</listitem><listitem><para>Internet Printing Protocol (IPP)</para>
</listitem><listitem><para>Server Message Block (SMB) protocol, through Samba</para>
</listitem>
</itemizedlist>
</sect1><sect1 id="gdtha"><title>Overview of the Solaris Printing Architecture</title><para>At the core of the print system is a UNIX System V (R4) based spooler.
In addition to the spooler are client applications that are used to make requests
of and manage the spooler. filters that perform document translation, back-end
processing software that performs final document transformation , and device
(printer) communication. To utilize the complete functionality of the print
system, all these resources are required.</para><itemizedlist><para>Printing in the Solaris OS consists of the software to support the following:</para><listitem><para>Print commands</para>
</listitem><listitem><para>Print spooler</para>
</listitem><listitem><para>Over-the-wire protocol</para>
</listitem><listitem><para>Underlying technologies that move a print request from the
client to the server, and, or the printer</para>
</listitem>
</itemizedlist><para>The following figure is a high level diagram that represents the Solaris
print system components.</para><mediaobject><imageobject><imagedata entityref="printarch_now" width="100"/>
</imageobject><textobject><simpara>Graphic of LP client-server relationship, with applications
that use the print service. The surrounding text provides details.</simpara>
</textobject>
</mediaobject><para>Recent changes in Solaris printing include the integration of IPP client-side
support, implemented through the PAPI. The Berkeley Software Distribution
(BSD) and System V (SysV) commands, as well as some applications, are layered
on top of the PAPI interface. See <olink targetptr="gdsuo" remap="internal">Implementation
of the Open Standard Print API</olink>.</para>
</sect1><sect1 id="gdsuo"><title>Implementation of the Open Standard Print API</title><para>The Solaris implementation of the Open Standard Print API, also referred
to as <emphasis>PAPI</emphasis>, makes it possible to layer applications,
toolkits and print commands on top of a print service, protocol neutral interface.
This implementation can be used with RFC-1179, IPP-based, and LP-based printing
services. Printer, server, and job attributes, as well as job submission and
queries to a printer, are among the supported PAPI functions. This support
enables the print client, be it an application, or the print commands themselves,
to query the print system about the characteristics of a printer and to request
information.</para><itemizedlist><para>For more information, see the following references:</para><listitem><para><olink targetptr="gdkmc" remap="internal">How PAPI Is Implemented in the Solaris OS</olink>.</para>
</listitem><listitem><para><ulink url="http://sf.net/projects/openprinting" type="url"></ulink>.</para>
</listitem>
</itemizedlist><sect2 id="gfhzm"><title>PAPI Print Client Commands</title><para>Historically, printing commands have been tied to a specific print system
because they have been implemented on top of print system specific protocols
and interfaces. Examples include the BSD, LPR, SysV LP, LPRng, and CUPS printing
protocols. The introduction of the PAPI, makes it possible to layer these
print commands on top of a print service, protocol neutral, interface.</para><para>The PAPI provides applications a single interface for print service
interaction. This means that applications can be written to use this interface
and work with a variety of print services without requiring changes to the
applications. Applications are no longer tied to a particular print service,
such as the LP print service or CUPS. Instead, print services can easily be
replaced on a system without impacting the protocol or application layers
above. Ultimately, print services can be both developed and selected based
on specific needs.</para><para>The PAPI interacts with the <command>lpsched</command> command and RFC-1179-based
servers. PAPI also enables interaction with CUPS servers by using <command>libcups</command> and native IPP client-side support. The PAPI supports that is available
in the Solaris OS includes the modification of several common BSD and SysV
printing commands. The new command implementations are layered on the PAPI.
Hence, these commands can work with a variety of printing services. </para><para>The PAPI implementation in the Solaris OS also includes server-side
and client-side support for IPP, which is layered on top of the PAPI. IPP
is implemented as a set of protocol-specific libraries and an Apache module.
Like the command implementations, the IPP Listening Service can be used with
any printing service that supports the PAPI. Server-side support for the RFC-1179
protocol is also available. For more information, see <olink targetptr="printsetup-33230" remap="internal">Chapter&nbsp;3, Setting Up Printing Services
(Tasks)</olink>.</para><itemizedlist><para>The following is a list of the PAPI supported components:</para><listitem><para><command>libpapi-common.so</command> &ndash; Core PAPI attribute
support</para>
</listitem><listitem><para><command>libpapi.so</command> &ndash; PAPI library with dynamic
backend support</para>
</listitem><listitem><para><command>psm-lpd.so</command> &ndash; PAPI support on top
of the RFC-1179 protocol</para>
</listitem><listitem><para><command>psm-ipp.so</command> and <command>libipp-core.so</command> &ndash;
PAPI support on top of IPP</para>
</listitem><listitem><para><command>in.lpd</command> &ndash; RFC-1179 protocol listening
support</para>
</listitem><listitem><para><command>mod_ipp.so</command>, <command>libipp-listener.so</command> &ndash;
IPP listening support under the Apache Web Server, Versions 1.0 and 2.0</para>
</listitem><listitem><para>BSD and SysV command implementations on top of the PAPI interface &ndash;
See <olink targetptr="gfiko" remap="internal">Modified Solaris Print Commands</olink> for a complete listing
of the modified commands.</para>
</listitem>
</itemizedlist>
</sect2>
</sect1><sect1 id="gedcr"><title>Using Printing Protocols in the Solaris Release</title><itemizedlist><para>The overall printing architecture in the Solaris OS uses network printing
protocols to communicate with print services in following ways:</para><listitem><para>Client-to-server communications</para>
</listitem><listitem><para>Server-to-printer communications</para>
</listitem>
</itemizedlist><para>The Solaris Express software
provides applications, toolkits, printing commands, and an application programming
interface that interacts with print services.  This API is called the PAPI.
 The PAPI consists of a front-end API implementation that dynamically loads
back-end print service or protocol modules that communicate directly with
print services.  These print services contain the print job or print queue
that is being acted upon. Client-to-server communications include the RFC-1179
and IPP protocols, as well as support for communicating with a local LP print
service.  For server-to-printer communications, the network printing protocol
support enables the print service to transmit print jobs directly to network&hyphen;attached printers.</para><itemizedlist><para>Server-to-printer communications include support for the following network
protocols:</para><listitem><para>Raw Transmission Control Protocol (TCP) socket</para>
</listitem><listitem><para>RFC-1179</para>
</listitem><listitem><para>IPP</para>
</listitem><listitem><para>SMB</para>
</listitem>
</itemizedlist><sect2 id="gdqri"><title>Selecting the Client-To-Server Network Printing Protocol</title><para>Applications, toolkits, and printing commands select the protocol to
use for client-to-server communications, based on the value of the <literal>printer-uri-supported</literal> attribute that is found in the <command>printers.conf</command> database
entry for the specified print queue.  This value is automatically generated
and populated when access to a remote print queue is configured by using the <command>lpadmin</command> command or when an application uses the interface that is
being referenced to perform an action or actions.</para><para>For example, when printing a document while using Mozilla, the path
that is followed to gain access to the printer is:</para><para>Mozilla &rarr; <command>lp</command> &rarr; PAPI</para><para>For more information, see the <olink targetdoc="group-refman" targetptr="printers.conf-4" remap="external"><citerefentry><refentrytitle>printers.conf</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink></para><para>The <command>lpadmin</command> command generates <literal>printer-uri-supported</literal> values using the following format:</para><para><filename>{ipp|lpd}://<replaceable>server</replaceable>/printers/<replaceable>queue</replaceable></filename></para><para>To determine which URI to use in the <filename>printers.conf</filename> database,
the <command>lpadmin</command> command probes the remote print service.  If
the remote print service supports IPP, this protocol is preferred over the BSD protocol.  However,
you can override automatic protocol selection by specifying the <option>s</option>option
with the <command>lpadmin</command> command, then supplying a different URI.
For more information, see the <olink targetptr="gdsxm" remap="internal">Printer URI Formats</olink>.</para><para>The print subsystem uses the BSD print protocol, also referred to as the RFC&hyphen;1179
protocol, and raw Transmission Control Protocol (TCP), the
basic communication language or protocol of the Internet, to communicate with
the printer. If you are setting up a printer that includes printer vendor
documentation, information about which protocol to use is provided. The TCP
protocol is the protocol that is most often used for printing on the network.</para>
</sect2><sect2 id="gdsxm"><title>Printer URI Formats</title><para>The following are supported printer URI formats:</para><table frame="all" id="gdsxb"><title>Supported URI Formats for Print Commands</title><tgroup cols="2" colsep="1" rowsep="1"><?PubTbl tgroup dispwid="956.00px"?><colspec colwidth="25.22*"/><colspec colwidth="74.78*"/><tbody><row><entry><para><command>lpsched</command></para>
</entry><entry><para><command>lpsched://localhost/printers/queue</command></para><para>This printer URI scheme can only be used to contact a local LP service
to access the print queue that is specified in the URI.</para>
</entry>
</row><row><entry><para><command>lpd</command></para>
</entry><entry><para><command>lpd://localhost/printers/queue[#extensions]</command></para><para>Use this printer URI scheme to contact local or remote print services
to address the specified print queue on the host that is specified in the
URI.  The optional <literal>#extensions</literal> can be specified as <literal>#solaris</literal> to indicate that the server host will process Solaris extensions
to the RFC-1179 protocol during print job submission.</para>
</entry>
</row><row><entry><para><command>ipp</command></para>
</entry><entry><para><command>ipp://<replaceable>server</replaceable>[:<replaceable>port</replaceable>]/printers/<replaceable>queue</replaceable></command></para><para><command>http://<replaceable>server</replaceable>:631/printers/<replaceable>queue</replaceable></command></para><para><command>ipp://<replaceable>server</replaceable>[:<replaceable>port</replaceable>]/...</command></para><para>Use this printer URI scheme to contact local or remote print services
to address a particular print queue on the host that is specified in the URI.
  The IPP URI scheme is described in the IPP specifications. This printer
URI scheme utilizes more of a free form than the LPD printer URI scheme. 
All of the Solaris and CUPS-based print queues are accessed by using these
schemes, or formats. Access to print queues on other IPP-based print servers
requires the use of the server supported IPP URI scheme.  Typically, the scheme
that is used is one those that are listed in this table.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="gfucs"><title>Selecting the Server-To-Printer Network Printing
Protocol</title><para>Network&hyphen;attached
printers often support more than one method of communicating with a print
service.  The most common method of communicating with the print service is
through a raw TCP connection to a well-known port on the device. Other methods
of communication include the RFC-1179 and IPP network protocols.  You can
select the server-to-printer communication protocol when adding a new print
queue in one of following ways:</para><itemizedlist><listitem><para>By using the <command>lpadmin</command> command with the following
options, and as shown here:</para><screen remap="wide"># <userinput>lpadmin -o protocol={bsd|tcp} -o dest=printer:queue-or-port -m netstandard{_foomatic}</userinput></screen><para>This method for communicating with the print service was introduced
in the Solaris 2.6 OS and is available in all subsequent Solaris releases.</para>
</listitem><listitem><para>The second method is to use the <command>lpadmin</command> command
with the <option>d </option>option, supplying a <replaceable>device-uri</replaceable>,
and the <option>m</option> option, specifying a <replaceable>uri</replaceable>.</para><para>This method for communicating with the print service was introduced
more recently and is intended to replace the previous method. For more information,
see <olink targetptr="fwmxi" remap="internal">What is a Device URI?</olink>.</para>
</listitem>
</itemizedlist><para>When determining which protocol to use for server-to-printer communication,
consult the vendor printer documentation for more specific information. Documentation
includes information such as TCP port numbers, RFC-1179  printer names, and
the IPP printer URIs that are supported by the device.  In most instances,
a raw TCP socket communication is likely to provide the most reliable results.</para><para>Also, note that due to differences between printing services on UNIX
and Windows platforms, Windows hosted printers should be configured as network&hyphen;attached printers and
administered as such.  These types of printers require the creation of a print
queue if you are using them on a Solaris system. These printers might also
use the SMB protocol for server-to-printer communication.  For more information
about the SMB protocol, see <olink targetptr="gfhaq" remap="internal">Using the SMB Protocol</olink>.</para><para>For more information about setting up printers and configuring print
queues, see <olink targetptr="gfgxy" remap="internal">Setting Up Printers on a Print Server
(Task Map)</olink>.</para>
</sect2><sect2 id="fwmxi"><title>What is a Device URI?</title><indexterm><primary>device URI addressing</primary><secondary>Uniform Resource Identifier</secondary><tertiary>Solaris printing features</tertiary>
</indexterm><indexterm><primary>Uniform Resource Identifier (URI)</primary><secondary>device-uri</secondary>
</indexterm><indexterm><primary>URI</primary><secondary>Uniform Resource Identifier</secondary>
</indexterm><para>A Uniform Resource Identifier (URI) is an addressing technology for
identifying resources on the Internet or a private intranet. The terms URI
and URL are used synonymously. URIs can be used with application-level protocols,
called <emphasis>URI schemes</emphasis>. The Solaris printer software includes
support for configuring
network&hyphen;attached printers. When creating print queues
for network&hyphen;attached
printers by using LP print commands or by using Solaris Print Manager, you
can specify the device as a <replaceable>device-uri</replaceable>.</para><para>To specify the device as a <replaceable>device-uri</replaceable> from
the command line, use the <command>lpadmin</command> command with the <option>v</option> and <option>m</option> options:</para><screen># <userinput>lpadmin -p <replaceable>printer</replaceable> -v <replaceable>device-uri</replaceable> -m <replaceable>uri</replaceable></userinput></screen><para>Note that the <option>v</option> option is still a valid option for
specifying devices other than those that utilize the <replaceable>device-uri.</replaceable> addressing
technology.</para><para>For example, to add the printer, <literal>Lucille</literal>, by using
the <replaceable>device-uri</replaceable>, <filename>smb://server/queue</filename>,
and the interface script that is included in the Solaris printer software,
type:</para><screen># <userinput>lpadmin -p lucille -v smb://<replaceable>server</replaceable>/<replaceable>print-queue</replaceable> -m uri -n /usr/lib/lp/model/ppd
/system/foomatic/Epson/Epson-Stylus_Color_777-Stc777p.upp.ppd.gz</userinput></screen><note><para>You must use the <option>m</option> option in the command-line
syntax to specify an interface script, or the back-end process ignores the
print request. The script can be the interface script that is included in
the Solaris printing software or another interface script that is <replaceable>device-uri</replaceable> protocol aware.</para>
</note><itemizedlist><para>The following <replaceable>device-uri</replaceable> schemes are supported:</para><listitem><para><filename>ipp://<replaceable>host</replaceable>/printers/<replaceable>name</replaceable></filename></para>
</listitem><listitem><para><filename>lpd://<replaceable>host</replaceable>/printers/<replaceable>name</replaceable></filename></para>
</listitem><listitem><para>socket://<replaceable>host</replaceable>:<replaceable>port</replaceable></para>
</listitem><listitem><para><filename>smb://<replaceable>server</replaceable>/<replaceable>printer</replaceable></filename></para>
</listitem><listitem><para><filename>smb://<replaceable>workgroup</replaceable>/<replaceable>server</replaceable>/<replaceable>printer</replaceable></filename></para>
</listitem><listitem><para><filename>smb://<replaceable>username</replaceable>:<replaceable>password</replaceable>@<replaceable>server</replaceable>/<replaceable>printer</replaceable></filename></para>
</listitem><listitem><para><filename>smb://<replaceable>username</replaceable>:<replaceable>password</replaceable>@<replaceable>workgroup</replaceable>/<replaceable>server</replaceable>/<replaceable>printer</replaceable></filename></para>
</listitem>
</itemizedlist><para>To specify a device that uses a <replaceable>device-uri</replaceable> when
using Solaris Print Manager to add a network&hyphen;attached printer, select the URI option
in the Protocol drop-down menu of the New Network Printer window. Type a supported
printer URI in the destination field.</para><itemizedlist><para>Other modifications that support setup of remote print queues by specifying
the device as a <replaceable>device-uri</replaceable> include the following:</para><listitem><para>The Solaris print spooler can pass device information in the
form of a <replaceable>device-uri</replaceable> to the back-end interface
script as the environment variable, <literal>DEVICE_URI</literal>.  Because
the information is passed to the back-end as an environment variable, the
existing interface scripts cannot take advantage of this information. However,
these scripts are not adversely impacted.</para>
</listitem><listitem><para>The <filename>/etc/lp/model/uri</filename> file now communicates
with the printer through the use of helper applications and the <replaceable>device-uri</replaceable>. The interface script also has the ability to process PPD files
and uses a Foomatic script to convert print data to a printer-ready format.</para>
</listitem>
</itemizedlist>
</sect2><sect2 id="egkkk"><title>What Is the Internet Printing Protocol?</title><indexterm><primary>IPP</primary><secondary>Internet Printing Protocol</secondary>
</indexterm><indexterm><primary>Internet Printing Protocol</primary><secondary>IPP</secondary>
</indexterm><para>IPP is a fairly recent industry standard network printing protocol that
is used for client-to-server and server-to-printer communications.  This protocol
provides a basic model that includes printers and jobs, standard attributes
for these printers and jobs, and a set of standard operations that can be
performed against these printers and jobs.  Because the objects, attributes,
and operations are standardized, IPP is a method for communicating between
client and server systems. In the Solaris OS, server-side support for this
protocol is provided by an IPP listening service.  IPP client-side support
in the Solaris OS is implemented through the PAPI. IPP printer support is
available through the URI interface script.</para><para>More
information about OpenSolaris printing can be found at <ulink url="http://opensolaris.org/os/community/printing/" type="url"></ulink>.</para><para>For step-by-step procedures and additional background information in
this document, see <olink targetptr="geduc" remap="internal">Setting Up the Internet Printing
Protocol</olink> and <olink targetptr="fddwm" remap="internal">Appendix&nbsp;A, Using the Internet
Printing Protocol</olink>.</para>
</sect2><sect2 id="bsd-123"><title>Overview of the RFC-1179 Printing Protocol</title><para>The RFC-1179 protocol is an existing over-the-wire protocol that is
widely used for communicating between print clients and servers and network&hyphen;attached printers. The
Request for Comments (RFC) 1179 describes the protocol that a line printer
daemon client uses to control  printing. Developed originally for BSD UNIX,
the RFC-1179 printing protocol has long been the cross-platform standard for
printing. You can use this protocol to perform basic printing tasks, such
as submitting and canceling print jobs, and obtaining print job status. The
RFC-1179 protocol is able to communicate with LPD-based print servers and
any other print server that accepts the BSD printing protocol. Many network&hyphen;attached printers offer
this protocol as an option for transferring job data.</para>
</sect2><sect2 id="gezsg"><title>RFC-1179 Protocol Compared to the Internet Printing
Protocol</title><para>The RFC-1179 protocol has served for decades as the standard network
printing protocol. The protocol was originally designed to perform a very
limited set of operations. The RFC-1179 protocol lacks a common representation
for status information. In addition, this protocol offers only basic print
job options. Conversely, the design of IPP includes features that are lacking
in the RFC-1179 and BSD protocols. With IPP, a broad set of operations can
be performed. These operations make use of a core set of common attributes
by using a common representation and encoding method. Also, IPP enables encryption
and authentication to be used between a print client and a print server. Finally,
IPP provides a means for extending operations and attributes, while maintaining
backward compatibility and interoperability. One of the results of the evolution
of the RFC-1179 protocol is that it has several conflicting vendor extensions
to overcome, making IPP the preferred choice of printing protocols.</para><para>For more information about using IPP to set up and administer printers,
see <olink targetptr="geduc" remap="internal">Setting Up the Internet Printing Protocol</olink> and <olink targetptr="fddwm" remap="internal">Appendix&nbsp;A, Using the Internet Printing Protocol</olink>.</para>
</sect2><sect2 id="gfhaq"><title>Using the SMB Protocol</title><para>The SMB protocol is an application-level network protocol that is primarily
used for sharing printers, access to files, serial ports, and miscellaneous
communications between nodes on the network. Mainly used by Windows systems,
SMB is an authenticated inter-process communication mechanism. In the Solaris
OS, the SMB protocol is used primarily for sharing printers. All of these
processes take place over the network. SMB can run over multiple protocols.</para><para>SMB works through a peer-to-peer approach. A client makes a specific
requests to a server, and the server responds accordingly. SMB servers make
their file systems and other resources available to clients on the network.
In the Solaris OS, SMB includes Samba server-side support that is managed
by the Service Management Facility (SMF) and Samba <command>smbclient</command> client-side
support. To access a Windows hosted printer, setup of a local print queue
is required. This requirement is due to differences in UNIX and Windows printing
models.</para><sect3 id="gfilf"><title>About Samba</title><para>Samba is an open-source SMB server freeware application that uses the
SMB protocol. Samba provides Windows clients access to UNIX servers and UNIX
clients access to Windows servers. The access that is provided is for both
files and other services, including printer sharing. Samba's design, as well
as constraint, is to operate on top of a variety of existing UNIX systems.
Samba runs as a set of daemons and services, without any need for modification
of existing kernels. More information about Samba can be found at <ulink url="http://www.samba.org" type="url"></ulink>.</para>
</sect3>
</sect2>
</sect1><sect1 id="gezpb"><title>Overview of Solaris Print Manager</title><indexterm><primary>Solaris Print Manager</primary><secondary>overview</secondary>
</indexterm><para>Solaris Print Manager is a <trademark>Java</trademark> technology-based
GUI that enables you to manage local and remote printing configuration. This
tool can be used in the files, LDAP, NIS, and NIS+ naming service environments.</para><itemizedlist><para>To use this tool, you must:</para><listitem><para>Be logged in as superuser or assume an equivalent role.</para>
</listitem><listitem><para>Subscribe to the Print Management profile.</para>
</listitem><listitem><para>Have <literal>Solaris.print.admin</literal> authorization</para>
</listitem>
</itemizedlist><para>Solaris Print Manager centralizes printer information when the information
is used in conjunction with a naming service. Using a naming service for storing
printer configuration information is the preferred method, because a naming
service makes printer information available to all systems on the network.
This method provides easier printer administration. Solaris Print Manager recognizes existing
printer information on print servers, print clients, and in the naming service
databases. No conversion tasks are required to use Solaris Print Manager as
long as the print clients are running at least the Solaris 2.6 release.</para><para>The Solaris Print Manager package is <literal>SUNWppm</literal>.</para>
</sect1><sect1 id="printconcept-31908"><title>Overview of the LP Print Service </title><para><indexterm id="printref-ix163"><primary>LP print service</primary><secondary>definition</secondary></indexterm>The <emphasis>LP print service</emphasis> is
a set of software utilities that enables users to print files while continuing
to work. Originally, the print service was called the <emphasis>LP spooler</emphasis>. <emphasis>LP</emphasis> represents line printer, but the meaning now includes many other
types of printers, such as laser printers. <emphasis>Spool</emphasis> is an
acronym for Simultaneous Peripheral Operations Online.</para><para>The <emphasis>LP print service</emphasis> consists of the LP print service
software, any print filters you might provide, and the hardware, such as the
printer, system, and network connections.</para><para><emphasis role="strong">Solaris Express 8/06:</emphasis> Starting with this release, the
LP print client commands make use of the PAPI to interact with Solaris LP
(<command>lpsched</command>), RFC-1179 (BSD/LPD protocol), and IPP-based servers.
IPP support is capable of interacting with CUPS servers by using its native
IPP service. With the introduction of this API support, several common BSD
and SysV printing commands use the PAPI interface. As a result, the new command
implementations work with a number of existing print services. A portion of
this development includes server-side support for IPP that is also layered
on the API. This support is implemented as a set of protocol-specific libraries
and as an Apache module, Versions 1 and 2. Similar to the print command implementation,
the IPP listening service can be used with any print service that has PAPI
support. The RFC-1179 server-side support is also layered on the PAPI.</para><para>For additional information about the LP print service, see <olink targetptr="printref-18623" remap="internal">LP Print Service</olink>.</para><sect2 id="printref-37"><title>Functions of the LP Print Service</title><itemizedlist><para>The LP print service performs the following functions:</para><listitem><para>Administers files and schedules local print requests</para>
</listitem><listitem><para>Receives and schedules network requests</para>
</listitem><listitem><para>Filters files, if necessary, so they print properly</para>
</listitem><listitem><para>Starts programs that interface with the printers</para>
</listitem><listitem><para>Tracks the status of print jobs</para>
</listitem><listitem><para>Tracks forms that are mounted on the printer</para>
</listitem><listitem><para>Tracks print wheels that are currently mounted</para>
</listitem><listitem><para>Delivers alerts to mount new forms or different print wheels</para>
</listitem><listitem><para>Delivers alerts about printing problems</para>
</listitem>
</itemizedlist>
</sect2><sect2 id="gdtgc"><title>Customizing the LP Print Service</title><para>Although the LP print service is designed to be flexible enough to handle
most printers and printing needs,  the LP print service does not handle every
possible situation. You might have a print request that is not accommodated
by the standard features of the LP print service. Or, you might have a printer
that does not quite fit into the way the LP print service handles printers.</para><itemizedlist><para>You can customize the LP print service in the following ways:</para><listitem><para>Adjust the printer port characteristics.</para>
</listitem><listitem><para>Adjust the <command>terminfo</command> database.</para>
</listitem><listitem><para>Customize the printer interface program.</para>
</listitem><listitem><para>Create a print filter.</para>
</listitem><listitem><para>Define a form.</para>
</listitem>
</itemizedlist><para>For detailed descriptions and step-by-step instructions on customizing
the LP print service, see <olink targetptr="printcust-66310" remap="internal">Chapter&nbsp;7,
Customizing Printing Services and Printers (Tasks)</olink>.</para>
</sect2>
</sect1><sect1 id="printconcept-49"><title>The Solaris Print Client-Server Process</title><para>This section provides an overview of the print client-server process.</para><sect2 id="printconcept-61"><title>Using Print Servers</title><para>The print server is a system that has a local printer connected to it
and makes the printer available to other systems on the network. The following
figure highlights the part of the print process in which the print server
sends the print request to the printer.</para><figure id="printconcept-fig-73"><title>The Print Server Sends a Print Request
to the Printer</title><mediaobject><imageobject><imagedata entityref="printover5.fig"/>
</imageobject><textobject><simpara>Illustration of a print server sending a print request
in 5 steps. See the following description of these 5 steps.</simpara>
</textobject>
</mediaobject>
</figure><orderedlist><listitem><para>The print client submits a print request.</para>
</listitem><listitem><para>The print request is processed on the print client.</para>
</listitem><listitem><para>The print request goes to the print server.</para>
</listitem><listitem><para>The print request goes to the printer.</para>
</listitem><listitem><para>The print output is produced on the printer.</para>
</listitem>
</orderedlist>
</sect2><sect2 id="printconcept-52"><title>Using Print Clients</title><para>A <emphasis>print
client</emphasis> is a system that can send print requests to a print server.</para><para>The following figure highlights the part of the print process in which
the user submits a print request from a print client.</para><figure id="printconcept-fig-70"><title>The User Submits a Print Request from
a Print Client</title><mediaobject><imageobject><imagedata entityref="printover2.fig"/>
</imageobject><textobject><simpara>Illustration of what happens when a user submits a print
request. See the following section for a description of these 5 steps.</simpara>
</textobject>
</mediaobject>
</figure>
</sect2><sect2 id="printconcept-51"><title>The Print Client Process</title><para>The following figure illustrates the path of a print request from the
time the user initiates the request until the print request is printed.</para><figure id="printconcept-fig-69"><title>Overview of the Print Client Process</title><mediaobject><imageobject><imagedata entityref="printover1.fig"/>
</imageobject><textobject><simpara>Illustration of the print client process in 5 steps.
See the following description of these 5 steps.</simpara>
</textobject>
</mediaobject>
</figure><orderedlist><listitem><para>A user submits a print request from a print client.</para>
</listitem><listitem><para>The print command checks a hierarchy of print configuration
resources to determine where to send the print request.</para>
</listitem><listitem><para>The print command sends the print request directly to the
appropriate print server. A print server can be any server that accepts Berkley
Software Distribution (BSD) printing protocol, including System V Release
4 (SVR4), or LP print servers and BSD LPD-based print servers, as well as
servers that accept IPP.</para>
</listitem><listitem><para>The print server sends the print request to the appropriate
printer.</para>
</listitem><listitem><para>The print request is printed. </para>
</listitem>
</orderedlist>
</sect2><sect2 id="printref-47"><title>How Local Printing Works</title><para><indexterm id="printref-ix227"><primary>local printing</primary></indexterm><indexterm id="printref-ix228"><primary>printing</primary><secondary>local (diagram)</secondary></indexterm>The print request follows
the same path it would if the client and server were separate systems. Requests
always flow from client to server following the same path. </para><para>The following figure shows what happens when a user submits a request
to print a PostScript file on a <emphasis>local</emphasis> printer, which
is a printer connected to the user's system. The <command>lpsched</command> daemon
on the local system does all processing. </para><itemizedlist><para>This processing might include the following:</para><listitem><para>Matching the printer and content type</para>
</listitem><listitem><para>Identifying the default printer, filtering the request</para>
</listitem><listitem><para>Starting the specified printer interface program</para>
</listitem>
</itemizedlist><itemizedlist><para>The printer interface program does the following:</para><listitem><para>Prints the banner page.</para>
</listitem><listitem><para>Catches printer faults.</para>
</listitem><listitem><para>Determines the printer fault policy to either reset, continue,
or begin the print job over again.</para>
</listitem><listitem><para>Finally, the interface program uses the <command>lpcat</command> program
to download the print request to the local printer's serial port.</para>
</listitem>
</itemizedlist><mediaobject><imageobject><imagedata entityref="figure1-3"/>
</imageobject><textobject><simpara>Graphic is described in the surrounding text.</simpara>
</textobject>
</mediaobject>
</sect2><sect2 id="printref-38"><title>How LP Administers Files and Schedules Local Print Requests</title><para><indexterm id="printref-ix194"><primary>scheduler</primary><see>print scheduler</see></indexterm><indexterm id="printref-ix195"><primary>LP print service scheduler</primary><see>print scheduler</see></indexterm><indexterm id="printref-ix196"><primary>print scheduler</primary><secondary>updating LP system files</secondary></indexterm><indexterm id="printref-ix197"><primary><command>lpsched</command></primary><secondary>daemon</secondary></indexterm><indexterm id="printref-ix198"><primary>daemons</primary><secondary><command>lpsched</command></secondary></indexterm>The LP print service has a scheduler daemon called <command>lpsched</command>.
The scheduler daemon updates the LP system files with information about printer
setup and configuration.</para><para>The <command>lpsched</command> daemon schedules all local print requests
on a print server, as shown in the following figure. Users can issue the requests
from an application or from the command line. Also, the scheduler tracks the
status of printers and filters on the print server. When a printer finishes
a request, the scheduler schedules the next request n the queue on the print
server, if a next request exists.</para><mediaobject><imageobject><imagedata entityref="figure1-4"/>
</imageobject><textobject><simpara>Graphic is described in the surrounding text.</simpara>
</textobject>
</mediaobject><para>Without rebooting the system, you can stop the scheduler with the <command>svcadm disable application/print/server</command> command. Then, restart the
scheduler with the <command>svcadm enable application/print/server</command> command.
The scheduler for each system manages requests that are issued to the system
by the <command>lp</command> command.</para>
</sect2><sect2 id="printref-49"><title>How Remote Printing Works</title><indexterm id="printref-ix230"><primary>remote printing</primary><secondary>diagram of process</secondary>
</indexterm><indexterm id="printref-ix231"><primary>printing</primary><secondary>remote</secondary>
</indexterm><indexterm id="printref-ix232"><primary>printer</primary><secondary>remote</secondary>
</indexterm><para>The following figure shows what happens when a user on a Solaris print
client submits a print request to an LPD-based print server. The command opens
a connection and handles its own communications with the print server directly.</para><mediaobject><imageobject><imagedata entityref="fig181.epsi" width="100"/>
</imageobject><textobject><simpara>Illustration of a Solaris print client sending a print
request to an LPD-based print server where it is accepted, spooled, and scheduled
for printing.</simpara>
</textobject>
</mediaobject><para>The following figure shows an LPD-based print client submitting a print
request to a Solaris print server. The <literal>lpd</literal> daemon handles
the local part of the print request and the connection to the print server.
On the print server, the <literal>inetd</literal> process waits for network
printing requests and starts a protocol adaptor to service the request. The
protocol adaptor communicates with the <literal>lpsched</literal> daemon,
which processes the request on the print server.</para><mediaobject><imageobject><imagedata entityref="figure1-6" width="100"/>
</imageobject><textobject><simpara>Graphic is described in the surrounding text.</simpara>
</textobject>
</mediaobject><para>The following figure shows what happens when a user on a Solaris print
client submits a print request to a Solaris print server. The print command
on the print client handles the local part of each print request by communicating
directly with the print server.</para><mediaobject><imageobject><imagedata entityref="figure1-7" width="100"/>
</imageobject><textobject><simpara>Graphic is described in the surrounding text.</simpara>
</textobject>
</mediaobject><para><indexterm id="printref-ix233"><primary>daemons</primary><secondary><command>lpsched</command> (reference)</secondary></indexterm><indexterm id="printref-ix234"><primary><command>lpsched</command></primary><secondary> daemon (reference)</secondary></indexterm>The <command>inetd</command> process on
the print server monitors network printing requests and starts a protocol
adaptor to communicate with the <command>lpsched</command> daemon on the print
server, which processes the print request.  </para>
</sect2>
</sect1><sect1 id="printconcept-15"><title>Where to Find Printing Tasks</title><informaltable frame="topbot"><tgroup cols="3" colsep="0" rowsep="0"><colspec colname="colspec2" colwidth="47.36*"/><colspec colname="colspec0" colwidth="47.36*"/><colspec colname="colspec3" colwidth="52.64*"/><thead><row rowsep="1"><entry><para>Printer Task</para>
</entry><entry><para>Topics Covered</para>
</entry><entry><para>For More Information</para>
</entry>
</row>
</thead><tbody><row><entry><para>Set up and administer printing services.</para>
</entry><entry><para>Setting up Solaris Print Manager, the LP print service, and the IPP,
RFC-1179, and SMB printing protocols.</para>
</entry><entry><para><olink targetptr="printsetup-33230" remap="internal">Chapter&nbsp;3, Setting Up Printing
Services (Tasks)</olink></para>
</entry>
</row><row><entry><para>Set up printers.</para>
</entry><entry><para>Setting up a print server, adding directly attached and network-attached
printers, and adding a print client.</para>
</entry><entry><para><olink targetptr="printers-33230" remap="internal">Chapter&nbsp;4, Setting Up Printers
(Tasks)</olink></para>
</entry>
</row><row><entry>
</entry><entry><itemizedlist><para>Administering printers, the print scheduler, setting printer definitions,
and administering print requests by using the following printing tools, services
and protocols:</para><listitem><para>Solaris Print Manager</para>
</listitem><listitem><para>LP print service</para>
</listitem><listitem><para>IPP</para>
</listitem><listitem><para>RFC-1179 protocol</para>
</listitem><listitem><para>SMB protocol (through Samba)</para>
</listitem>
</itemizedlist>
</entry><entry><para><olink targetptr="printadmin-15883" remap="internal">Chapter&nbsp;5, Administering Printers
by Using Solaris Print Manager and LP Print Commands (Tasks)</olink></para><para><olink targetptr="proto-1" remap="internal">Chapter&nbsp;6, Administering Printers That
Use Network Printing Protocols (Tasks)</olink></para>
</entry>
</row><row><entry><para>Administer PPD files by using the PPD File Manager (<command>ppdmgr</command>).</para>
</entry><entry><para>Administering PPD Files on a system by using the <command>ppdmgr</command> utility,
a tool that automates PPD file administration.</para>
</entry><entry><para><olink targetptr="ppdadmin-1" remap="internal">Chapter&nbsp;9, Administering Printers
by Using the PPD File Management Utility (Tasks)</olink></para>
</entry>
</row><row><entry><para>Set up and administer printers from the Desktop.</para>
</entry><entry><para>Setting up USB directly attached and network&hyphen;attached printers
from the desktop.</para>
</entry><entry><para><olink targetptr="printdesktop-1" remap="internal">Chapter&nbsp;10, Setting Up and Administering
Printers From the Desktop (Tasks)</olink></para>
</entry>
</row><row><entry><para>Customize printing services and printers.</para>
</entry><entry><para>Customizing printing services. Administering character sets, print forms,
print filters, and print fonts.</para>
</entry><entry><para><olink targetptr="printcust-66310" remap="internal">Chapter&nbsp;7, Customizing Printing
Services and Printers (Tasks)</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect1>
</chapter><?Pub *0000069488 0?>