xlator_call(8) System Manager's Manual xlator_call(8)Name
xlator_call - shell script to invoke PostScript translators
Syntax
xlator_call datatype orientation pagesize width length indent
Description
This Bourne shell script can be called by the line printer daemon to invoke the appropriate translator to convert each data type to Post-
Script. The data type passed by may be specified by using the command with the -Ddatatype option, or by using the Da=datatype capability
in the file.
For a file in a data syntax to be translated to PostScript, the script must contain a case branch which recognizes the data type string and
calls a suitable filter. The supplied recognizes the ANSI, ASCII, ReGIS and Tektronix 4014 data types.
Arguments
datatype
The valid data types are: or any other for which a translator has been installed.
orientation
The valid orientations are: portrait or landscape.
pagesize
The valid page sizes are: or
width
The width (in characters) of the page.
length
The length (in lines) of the page.
indent
The amount (in spaces) the output is to be indented.
All the valid arguments are described in detail by the reference page.
Examples
An example shell script is shown below:
case $datatype in
ansi)
exec ansi_ps -F $pagesize -O $orientation -e "$@";;
ascii)
echo "( 04) cvn {} def"
exec ln03rof -w$width -l$length -i$indent;;
postscript)
exec cat;;
tek4014)
exec tek4014_ps -F $pagesize -O $orientation;;
regis)
exec regis_ps -F $pagesize -O $orientation;;
*)
echo "$0: Translator for data type $datatype not installed" >&2
esac
When the shell script is called, the path searched is:
/usr/local/lib/lpdfilters:/usr/ucb:/bin:/usr/bin:
/usr/lib:/usr/lib/lpdfilters
Files
The script
See Alsolno3rof(8), printcap(5), ansi_ps(8), lpd(8)xlator_call(8)
Check Out this Related Man Page
lpd(8) System Manager's Manual lpd(8)Name
lpd - line printer daemon
Syntax
/usr/lib/lpd [ -l ] [ -L logfile ] [ portnumber ]
Description
The line printer daemon uses the system calls and to receive requests to print files in the print queue, transfer files to the spooling
area, display the queue, and remove jobs from the queue.
The line printer daemon is invoked by the command file when the system goes multi-user (normally at system start up). The daemon looks at
the file to find out about the capabilities of existing printers, and prints any files that were not printed when the system last stopped
operating.
The Internet port number used to rendezvous with other processes is normally obtained with but can be changed by using the portnumber argu-
ment.
Access to the facilities provided by the daemon is controlled by only allowing requests from the machines listed in the or files. The file
is described on the reference page. The file is a list of names consisting of one host machine name per line. An * character at the start
of any line in allows print requests from all systems. The machine names listed in the and files may optionally contain the local BIND
domain name. For more information on BIND, see the Guide to the BIND/Hesiod Service.
You can also control access to the daemon by specifying the rs capability for a particular printer in the file. This restricts the printer
users to those with accounts on the machine which the printer is connected to.
The file lock in each spool directory is used to prevent multiple daemons from becoming active simultaneously, and to store information
about the daemon process for and
After the daemon has successfully set the lock, it scans the directory for command files with names beginning with cf . These files spec-
ify names of files which are to be printed and parameters affecting how the files are printed. Each line in a command file begins with a
key character to specify what to do with the remainder of the line. The key characters and their meanings are shown below. They are
listed in the order that they would appear in a command file.
If a file is to be printed but can not be opened, a message will be placed in the logfile (by default, the system console).
The daemon uses to provide exclusive access to the lock file. The lock is automatically removed by the kernel when a process terminates
for any reason. The lock file contains two lines. The first is the process id of the daemon and the second is the control file name of
the current job being printed. The second line is updated for use by and
The key characters in the command file and their meanings are as follows:
Hhost Host Name. Name of the machine where was invoked.
Puser Person. Login name of the person who invoked This is used to verify ownership by
Jjob Job Name. String to be used for the job name on the banner page.
Cclass Classification. String to be used for the classification line on the banner page.
Luser Literal. The line contains identification information from the password file and causes the banner page to be printed.
Inum Indent. The number of characters by which the output is indented (in ASCII).
Muser Send mail to the specified user when the current print job completes.
1font Troff Font R. Name of the font file to use instead of the default.
2font Troff Font I. Name of the font file to use instead of the default.
3font Troff Font B. Name of the font file to use instead of the default.
4font Troff Font S. Name of the font file to use instead of the default.
Wnum Width. Changes the page width (in characters) used by and the text filters.
Znum Length. Changes the page length (in lines) used by and the text filters.
Ddata_type
Data type of the job.
(PostScript (TM) printers only.)
<input_tray
Selects the input tray that supplies paper for the print job.
(PostScript (TM) printers only.)
>output_tray
Selects the output tray where the printed paper is deposited.
(PostScript (TM) printers only.)
Oorientation
Specifies the orientation of the printed output on the page.
(PostScript (TM) printers only.)
Fpage_size
Specifies the size of the pages being printed.
(PostScript (TM) printers only.)
Ssheet_size
Specifies the physical size of the sheets being printed.
(PostScript (TM) printers only.)
Emessage Specifies what happens to messages generated when processing the print job.
(PostScript (TM) printers only.)
Xnum Specifies the number of times each page is printed.
(PostScript (TM) printers only.)
Anum Specifies the first page to be printed for the job.
(PostScript (TM) printers only.)
Bnum Specifies the last page to be printed for the job.
(PostScript (TM) printers only.)
Gnum Specifies the number of pages to be printed on a single physical sheet.
(PostScript (TM) printers only.)
zfilename Layup definition file which alters the appearance of pages (margins, borders, etc).
(PostScript (TM) printers only.)
Ksides Specifies whether the job should be printed on both sides to the physical sheet, and whether the pages should be rotated by 180
degrees.
(PostScript (TM) printers only.)
Ttitle Title. String to be used as the title for
ffilename Formatted File. Name of a file to print which is already formatted.
pfilename Name of a file to print using as a filter.
lfilename Like but passes control characters and does not make page breaks.
tfilename Troff File. The file contains
nfilename Ditroff File. The file contains output (device independent
dfilename DVI File. The file contains TeX output (DVI format from Stanford).
gfilename Graph File. The file contains data produced by
vfilename The file contains a raster image.
cfilename Cifplot File. The file contains data produced by cifplot.
rfilename The file contains text data with Fortran carriage control characters.
xfilename Do not interpret any control characters in the file.
Ufilename Unlink. Name of file to remove upon completion of printing.
Nname File name. The name of the file which is being printed, or a blank for the standard input (when is invoked in a pipeline).
PostScript (TM) Printers With Specialised Support
To use the features of the PostScript (TM) printers for which specialised support is available, you must ensure that :ps=LPS: is set in the
appropriate entry in the file.
For PostScript (TM) printers, the line printer daemon assembles the PostScript (TM) from the users data files and PostScript (TM) device
control modules. The device control modules access device features and manipulate the appropriate printer parameters. Device control mod-
ules (the Dl capability in are provided in an archive file, refer to Device control modules access printer specific features of PostScript
(TM) and are therefore device dependent.
The data type of the spooled files is given by the Da capability in the file. The data type can be overridden by the D key character in
the command file.
The support for PostScript (TM) printers introduces a new method of specifying the type of the data to be printed using the -D option of or
the Da capability in The mechanism for invoking these translators needs to interact with the existing mechanism for invoking filters for
non-text files, so that the existing mechanism can be used if required. The mechanism has the following features:
The new translators are invoked via the shell program which is passed the data type as one of its parameters.
Any old style filter arguments (for example, -t and -x) take precedence over -D (even though will accept the combination). This
means that the if capability in must not be specified if data types are being used.
Filter Capabilities
Two of the capabilities that affect the behaviour of require a more detailed explanation than that given on the reference page.
ct Connection type. This entry in the file determines the type of connection. The following table shows the valid choices for ct, and the
mandatory and optional entries to go with each choice.
-----------------------------------------------
ct= Mandatory Entries Optional Entries
-----------------------------------------------
(R)dev lp of
lat lp, ts, op, os of
remote rp, rm
network of
-----------------------------------------------
Remote means a printer that is connected to another system running a compatible printing daemon. Network means that the output filter
does not use stdout (that is, no lp) and is restarted for each job.
uv ULTRIX version. To enable the ct capability to determine the type of connection, and to ensure % escapes are expanded in all filter
command strings, you must have
:uv=psv1.0:
as part of the entry.
Using Filter Capabilities
This section refers to the programs specified by the following filter capabilities in the file: and
Filters may be specified as pipelines as well as simple commands. The syntax accepts tab or space as word separators, and | to set up a
pipe connection. You can specify arguments to the filters. The individual commands may be specified as full path names or as simple pro-
gram names, in which case the path searched is:
/usr/local/lib/lpdfilters:/usr/ucb:/bin:/usr/bin:
/usr/lib:/usr/lib/lpdfilters
Filter Argument Parameterisation
The arguments to the filter program are normally supplied automatically by but you can assign your own arguments to filters. When argu-
ments are supplied automatically, they are put after the arguments for the first command in a pipeline, or after the arguments of a simple
command.
If you want to assign your own arguments to filters, you must ensure that :uv=psv1.0: is set in the appropriate entry in the file.
Arguments are supplied exactly as for previous releases unless a special character (%) is found anywhere in the command. If a % is found
it tells that you have taken control of passing arguments to the filter. In this case, the default set of arguments are no longer appended
to the argument list. The arguments supplied to the command are those specified in the command string, but with replacing %x pairs with
parameter strings.
To allow the special character, %, to be passed, a pair of %%'s are replaced by a %. It is an error to specify an unknown %x pair. The %x
pairs and the parameter strings that replace them are shown below.
-------------------------------------------------------------
%x Pairs Parameter String
-------------------------------------------------------------
(R)%% %
%0 null string (used to pass null argument or dis-
able default arguments)
%_ space (used to insert spaces in arguments)
%A accounting file
%D data type
%F pagesize
%H host where job was submitted
%I indent
%j job name
%J job id as shown by
%L length
%O orientation
%P printer name
%T title
%U user's login name
%W width
%X pixel width
%Y pixel length
-------------------------------------------------------------
All of the above %x pairs are available to all input filters. For a network printer (:ct=network: in the file) they are all available to
the output filter of. For dev and lat printers the per-job parameters (%H, %U, %J and %j) are not available to the output filter. This is
because the output filter is invoked per session so that per-job parameters are still unset.
Filter Arguments Supplied By lpd
The arguments automatically assigned to each filter by are shown below. For clarity the parameters for each argument are shown as the
appropriate %x pair.
-----------------------------------------------------------------
Filter Parameterised Form of Default Arguments
-----------------------------------------------------------------
(R)cf -x%X -y%Y -n %U -h %H %A
df -x%X -y%Y -n %U -h %H %A
gf -x%X -y%Y -n %U -h %H %A
if -w%W -l%L -n %U -h %H %A
ishinvoked
without the -l option)
if -c -w%W -l%L -n %U -h %H %A
ishinvoked
with the -l option)
nf -w%W -l%L -n %U -h %H %A
of -w%W -l%L
pp -w%W -l%L -h %T
rf -w%W -l%L -n %U -h %H %A
tf -x%X -y%Y -n %U -h %H %A
vf -x%X -y%Y -n %U -h %H %A
xf (no arguments)
Lf (no arguments)
Xf %D %O %F %W %L %I
-----------------------------------------------------------------
The %A argument is only supplied if the af capability is present.
Options-l Log valid requests received from the network. This can be useful for debugging purposes.
-Llogfile
Write error conditions to the file specified by the argument logfile. If this option is not used, error conditions are written to the
system console.
Files
Printer description file
Spool directories
Line printer devices
Socket for local requests
Lists machine names allowed printer access
Lists machine names allowed printer access as trusted machines
See Alsolpq(1), lpr(1), lprm(1), printcap(5), lpc(8), pac(8), xlator_call(8)
Guide to the BIND/Hesiod Service
Guide to System Environment Setup
lpd(8)