Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question
up vote 4 down vote accepted

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
share|improve this answer

I found this looking for this specific problem. And I had everything right, except the non-space between "-o" and [option]. Easy to miss.

General tip: If you look in the ppd-file for the current printer, you should bet 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

(I don't have the rep to make a comment - sorry.)

share|improve this answer

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

share|improve this answer
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 posting your answer, you agree to the privacy policy and terms of service.

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