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