BRUCE@UMDD.BITNET (Bruce Crabill) (01/09/90)
Archive-name: netprint/release
Original-posting-by: BRUCE@UMDD.BITNET (Bruce Crabill)
Original-subject: NETPRINT
Reposted-by: emv@math.lsa.umich.edu (Edward Vielmetti)
Ho! Ho! Ho! (Ok, so I'm 3 days late). I've got a Christmas present for the
IBM TCP types. For the last semester here at UMD, we have been using a
locally written program called NETPRINT for allowing our workstation lab
users to be able to print from our IBMs to their local printers in the labs.
This program supported the MDQS protocol which is what our Unix systems
around here use (MDQS is more general than LPR, but still tends to be very
Unix specific (we have also come up with a new protocol called NDQS which
attempts not to be Unix specific)). NETPRINT is designed to support several
protocols and I have just finished adding the LPR protocol to it. Where
possible, options are mapped to the appropriate feature of a given protocol
(but unfortunately, there are lots of features that are specific to a single
protocol and because of this there are a lot of options that are specific to
the protocol being used). This program is just a print file submitter, it
does not include any server functions (it won't replace Columbia's LPD,
but can submit files to it). The following file are in the UMDTCP FILELIST
on the LISTSERV on UMDD:
NETPRINT FAL - The version of the module to be used under FAL.
Rename to NETPRINT MODULE after receiving it.
NETPRINT MODULE - The UMDWISC version of the module. Don't
get this file if you are using FAL.
NETPRINT HELPCMS - The help file for NETPRINT.
UNTPRT PPASCAL - The packed source file. After receiving it,
do a: 'COPY UNTPRT PPASCAL A UNTPRT PASCAL A
(OLDDATE UNPACK'.
SYSPRT NAMES - The system printer definition file. This is
a sample version, the installation will need
to customize it with their own printer
descriptions.
The LPR stuff is new and we don't use LPR/LPD at UMD. I have tested it out
as best as I can, but I am willing to try to fix any problems that exist.
The program as a whole as been used all semester without any problems.
The following is the contents of the NETPRINT HELPCMS file so you can get
an idea of what it can do:
.cs 0 on
The NETPRINT command lets you print a file to a network attached
printer.
FORMAT: NETPRINT <printer> <filename> <filetype> (<options>
EXAMPLE: You have a file called SAMPLE LISTING that you would like
to print on the laserwriter in the workstation lab in the
Computer Science Center. To do so, enter:
NETPRINT CSCWAM-LPL SAMPLE LISTING
.cs 0 off
.cs 1 on
NETPRINT
Use the NETPRINT command to print a CMS file on a network attached
printer.
.cs 1 off
.cs 2 on
The format of the NETPRINT command is:
+----------+-----------------------------------------------------+
| | +- -+ |
| NETPRINT | | <prtid> | <fn> <ft> [ <fm>|* ] |
| | | <addr>:<name> | |
| | +- -+ |
| | |
| | [ ( [ ASCII ] |
| | [ Attribute <name> <value> ] |
| | [ ATTRIBUTEAppend <name> <value> ] |
| | [ ATTRIBUTECase ] |
| | [ BAnner <value> ] |
| | [ BANNERCase ] |
| | [ Binary | NOBinary ] |
| | [ BUffsize <n> ] |
| | [ CC | NOCC ] |
| | [ CLass <value> ] |
| | [ CLASSCase ] |
| | [ Copies <n> ] |
| | [ DEVCase ] |
| | [ FONT1 <name> ] |
| | [ FONT2 <name> ] |
| | [ FONT3 <name> ] |
| | [ FONT4 <name> ] |
| | [ FONTCase ] |
| | [ Format <value> ] |
| | [ FORMATCase ] |
| | [ FORMS <name> ] |
| | [ FORMSCase ] |
| | [ Host <addr> ] |
| | [ Indent <n> ] |
| | [ Length <n> ] |
| | [ LInecount <n> ] |
| | [ Mail ] |
| | [ MAILAddr <mailaddr> ] |
| | [ MOde <value> ] |
| | [ MODECase ] |
| | [ NOFF ] |
| | [ NOHeader ] |
| | [ NOINdent ] |
| | [ NOTRim ] |
| | [ NUMber ] |
| | [ PASsword <pwd> ] |
| | [ Port <n>|<name> ] |
| | [ PRINTDate <date> ] |
| | [ PRINTIndent <n> ] |
| | [ PRINTTime <time> ] |
| | [ PRIority <n> ] |
| | [ TIMeout <n> ] |
| | [ TItle <title> ] |
| | [ TITLECase ] |
| | [ TRC | NOTRC ] |
| | [ TYpe <type> ] |
| | [ Verbose ] |
| | [ Width <n> ] |
| | [ Xarg <value> ] |
| | [ XARGAppend <value> ] |
| | [ XARGCase ]] |
| | |
+----------+-----------------------------------------------------+
.cs 2 off
.cs 3 on
Where:
<prtid>
The nickname of a printer definition entry in one of the printer
NAMES files. The SYSPRT NAMES file contains the standard printer
definitions. The user may also define a USRPRT NAMES file that
contains their personal definitions. These NAMES files contain
various parameters for each printer defined. Most of these
parameters correspond to options. If the option is also given,
then the option will override the parameter in the NAMES file.
The format of these files is defined in the usage notes below.
<addr>:<name>
The Internet address (in dotted decimal notation) of the server
and the queue name on that server for the desired printer. The
TYPE option must also be specified to give the protocol to be
used to send the print file.
<fn> <ft> <fm>
The fileid of the file to be printed. If the filemode is not
specified, '*' is used.
.cs 3 off
.cs 4 on
Options:
ASCII
The given file contains ASCII text. No translation is needed.
This option may not be used with the BINARY, CC, or TRC options.
This option differs from the BINARY option in that although the
data may be ASCII, its record structure is defined by the CMS file
containing the data. The data would not normally contain control
characters.
ATTRIBUTE <name> <value>
Set the specified attribute to the given value. Attributes are
used to supply various kinds of parameters to the queueing
subsystem and to the device drivers to control how a file is
printed. Multiple ATTRIBUTE options may be given. If the value
contains spaces or parentheses, then it should be enclosed in
quotes. If any attributes are present in the printer's entry in
the NAMES file (if using the nickname form), then the ones
specified on the ATTRIBUTE option will override and replace those.
Use the ATTRIBUTEAPPEND option to combine the two.
ATTRIBUTEAPPEND <name> <value>
Like the ATTRIBUTE option, except that if attributes are present in
the printer's entry in the NAMES file, then there will be appended
to those rather than replacing them.
ATTRIBUTECASE
An option that indicates that attribute names and values provided
on the ATTRIBUTE or ATTRIBUTEAPPEND options or from the printer's
entry in the NAMES file should not be forced to lowercase. They
should be used as entered.
BANNER <value>
The user identifier that is printed on the header page. Some
implementations ignore this value and use the MAILADDR value
instead. If the value contains spaces or parentheses, then it
should be given in quotes. This option is only valid for NDQS
type printers.
BANNERCASE
An option that indicates that the banner text provided on the
BANNER option should not be forced to uppercase. The banner text
should be used as entered.
BINARY
The input file contains binary data. The file is not translated
from EBCDIC to ASCII, nor is any formatting done to the data.
This option is assumed if the filetype is DVI or LISTBIN.
NOBINARY
An option to prevent the data from being treated as binary data.
BUFFSIZE <n>
The size of the buffer (in bytes) that is used to hold the data
when sending to a NDQS printer. This is the amount of data that
may be send before waiting for a response, so a large value will
allow for more effective network utilization and transmission
speed. The default is to allocate a buffer whose length is half
the remaining available free memory. The actual value may be
limited by the amount of data the remote server will support.
CC
An option that causes the first character of each record to be
interpreted as an Carriage Control character. The following ANSI
CC characters are supported: '1', '+', ' ', '0', and '-', as well
as the machine CC equivalents of these. Any other character is
treated as if it were a blank. This option is assumed if the
filetype is LISTING, LIST3800, or LISTCPDS.
NOCC
An option to prevent the first column of each record from being
interpreted as an ANSI Carriage Control character.
CLASS <value>
The job classification value to be printed on the header page.
The default is to use the submitter's host name. If the value
contains spaces or parentheses, then it should be enclosed in
quotes. This option is only valid for LPR type printers.
CLASSCASE
An option that indicates that the classification text provided
on the CLASS option should not be forced to uppercase. The
classification text should be used as entered. This option is
only valid for LPR type printers.
COPIES <n>
Print <n> copies of the given file. Values between 1 and 999 are
accepted, the remote server may limit the user to less.
DEVCASE
An option that indicates that the printer's name is not to be
forced to lowercase. Unix systems are case sensitive and usually
have their printer names in lowercase. By default, this program
will translate all printer names to lowercase. This option
disables this and allows the printer's name to be used as is.
FONT1 <name>
The name of the R font for the TROFF, DITROFF, or DVI filters.
This font must exist on the remote system. This option is only
valid for LPR type printers.
FONT2 <name>
The name of the I font for the TROFF, DITROFF, or DVI filters.
This font must exist on the remote system. This option is only
valid for LPR type printers.
FONT3 <name>
The name of the B font for the TROFF, DITROFF, or DVI filters.
This font must exist on the remote system. This option is only
valid for LPR type printers.
FONT4 <name>
The name of the S font for the TROFF, DITROFF, or DVI filters.
This font must exist on the remote system. This option is only
valid for LPR type printers.
FONTCASE
An option that indicates that the values provided on the FONT1
thru FONT4 options or from the printer's entry in the NAMES file
should not be forced to lowercase. The names should be used as
entered. This option is only valid for LPR type printers.
FORMAT <value>
The type of file being submitted. For example: POSTSCRIPT or
TEXT. Used to indicate to the device driver any special
preprocessing that needs to be done. For LPR, the value must be
one of the following values which specify specific filters to
preprocess the data:
TEXT, print the file after applying the normal text filter
on the data. Control characters (other than the normal
print positioning ones like LF, CR, FF, BS, etc.) are
removed.
TEXTCTL, print the file after applying the normal text
filter on the data. Like the TEXT format, except that
control characters are left intact.
TEXTPR, print the file by feeding it thru the 'pr' command.
FORTRAN, print the file after applying the FORTRAN carriage
control filter on the data.
TROFF, print the file after applying the TROFF filter on the
data.
DITROFF, print the file after applying the DITROFF filter
on the data.
DVI, print the file after applying the DVI filter on the
data.
PLOT, print the file after applying the PLOT filter on
the data.
RASTER, print the file after applying the simple raster
filter on the data.
CIFPLOT, print the file after applying the CIFPLOT filter
on the data.
PASSTHRU, print the file after applying the passthru filter
on the data. This filter allows the data to be sent to
the printer unchanged.
This option is only valid for LPR or NDQS type printers.
FORMATCASE
An option that indicates that the value provided on the FORMAT
option or from the printer's entry in the NAMES file should not
be forced to lowercase. The value should be used as entered.
FORMS <name>
Print the output on the given type of forms. This option is only
valid for MDQS and NDQS printers and the valid form names are
defined by the MDQS or NDQS server you are using. The default is
'white'. If the form name is also given on the printer's entry in
the NAMES file, then this option will override that value.
FORMSCASE
An option that indicates that the form name provided on the FORMS
option or from the printer's entry in the NAMES file should not
be forced to lowercase. The form name should be used as entered.
HOST <addr>
Override the Internet address that was specified on the :node tag
in the NAMES file and use the provided address instead.
INDENT <n>
Indent each line by the given amount before printing it. If this
value is negative, then this many characters will be deleted from
the beginning of each line of data. This option has no connection
to the NOINDENT option.
LENGTH <n>
The number of lines to be printed on each page of output. This
option is only valid for LPR type printers.
LINECOUNT <n>
Used with the NUMBER option to specify the number of user data
lines that are to be printed on each page. This does not include
the 3 line page heading that each page start with. The default
value is 55.
MAIL
Request that the server that prints the file send the user mail
when it has completed printing the file.
MAILADDR <mailaddr>
The mail address of the user to receive any advisories or print
job completion messages that the server may send. This option is
only valid for MDQS and NDQS printers. The default is the local
user. The mail address should be given in the form
'<userid>@<node>.<domain>'.
MODE <value>
The representation format of the submitted file when it is received
by the remote server. For example: NETASCII, BINARY, or EBCDIC.
This option is only valid for NDQS type printers.
MODECASE
An option that indicates that the value provided on the MODE option
or from the printer's entry in the NAMES file should not be forced
to lowercase. The value should be used as entered.
NOFF
Do not insert FF characters between copies of the file to be
printed. This option is only valid for MDQS and NDQS printers.
NOHEADER
Don't print the header page that normally precedes the user's data
when it is printed. This is useful where the printer is normally
just used by a single person and the header pages are just a waste
of paper. For multiuser printers, headers should be generated so
that users can determine which output belongs to whom. This option
is only valid for LPR printers.
NOINDENT
Prevent the printer device driver from automatically indenting
the output on the page. Most printers don't seem to do this, but
the option exists in case you find one that does. This option is
only valid for MDQS and NDQS printers.
NOTRIM
Don't strip any trailing blanks from the data records before
printing them.
NUMBER
The file is to be printed with line numbers and page headings in
the same format as produced by the PRTNUM program. This option
may not be used with the BINARY, CC, or TRC options.
PASSWORD <pwd>
This option permits the user to specify a password that will allow
the user to modify attributes or to delete the file at a later
time. This option is only valid for NDQS printers. It is
recommended that this password not be the same as the user's logon
password. If the password contains spaces or parentheses, then it
should be given in quotes.
PORT <n>|<name>
The TCP port number to be used when connecting to the remote
server. Either a decimal number or the port name may be given.
The default is to use the port normally associated with the printer
protocol used.
PRINTDATE <date>
The file should not be printed until the requested date. The
date is given in the mm/dd/yy format, where mm and dd are one or
two digit integers and yy is a two or four digit year. The year
is optional and if omitted, the current year will be used. This
option is only valid for MDQS and NDQS printers.
PRINTINDENT <n>
When the file is printed, indent each line by the given amount.
This value may be negative, in which case the given number of
characters will be deleted from the beginning of each line. This
option differs from the INDENT option in that the indenting is done
by the printer device driver rather than by the NETPRINT program.
This option is only valid for LPR printers.
PRINTTIME <time>
The file should not be printed until the requested time. The
time is given in the hh:mm:ss format, where hh, mm, and ss are
one or two digit integers. The seconds are optional and if
missing, the value zero will be used. This option is only valid
for MDQS and NDQS printers. PRINTTIME and PRINTDATE may be used
together to specify a certain time on a given date.
PRIORITY <n>
A value in the range of 0 to 127 specifying the priority of this
print request. This option is only valid for MDQS and NDQS
printers. The default is 64. Unfortunately, the MDQS and NDQS
documentation don't seem to state if 0 or 127 is the highest, so
you probably ought to use the default.
TIMEOUT <n>
The number of seconds to wait when waiting for a response from
the remote host. The default is 60 seconds.
TITLE <title>
The title text to appear on the header page. If not specified,
then the default is '<fn> <ft>'. If the title text contains
spaces or parentheses, then it should be given in quotes.
TITLECASE
An option that indicates that the title text provided on the
TITLE option should not be forced to uppercase. The title should
be used as entered.
TRC
An option that indicates that the first character of each record
is a TRC (Table Reference Character) byte. If the CC option is
in effect, then the CC character is first, followed by the TRC
character. The TRC character is not processed by this program.
This option is assumed if the filetype is LIST3800.
NOTRC
An option to prevent the TRC character from being taken from each
input record.
TYPE <type>
An option that allows the user to specify the network printing
method to be used to send the file. If the printer is specified
using the <prtid> form, then it will be used to select the entry
with :type.<type>. If this option is not used, then the first
entry with :nick.<prtid> will be used and the network printing
method will be taken from the :type tag of that entry. This
option must be specified when using the <node>:<dev> form.
VERBOSE
Display progress and status messages.
WIDTH <n>
The number of characters to be printed on each line of output.
This option is only valid for LPR type printers.
XARG <value>
An option that is used to pass extended arguments to the device
driver when the file is printed. This option is only valid for
MDQS and NDQS printers. The value is device specific and is not
checked for validity. If the value contains spaces or parentheses,
then it should be given in quotes. Multiple XARG options may be
given. If any extended arguments are present in the printer's
entry in the NAMES file (if using the nickname form), then the ones
specified on the XARG option will override and replace those. Use
the XARGAPPEND option to combine the two.
XARGAPPEND <value>
Like the XARG option, except that if extended arguments are
present in the printer's entry in the NAMES file, then these will
be appended to those rather than replacing them.
XARGCASE
An option that indicates that the extended arguments provided on
the XARG or XARGAPPEND options or from the printer's entry in the
NAMES file should not be forced to lowercase. They should be used
as entered.
.cs 4 off
.cs 5 on
Usage notes:
1. The following naming convention is used for most of the default
printers in SYSPRT NAMES:
<location>-<type>[<orient>].
Where:
<location> is the name of the location of the printer. For
example CSCWAM, CVILLE, EPSL, UGLI, or WOR.
<type> is the type of text you are trying to print. Currently
there is LP for ASCII line printer and PS for Postscript.
Normally you will want LP.
<orient> is the character L for landscape or P for portrait.
This specifies how the text will appear on the page. This
letter is optional, if not specified, then the printer's
default will be used (usually portrait). This is not
used on Postscript types because the Postscript in the
file should supply this information.
Examples:
CSCWAM-LPL - Landscape line printer output at the workstation
lab in the Computer and Space Sciences building.
CVILLE-LP - Line printer output using the printer's default
orientation at the Centreville Hall workstation lab.
EPSL-LPP - Portrait line printer output at the Engineering
and Physical Sciences Library workstation lab.
WOR-PS - Postscript output at the workstation lab in
Worcester Hall.
2. The SYSPRT NAMES file defines the printer ids for the commonly
available printers at a site. The users may also define
their own definitions. These are kept in the USRPRT NAMES
file, which the user may provide on any of their accessed disks.
When searching for a printer definition, the USRPRT NAMES
file is checked first. If not found in this file or if the
file does not exist, then the SYSPRT NAMES file will be
checked. This program uses the tags described below (others may
exist, they will be ignored). The following tags are required
to exist:
:type.<type>
The printer protocol to be used to send to this printer. The
choices are LPR, MDQS, and NDQS.
:node.<addr>
The Internet address of the host that the printer's server is
on. Currently this must be given in dotted decimal form (this
restriction will be removed in the future).
:dev.<name>
The name of the printer queue on the above host that the file is
to be submitted to.
The following tags are optional:
:attributes.<name> <value> [; <name> <value> ] ...
One or more sets of attribute names and values. This tag is
used by NDQS printers to set various attributes on the print
request. If multiple attributes are needed, then they should
be given on a single :attribute tag seperated by semicolons.
If the value contains semicolons, then it should be enclosed
in quotes.
:attributescase.<Yes|No>
If yes, then the value on the :attribute tag will not be
converted to lowercase. The value will be used as entered.
This tag is only valid for NDQS type printers.
:class.<value>
The job classification value to be printed on the header page.
This tag is only valid for LPR type printers.
:classcase.<Yes|No>
If yes, then the value on the :class tag will not be converted
to uppercase. The value will be used as entered. This tag is
only valid for LPR type printers.
:devcase.<Yes|No>
If yes, then the value on the :dev tag will not be converted
to lowercase. The value will be used as entered.
:font1.<name>
The name of the R font for the TROFF, DITROFF, or DVI filters.
This font must exist on the remote system. This tag is only
valid for LPR type printers.
:font2.<name>
The name of the I font for the TROFF, DITROFF, or DVI filters.
This font must exist on the remote system. This tag is only
valid for LPR type printers.
:font3.<name>
The name of the B font for the TROFF, DITROFF, or DVI filters.
This font must exist on the remote system. This tag is only
valid for LPR type printers.
:font4.<name>
The name of the S font for the TROFF, DITROFF, or DVI filters.
This font must exist on the remote system. This tag is only
valid for LPR type printers.
:fontcase.<Yes|No>
If yes, then the values on the :font1 thru :font4 tags are not
converted to lowercase. The value will be used as entered.
This tag is only valid for LPR type printers.
:format.<value>
The type of file being submitted. For example: POSTSCRIPT or
TEXT. Used to indicate to the device driver any special
preprocessing that needs to be done. For LPR, the value must
be one of the following values which specify specific filters
to preprocess the data:
TEXT, print the file after applying the normal text filter on
the data. Control characters (other than the normal print
positioning ones like LF, CR, FF, BS, etc.) are removed.
TEXTCTL, print the file after applying the normal text filter
on the data. Like the TEXT format, except that control
characters are left intact.
TEXTPR, print the file by feeding it thru the 'pr' command.
FORTRAN, print the file after applying the FORTRAN carriage
control filter on the data.
TROFF, print the file after applying the TROFF filter on the
data.
DITROFF, print the file after applying the DITROFF filter on
the data.
DVI, print the file after applying the DVI filter on the data.
PLOT, print the file after applying the PLOT filter on the
data.
RASTER, print the file after applying the simple raster filter
on the data.
CIFPLOT, print the file after applying the CIFPLOT filter on
the data.
PASSTHRU, print the file after applying the passthru filter on
the data. This filter allows the data to be sent to the
printer unchanged.
This tag is only valid for LPR or NDQS type printers.
:formatcase.<Yes|No>
If yes, then the value on the :format tag will not be converted
to lowercase. The value will be used as entered. This tag is
only valid for LPR or NDQS type printers.
:forms.<name>
The name of the forms that the output should be printed on.
This is site specific. This tag is only valid for MDQS and
NDQS type printers.
:formscase.<Yes|No>
If yes, then the value on the :forms tag will not be converted
to lowercase. The value will be used as entered. This tag is
only valid for MDQS and NDQS type printers.
:indent.<n>
The data sent to this printer should be indented by the
indicated amount. If this value is positive, that many spaces
will be prefixed to each line. If the value is negative, then
that many characters will be truncated from the beginning of
each line.
:length.<n>
The number of lines to be printed on each page of output. This
tag is only valid for LPR type printers.
:mode.<value>
The representation format of the submitted file when it is
received by the remote server. For example: NETASCII, BINARY,
or EBCDIC. This tag is only valid for NDQS type printers.
:modecase.<Yes|No>
If yes, then the value on the :mode tag will not be converted
to lowercase. The value will be used as entered. This tag is
only valid for NDQS type printers.
:noff.<Yes|No>
If Yes, then no FF character will be output between multiple
copies of the file to be printed. This tag is only valid for
MDQS and NDQS type printers.
:noheader.<Yes|No>
If Yes, then the header page that normally precedes the user's
data when printed is not output. This is useful where the
printer is normally just used by a single person and the header
pages are just a waste of paper. For multiuser printers,
headers should be generated so that users can determine which
output belongs to whom. This tag is only valid for LPR type
printers.
:noindent.<Yes|No>
If Yes, the device driver is instructed not to do any automatic
indentation that it might do. This tag has no relation to the
:indent tag. This tag is only valid for MDQS and NDQS type
printers.
:printindent.<n>
When the file is printed, indent each line by the given amount.
This value may be negative, in which case the given number of
characters will be deleted from the beginning of each line.
This option differs from the :indent tag in that the indenting
is done by the printer device driver rather than by the NETPRINT
program. This tag is only valid for LPR type printers.
:port.<n>|<name>
The TCP port number to be used when connecting to the remote
server. Either a decimal number or the port name may be given.
The default is to use the port normally associated with the
printer protocol used.
:width.<n>
The number of characters to be printed on each line of output.
This tag is only valid for LPR type printers.
:xargs.<arg>[;<arg>] ...
One or more extended arguments. Extended arguments are passed
to the printer's device driver. The format of the arguments
are defined by the device driver. If multiple extended
arguments are needed, then they should be given on a single
:xargs tag separated by semicolons. If the argument contains
semicolons, then it should be enclosed in quotes. This tag is
only valid for MDQS and NDQS type printers.
:xargscase.<Yes|No>
If yes, then the value on the :xargs tag will not be converted
to lowercase. The value will be used as entered. This tag is
only valid for MDQS and NDQS type printers.
.cs 5 off
.cs 6 on
Responses:
None.
During normal operation, this command will produce no messages (unless
the VERBOSE option was specified). If an error is detected, an error
message will be issued to explain the nature of the error.
.cs 6 off