System Administration Guide: Printing

Using Printing Protocols in the Oracle Solaris Release

The printing architecture in the Oracle Solaris OS uses network printing protocols to communicate with print services in following ways:

The Oracle Solaris 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-attached printers.

Server-to-printer communications for the LP print service and Solaris Print Manager include support for the following network protocols:

Determining Which Printing Protocol to Use

The print System uses two over-the-wire protocols for sending print requests from a print client to the print server. The following table describes the printing protocols that can be used for printing in the Solaris OS.

Table 1–1 Supported Printing Protocols

Network Printing Protocol 

Server-Side Support? 

Client-Side Support? 

For More Information 

Internet Printing Protocol (IPP) 

Server-side support for the IPP listening service is available, starting with the Oracle Solaris 10 release. 

Supported in some Oracle Solaris releases. 

Configuring the Internet Printing Protocol

RFC-1179 protocol 

Supported in all Oracle Solaris releases. 

Supported in all Oracle Solaris releases. 

Description of the RFC-1179 Printing Protocol

SMB protocol, through Samba 

Note –

The SMB protocol, through Samba, is an implementation that enables interoperability between Linux and UNIX servers, and Windows-based clients.

Supported, starting with the Solaris 9 OS. 

Supported, starting with the Solaris 9 OS. 

Description of the SMB Protocol

Selecting the Client-To-Server Network Printing Protocol

Applications, toolkits, and printing commands select the protocol to use for client-to-server communications, based on the value of the printer-uri-supported attribute that is found in the printers.conf 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 lpadmin command or when an application uses the interface that is being referenced to perform an action or actions.

For example, when printing a document while using Mozilla, the path that is followed to gain access to the printer is:

Mozilla -> lp -> PAPI

For more information, see the printers.conf(4)

The lpadmin command generates printer-uri-supported values using the following format:


To determine which URI to use in the printers.conf database, the lpadmin 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 -soption with the lpadmin command, then supplying a different URI. For more information, see the Printer URI Formats That Are Supported.

The LP print subsystem uses the BSD print protocol, also referred to as the RFC-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.

Printer URI Formats That Are Supported

The following table describes supported printer URI formats:

Table 1–2 Supported URI Formats


URI Format 



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. 



Use this URI format to contact local or remote print services for the purpose of accessing a print queue on the host that specified in the URI. An optional #extensions can be specified, for example, #solaris. When #solaris is specified, the host processes Solaris extensions to the RFC-1179 protocol during print job submissions.

Selecting the Server-To-Printer Network Printing Protocol

Network-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:

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.

Also, note that due to differences between printing services on UNIX and Windows platforms, Windows hosted printers should be configured as network-attached printers and administered as such. These types of printers require the creation of a print queue if you are using them on a Oracle Solaris system. These printers might also use the SMB protocol for server-to-printer communication. For more information about the SMB protocol, see Description of the SMB Protocol.

For more information about setting up printers and configuring print queues, see Setting Up Printers by Using Solaris Print Manager (Task Map) and Setting Up Printers by Using LP Print Commands (Task Map).