home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


UNIX Power Tools

UNIX Power ToolsSearch this book
Previous: 43.3 Printer Control with lpc Chapter 43
Printing
Next: 43.5 Using Symbolic Links for Spooling
 

43.4 Using Different Printers

Each printer on your system should have a name. By default, commands that send a file to a printer assume that the printer is named lp -which probably stands for "line printer" (though it could stand for "laser printer"). If you're using a single-user workstation, and have a printer connected directly to your workstation, you can name your printer lp and forget about it.

However, in most environments, there are more options available: e.g., there are several printers in different parts of the building that you can choose from. Often, only one printer will be able to print your documents: you may need to send your print jobs to a PostScript printer, not the line printer that the accounting department uses for billing.

There are two ways to choose a printer:

  • Printing commands that originate with BSD UNIX accept the option -P printer . This includes lpr ( 43.2 ) , various scripts to format typeset documents, etc. For example, lpr -Pps file.ps sends the file file.ps to the printer named ps . (By the way, ps is probably the second most common printer name, after lp .)

  • Commands that originate with BSD UNIX recognize the PRINTER environment variable ( 6.1 ) ; if PRINTER is defined, the command will read its value and choose a printer accordingly. So the command:

    % 
    
    setenv PRINTER ps
    
     
     - or
    
    $ 
    
    PRINTER=ps ; export PRINTER
    
    

    ensures that the BSD print commands will send your documents to the printer named ps .

  • Commands that originate with System V UNIX (such as lp ) use the -d option to select a printer. So lp -d pr file.ps sends file.ps to the printer named pr ; it's equivalent to the previous lpr example.

  • Commands that originate with System V UNIX look for an environment variable named LPDEST , rather than PRINTER . So:

    % 
    
    setenv LPDEST ps
    
     
     - or
    
    $ 
    
    LPDEST=ps ; export LPDEST
    
    

    ensures that the System V print commands will send your documents to the printer named ps .

Note that System V Release 4 includes both the System V and BSD print commands ( lp and lpr ). This can make things confusing, particularly if you're using a script to process troff or TeX documents, and that script automatically sends your documents to the printer. Unless you know how the script works, you won't know which variable to set. I'd suggest setting both PRINTER and LPDEST .

By the way, if you only have one printer, but you've given it some name other than lp , the same solution works: just set PRINTER or LPDEST to the appropriate name.

- ML


Previous: 43.3 Printer Control with lpc UNIX Power Tools Next: 43.5 Using Symbolic Links for Spooling
43.3 Printer Control with lpc Book Index 43.5 Using Symbolic Links for Spooling

The UNIX CD Bookshelf Navigation The UNIX CD BookshelfUNIX Power ToolsUNIX in a NutshellLearning the vi Editorsed & awkLearning the Korn ShellLearning the UNIX Operating System