## The Super Quick Guide to LPRng Printcaps ## Patrick Powell ## Thu Nov 15 13:31:08 PST 2001 # VERSION=3.8.35 # # LPD print queue configuration - Default options # The printcap entry below sets defaults. Add default options # or other entries here # .common: :sd=/var/spool/lpd/%P :sh:mx=0:mc=0 # # [Translation: # .common - the period (.) causes LPRng to treat this as a 'information # only entry. This idea was stolen^H^H^H^H^H^H borrowed from the Unix # 'hidden' file convention, i.e. file names starting with a period # are not displayed by 'ls' or matched by '*' # :sd=/var/spool/lpd/%P # Spool queue directory for temporary storage of print jobs. The # %P will be expanded with the print queue name. Each print queue # MUST have a different spool queue directory, and by using %P # this is guaranteed. # :sh - suppress banners or header pages # :mx=0 - maximum job size in K bytes (0 is unlimited) # :mc=0 - maximum number of copies (0 is unlimited) # ] # # LPD print queue definitions: Define print queues # # Printer on Parallel Port (i.e. - /dev/lpt0) #lp:lp=DEVICE:tc=.common # Example: # lp:tc=.common:lp=/dev/lpt0 # [Translation: # lp - name of the print queue # :tc=.common - include the options in the .common printcap entry # the 'tc' options will be put at the START of the printcap entry # :lp=/dev/lpt0 - open and write the print job to /dev/lpt0 # ] # # Printer on Serial Port (i.e. - /dev/tty00) # Use the :stty to set the speed, bits, and parity using 'stty(1)' # options. Note: almost all printers use 8 bits, no parity. #lp:tc=.common:lp=DEVICE:stty=STTY OPTIONS # Example: # lp:tc=.common:lp=/dev/tty0:stty=19200 raw crtscts # [Translation: lp, :tc, :lp as for A) above. # :stty= options used to configure serial port # ] # # Printer on Network Print Server (i.e. - HP JetDirect) # connecting via a TCP/IP socket. IPADDR is IP address or Fully Qualified # Domain Name of the print server, PORT is the TCP/IP port. # # HP JetDirect uses port 9100 by default. # # Warning: check the Network Print Server documentation for correct # port number. Most non-HP Network Print Servers and non-HP printers # do not use port 9100. # #lp:tc=.common:lp=IPADDR%PORT # Example: # lp:tc=.common:lp=10.0.0.2%9100 # [Translation: lp, :tc, as for A) above. # lp=10.0.0.2%9100 - open a connection to 10.0.0.2, port 9100 # and write the print job to this port. # ] # # D) printer on Network Print Server (i.e. - HP JetDirect or LPD server) # connecting via the LPD print protocol. QUEUE is the name of the # print queue and IPADDR is the IP address or Fully Qualified Domain # Name of the print server. # # Warning: check the Network Print Server documentation for correct # QUEUE name. The 'lp' queue is used on the HP JetDirect as the # default print queue. If there are multiple printer ports on the # device then the QUEUE name is used to select the port. # # Warning: Using this protocol with JetDirect units will almost always # cause a 'banner page' to be generated by the JetDirect unit. # Check the HP documentation on how to disable this most annoying feature. # Usually you simply telnet to the JetDirect and then use the # simple configuration menu presented when you first make connection. # #lp:tc=.common:lp=QUEUE@IPADDR # # Example: # lp:tc=.common:lp=lp@10.0.0.2 # [Translation: lp, :tc, as for A) above. # lp=lp@10.0.0.2 - open a connection to 10.0.0.2, port 515, # and use the RFC1179 (LPD) protocol to transfer the job # to the QUEUE print queue. # ] # # Step 4: Format Conversion (Filter) Required? # # You may discover that your printer does not support PostScript or # requires a special initialization to be done. This is handled # by a filter program. The 'ifhp' filter program is supplied with # LPRng and supports a very wide number of printers. If you need # to have a filter, then add the following lines to the printcap # entry: # # :filter=PATH_TO_IFHP_FILTER # :ifhp=IFHP_OPTIONS # # Note: the LPRng :filter= option replaces the legacy BSD lpd options # :if, :vf, ... options that specify filters for 'f' format, 'v' format, # and so forth (yes, yes, :if is for 'f' format, don't ask). # The :filter option specifies a default filter for all job formats. # Most modern filters such as IFHP, Magikfilter, and RedHat print # filters are smart enough to determine the job format and perform # the appropriate conversions. # # Examples: # # lp:tc=.common:lp=/dev/lpt0 # :filter=/usr/libexec/filters/ifhp # :ifhp=model=hp4simx # # lp:tc=.common:lp=10.0.0.2%9100 # :filter=/usr/libexec/filters/ifhp # :ifhp=model=hp4simx # # lp:tc=.common:lp=lp@10.0.0.2 # :filter=/usr/libexec/filters/ifhp # :ifhp=model=hp4simx # # IFHP Options: # For almost all simple configurations you will only need to # supply the model of printer that you have attached. See the # /etc/ifhp.conf file for a complete listing of supported models. # The default model is for an HP Laserjet 4 SiMx, which supports # PostScript, PCL, and PJL. # # Warning: # IF: # Your model of printer normally provides status and error # reporting over a TCP/IP link # AND: # You are using lp=IPADDR%PORT to connect to the printer # THEN: # The IFHP filter will normally expect to have status information # returned by the printer to tell it that the printer is in working # condition. This will have a small but significant overhead # on job throughput, but you will also get error information. # # HOWEVER: # If the printer SHOULD return status but CANNOT due to either # the printer hardware configuration or it is on a unidirectional # and not bidirectional parallel printer port, then you must use # :model=...,status@ # to tell the IFHP filter not to expect status information. # # Example: # lp:tc=.common:lp=10.0.0.2%9100 # :filter=/usr/libexec/filters/ifhp # :ifhp=model=hp4simx,status@ # # Step 5: Queue creation and LPD restart # Run the following commands to create your spool queues and # then tell the LPD server that it should use them: # su # checkpc -f # lpc reread