Advanced Printing Software is a flexible, distributed, client/server print system for the Tru64 UNIX operating system. This print system includes the following features:
A set of client and server programs that work together to manage and perform print-related functions.
A set of tools for administrators and operators to manage printing in a network environment.
Utility programs for end users to print their documents and monitor their print jobs.
The print system is based on the following industry printing standards:
ISO/IEC 10175 Document Printing Application (DPA)
The DPA standard defines a set of abstract print objects, their states, syntax, protocol, and a comprehensive set of standard attributes.
POSIX 1387.4 System Administration - Part 4: Printing Interfaces
The POSIX document specifies a set of command operations and arguments relating to printing and management of a print system.
Understanding Advanced Printing Software concepts is beneficial for
simplifying the administration of the system.
This section defines and describes
terms used in this manual.
1.1.1 Clients and Servers
Advanced Printing Software employs a client/server printing architecture.
The clients and servers use an interprocess communication mechanism to exchange
information.
Clients send requests to the servers, and the servers return
responses to the clients.
The print system software includes several client
programs that interface to the print system and provide server programs that
perform the operations requested by the client programs.
1.1.1.1 Client Programs
Client programs allow users to initiate print, list, and system administration operations. Upon receipt of a request, a server performs the operation and sends a result back to the client. Depending on the request, the result could be a simple acknowledgment, an error code, or a set of requested information, such as a formatted list of print jobs.
The following client programs are supported:
Command Line Interface (CLI) utilities - Provide a set of commands that perform the operations supported by server processes.
Graphical User Interface (GUI) utilities - Provides graphical interfaces to perform the operations supported by server processes.
LPD Inbound Gateway Daemon - Accepts print jobs from
lp
and
lpr
print systems and submits them to
Advanced Printing Software servers.
There are two types of server programs:
Spoolers - Collect printer jobs, associate them with print queues, and schedules them for printing.
Supervisors - Take jobs from spooler queues and print them according to the job requirements and printer capabilities. The supervisor communicates with printers and reports printer status to the spooler and to clients.
Every configuration includes at least one spooler and one supervisor. Each spooler and supervisor manages a database of persistent print objects. All objects in the print system, except for physical printers, are created and stored in a spooler database. Physical printer objects are stored in a supervisor database.
The spooler is viewed as the primary server in the system.
Supervisors
are nearly invisible to end users.
1.1.2 Objects and Object Attributes
The print system architecture is described in terms of named objects and object attributes. Objects include printers, queues, print jobs, and so on. Attributes of an object describe the object. Examples of attributes are printer names, document formats, and job identifiers.
The following objects are defined in Advanced Printing Software:
Server
Printer
Queue
Job
Document
Initial-value-job
Initial-value-document
Some attributes are assigned values by the system when you create an object. Many of those attributes are read only; you cannot set their values. Other attributes, those that can be defined or modified by you and other print system users, are called read-write attributes.
The print system supports a great number of attributes; however, you need not be familiar with all of them. You should become familiar with those attributes you encounter often.
Attributes have standard names, comprised of one or more words separated
by hyphens.
Some examples of common printer attributes are
printer-name
,
associated-queue-enabled
,
input-trays-ready
, and
sides-supported
.
Similarly,
job-name
,
job-id
, and
job-state-message
are examples of job attributes.
A document object can be described by attributes
such as
document-format
,
sides
, and
number-up
.
1.1.3 Operations
Operations are the actions that you perform on objects. For example, users print documents, list status information, remove jobs, enable or disable a printer, and set server attributes.
The following operations are supported:
Create
Delete
Clean
Enable
Disable
Pause
Resume
Set
List attributes
Shut down servers
Print documents
Remove job
Resubmit job
List job queue
Modify job
Promote job
Some operations are intended for use by end-users, while others are
intended solely for administrative purposes.
Most operations apply to only
certain objects, while some apply to all.
For example, administrators use
the create operation to create new printers, queues, and initial-value objects.
Users create jobs and documents by using the print operation.
Similarly, administrators
set printer attributes, but users can modify jobs.
1.1.4 Logical Printers, Physical Printers, and Queues
Advanced Printing Software defines two kinds of printer objects; logical printers and physical printers. Both terms refer to software representations of printing devices.
A logical printer object includes characteristics and capabilities of one or more physical printers. Users specify logical printers when they print jobs and the logical printer sends the job to a physical printer that can satisfy the job and document requirements.
A physical printer is a software representation of an actual output device. The physical printer object contains information about the printer make and model, connection details, and a list of ready-to-use features.
The logical printer and physical printer are joined by way of queues. By associating a logical printer and a physical printer with a queue, you establish a relationship between the logical printer that the user specifies for printing and the physical printer defined by characteristics of the output device.
The distinction between the logical printer and the physical printer
allows users to specify printers in terms of capabilities rather than by their
addresses or model numbers.
In this way, printer hardware configurations can
evolve with little or no need for users to update their desktop printer settings.
Logical printers are used to provide end users with physical printers that
have certain site-specific, default attribute values.
It also allows setting
up fan-in and fan-out queues, where several similar logical printers can send
jobs to one queue, or where one queue can issue jobs to more than one output
device.
1.1.5 Documents and Jobs
Documents are files that users print. Some documents are formatted in a printer language, such as PCL or PostScript, by an application or by a printer driver. They can also be simple text files with little or no formatting information.
A request to print one or more documents creates a job in the system.
The print system assigns the job and its documents unique identifiers that
are used for tracking and management.
The print system also gives the job
a name and inserts the job at the end of a queue for printing.
1.1.6 Initial-Value Objects
The system supports two objects that supply an initial set of attributes to jobs and documents:
initial-value-job
initial-value-document
An
initial-value-job
object is a set of job attributes
that is applied to jobs upon the job's submission to the system.
You can associate
one or more logical printers on a spooler with an
initial-value-job
object to cause all jobs submitted to those printers to take on
the initial set of job attributes.
Users can specify an
initial-value-job
object as part of a print job submission to cause the job to take
on the attributes.
An
initial-value-document
object is similar to an
initial-value-job
object, except that it can contain only document
attributes and applises to the individual documents that comprise jobs.
Initial-value objects apply commonly-used sets of job and document attributes
to their print jobs.
You can create as many of them as you like, and add,
remove, or change the attributes and values they contain.
1.1.7 Supported and Ready Attributes
Several attributes declare when certain objects or features are supported
and ready for use.
These attributes are referred to as
xxx-supported
and
xxx-ready
attributes.
Most of these attributes
apply to printers and are set by administrators and operators.
A few of these
attributes apply to servers, but those are set by the servers and are read
only.
The spooler schedules jobs for printing based on job requirements and
printing features that are ready to use.
Many printing capabilities need to
be declared as supported and ready for use before users can take advantage
of them.
Administrators and operators need to set certain
xxx-supported
and
xxx-ready
attributes so that users can use
features of an output device or of the printing software.
For example, you
need to set the
sides-supported
and
sides-ready
attributes of a physical printer so that users can print two-sided
documents .
Physical printers, logical printers, spoolers, and supervisors treat supported and ready attributes as described in the following list:
Physical printers have both
xxx-supported
and
xxx-ready
attributes.
When a job specifies
input-tray=top
, the physical printer attributes
input-trays-supported
and
input-trays-ready
must both contain "top"
as one of their values.
The feature must be both supported and ready to receive jobs that specify
the feature.
If the feature is supported but not ready, the job will not be
scheduled until the feature becomes ready.
Some
xxx-supported
attributes have no
xxx-ready
counterpart.
Logical printers have only
xxx-supported
attributes.
Readiness of a feature only pertains to physical printers.
Jobs
can be submitted to a logical printer when the features it requests are supported.
Spoolers have several
xxx-supported
and
xxx-ready
attributes that specify the objects and capabilities,
such as logical printers and queues, defined in the spooler's database.
Supervisors have several
xxx-supported
and
xxx-ready
attributes that specify the objects and capabilities
defined on the supervisor and its database.
See
Chapter 5
for more information about the supported
and ready attributes you need to set.
1.1.8 Name Services
In Advanced Printing Software, servers, printers, and queues are identified
by name.
Name services make it possible for distributed clients and servers
to find the network address of an object from its name.
Clients and servers
use the name services to locate one another when processing requests.
1.1.9 Server Databases
Servers maintain objects, such as printers, queues, and jobs, in a persistent, on-disk database. That allows you to define attributes for those objects that remain on the system until changed, even when it is rebooted. You create printer, queue, and initial-value objects to support the needs of users. Job and document objects are created when print clients submit jobs. All of these objects, except for physical printer objects, are stored in a spooler's database. Physical printer objects are stored in supervisor databases.
In addition to the objects mentioned, each server database holds a server
object that it uses to store attributes that describe the server, such as
its name, whether it is a supervisor or spooler, the names of printers and
queues it supports, and so forth.
1.1.10 User Classes and Access Control
To place limits on which users are permitted to manage the Advanced Printing Software, the print system defines distinct classes of users and the operations that each class can perform.
Administrators can perform any operation.
Operators can perform only certain management operations, such as enabling and disabling printers and setting supported and ready attributes.
End users are the least privileged users, and are limited to submitting print jobs and viewing their job and printer status.
Access control lists are used to limit access to spoolers and supervisors.
Administrators define access control lists that specify which users perform
certain kinds of operations on a server by server basis.
1.1.11 Notification Profile and Events
You can stay informed about how your printing environment is functioning
by define notification profiles.
Server, printer, queue, job, and document
objects in the system have various events associated with them.
For example,
there are events that tell you when a printer changes state, when a job completes,
and when a server is being shut down.
In addition to specifying a list of
events, the notification profile specifies the means by which you will be
notified whenever certain events occur.
You can choose to be informed of events
by e-mail or on your X/Motif console.
1.2 Software Components
This section describes Advanced Printing Software components in more
detail.
It covers the client programs, server programs, server daemons, printer
attribute files, translators, and modification filters.
1.2.1 Client Interfaces
Advanced Printing Software includes a command-line interface (CLI) to
the system and three Graphical User Interfaces (GUIs).
1.2.1.1 End-User Interface
The CLI accesses all print, list, and job removal programs that end
users access.
In addition to the CLI, end users can use the
pdprint
and
pdprintinfo
GUI interfaces to perform these
functions.
The installation procedure integrates the
pdprint
and
pdprintinfo
GUIs into the CDE desktop, making them
the default print and print information actions.
1.2.1.2 Administrative Interfaces
All system functions are accessable to print administrators through
the CLI, and many of the same functions can be performed using the
pdprintadmin
GUI.
1.2.2 Server Programs
Advacned Printing Software includes three primary server programs that provide the bulk of the print system capabilities:
Spooler (pdsplr
)
Supervisor (pdspvr
)
LPD Outbound Gateway Supervisor (pdspvlpr
)
These server programs are multithreaded applications, capable of simultaneously
handling many printers, jobs, and requests.
In small-to-medium-sized installations,
you might need only one spooler process and one supervisor process.
Larger
installations (more than 50 printers) will need to run more than one supervisor
process.
If you need to support printing from the print system to existing
lpr
or
lpd
systems or printers, you will need
to configure the LPD Outbound Gateway Supervisor.
1.2.2.1 Spooler
The spooler,
pdsplr
, is a central component in the
print system.
It performs the following functions:
Collects print jobs in queues
Applies initial-value attributes to job and documents
Schedules print jobs for printing based on job requirements and printer capabilities
Transfers jobs to supervisors when printers are ready to print
Makes status available to clients
Notifies users and administrators when significant events occur
Clients make requests to submit print jobs to named printers.
The spooler
puts the job in a queue associated with the printer and applies
initial-value-job
and
initial-value-documen
t
attributes to the job and its documents, respectively.
The spooler stores
the job's document files in a spool directory, where it is accessed by or
delivered to a supervisor.
When the associated physical printer is ready to
accept the job, the spooler transfers the job to the supervisor for printing.
1.2.2.2 Supervisor
The supervisor,
pdspvr
, controls and communicates
with output devices connected directly to a host or through network connections.
It is responsible for sending document data to the output device and for returning
and reporting status information about job progress while the job is in the
printing state.
It can also report when the device is not responding to communication
attempts.
A supervisor process can control and communicate with as many as 50
output devices of various types and connection methods.
Depending on the printer,
its native language, and its connection capabilities, the supervisor offers
bidirectional communication, flexible device control, multiple printer languages,
filters that can translate or modify the document data stream, and optional
formatted separator pages.
1.2.2.3 LPD Outbound Gateway Supervisor
The LPD Outbound Gateway Supervisor,
pdspvlpr
, allows
users to submit print jobs to existing
lp
or
lpr
printers or print systems in your environment.
You can submit
jobs to an LPD queue and remove jobs that have not already printed from the
queue.
1.2.3 Server Daemons
The Advanced Printing Software includes the following daemon programs that work on behalf of the client interfaces and server programs:
Protoserver (rpc.pts
)
Notification Server (pdntfs
)
Console Notification Daemon (pdconntf
)
The protoserver daemon serves as the server registration and lookup agent for spoolers and supervisors running on a host. Clients must first communicate with a host's protoserver to acquire the RPC binding information for servers specified in an operation. The protoserver registers itself on a host using a fixed, registered program number.
The notification server distributes notification messages issued by
spoolers and supervisors.
It is responsible for sending e-mail or displaying
messages on the GUI message areas when significant events occur.
The console
notification daemon,
pdconntf
, is required when you want
notification messages to appear in the CDE system console window.
Only one copy of each of these daemons runs on a host at a time.
The
protoserver daemon and the notification server daemon run automatically, under
control of the
inetd
program.
1.2.4 Printer Attribute Files
Advanced Printing Software supports many printer models.
For each supported
printer model, the software includes a printer attribute file.
Each file specifies
a set of attributes that describe and pertain to the capabilities of the respective
printer model, without options.
Use printer attribute files to install newly
supported printers in your print system.
The files have names that make it
easy to identify the printer manufacturer and model to which they apply.
1.2.5 Translation and Modification Filters
The supervisor can translate or modify the document data stream while passing it to the output device. Administrators can set up one or more translation filters to automatically translate documents of one format to a different format that is compatible with a target printer. Users can specify modification filters while printing a document. Such a filter might be used to add line and page numbers, remove unwanted sections of a document, or to change the code set of the document to conform to a printer's requirements.
You can configure most programs that take their input from
stdin
and sends output to
stdout
, including most
standard UNIX utilities, as a translation or modification filter.
You can
also develop and configure your own filter programs.
Advanced Primting Software includes a translation filter,
trn_asciips
, that changes text documents to PostScript.
This filter
can also format text with one-, two-, or four-page images per side (number-up),
and can print them in landscape or portrait orientations (content-orientation).
You need to set up your supervisor's filter-definition attribute to use this
feature if users need to print text files on PostScript printers.