I want to print an image from a command line:

lp -o scaling=//100// image.jpg

How can I force it to be printed in grayscale?


Maybe you are looking for lpoptions ?

Use lpoptions -l in order to know what's the name for your printer.

You can play it like thi (example with an HP Photosmart) :

lp -o scaling=//100// -oColorModel=KGray image.jpg
| improve this answer | |

If you look in the PPD file for the current printer, you should get a hint of how to denote grayscale printing (or any option for that matter). It could be as above or ColorModel=Gray, ColorModel=Grayscale, etc.

Try the following command to search the options for printers on your system:

grep -i gr[ae]y /etc/cups/ppd/*.ppd
| improve this answer | |

You will have to convert the image to a grayscale version, by e.g GraphicsMagick or ImageMagick.

| improve this answer | |
  • 2
    Could you add a solution? Maybe the command to run to convert an image to greyscale. – n0pe Mar 22 '13 at 20:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.