12.6. Enterprise Strength Printcap Example

Most system administrators want to have a single printcap file that can be distributed or referenced from all the hosts under their administrative control. The following show how several large institutions have organized their printcap information. It uses the following principles:

    # client setups; note brutality of this method that
    #  assigns servers to clients based on their names
    #  you could do this for IP addresses as well
    # lp1 is default printer for Engineering
    #   Default client information
    .client=force_localhost@
    #
    lp1:oh=*.eng.com:lp=%P@server1.eng.com:tc=.client
    *:oh=*.eng.com:lp=%P@server1.eng.com:tc=.client
    color:oh-*.admin.com:lp=%P@server2.admin.com:tc=.client
    *:oh=*.admin.com:lp=%P@server2.admin.com:tc=.client
    lowres:lp=%P@general.services.com:tc=.client
    *:lp=%P@general.services.com:tc=.client
    
    # Standard Printer Configurations
    # this is for the HP4simx, we use a standard filter setup
    .cf_hp4simx
     :ifhp=model=hp4simx
     :filter=/usr/local/libexec/filters/ifhp
    .cf_hplj5000
     :ifhp=model=hp5000
     :filter=/usr/local/libexec/filters/ifhp
    # now we define the printers that use them
    .pr_eng1:cm=Engineering's Printer 1
     :tc=.cf_hplj5000:lp=10.0.0.2%9100
    .pr_eng2:cm=Engineering's Printer 2
     :tc=.cf_hplj5000:lp=10.0.0.23%9100
    
    # now we define the server entries
    # We set up server entries and then forward
    #  to a single server that sends the the printer
    
    .server
     :sd=/var/spool/lpd/%P
     :mx=0
    pr1:oh=!10.0.0.5:lp=%P@10.0.0.5:server:tc=.server
    pr1:oh=10.0.0.5:tc=.server
     :tc=.pr_eng1