Go to TogaWare.com Home Page. GNU/Linux Desktop Survival Guide
by Graham Williams
Duck Duck Go

CUPS Command Line Interfaces

You can also simply use the command line to administer the printers. You can add a network printer enable the printer with:

  # lpadmin -p hplj -v socket:// -E

Another example for a LPD print server:

  # lpadmin -p lp1nd -v lpd://printhost/lp1nd -E

To add information about the Location and a Description of the printer:

  # lpadmin -p lp0 -L "Level 2 South" -D "HP LaserJet 4"

To specify a PPD for the printer:

  # lpadmin -p lp7 -P /usr/share/postscript/ppd/HP_LaserJet_4050_Series.ppd
  # lpadmin -p lp11 -P LEXC750.PPD

The PPD file is copied into /etc/cups/ppd/lp11.ppd, for example.

You can look at the printer options (assuming it has a PPD) with:

  # lpoptions -p lp7 -l

And you can set options with:

  # lpoptions -p lp7 -o PageSize=A4
  # lpoptions -p lp1 -o PageSize=A4

And so on. These options are placed in /etc/cups/lpoptions. The same options can be set using the web interface. The web interface is indeed somewhat easier to use, and it modifies the PPD file directly (e.g., /etc/cups/ppd/lp1.ppd) rather than using the /etc/cups/lpoptions file!

You can access printer options directly from the command line when printing, if the printer's PPD supports the option. For example, the HP LaserJet 4050 driver I'm using (from hp-ppd) supports n-up printing and watermarks:

  $ lp -o HPNup=TwoUpL sample.pdf
  $ lp -o HPwmText=Draft odbcmine.pdf

Copyright © 1995-2019 Togaware Pty Ltd
Support further development through the purchase of the PDF version of the book.
Brought to you by Togaware and the author of open source software including Rattle and wajig.
Also the author of Data Mining with Rattle and Essentials of Data Science.