Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I scanned a document in color to PDF, and I don't want to re-scan it.

How can I convert this PDF document to grayscale (preferably without loss of other information)?

My usual toolset of doPDF, pdfsam and the Neevia online converter don't work here. I was thinking I could simply print to PDF and select the Grayscale color option, but doPDF doesn't have that option.

I'm using Windows, but I can probably handle a solution for any OS.

share|improve this question

4 Answers 4

Just install PDFCreator. It has a small footprint and adds a PDF printer to Windows. And as you've mentioned, just select grayscale when printing to it.

share|improve this answer
    
Not that this would make your answer invalid, but do PDF prints lose information on each print? –  palswim Aug 3 '11 at 21:43
    
I believe not, but you could just try - it's free :) –  Traveling Tech Guy Aug 4 '11 at 3:33

Sounds like a job for Imagemagick. Windows and Linux versions are available.

http://www.imagemagick.org/script/index.php

This should do the trick at the command line:

convert -colorspace GRAY original.pdf grayscale.pdf
share|improve this answer
    
@nodiscc: you should be aware that ImageMagick employs Ghostscript as its delegate to render and interpret the PDF input file... (So without a working Ghostscript installation on the same system it won't work.) –  Kurt Pfeifle Aug 8 '11 at 20:09
up vote 3 down vote accepted

I found a solution in a blog post:

With GhostScript (and Windows users can access gs via cygwin), you can do it with the following command:

gs \
  -sOutputFile=grayscale.pdf \
  -sDEVICE=pdfwrite \
  -sColorConversionStrategy=Gray \
  -dProcessColorModel=/DeviceGray \
  -dCompatibilityLevel=1.4 \
   source.pdf

This will convert source.pdf to grayscale.pdf and put you into a GhostScript shell. To exit, press return and then enter quit in the shell.

Page 1
>>showpage, press <return> to continue<<

GS>quit

Alternately, you can pipe null in as input and that will convert the PDF and not leave you in the GhostScript shell.

command < /dev/null

Or, in a Windows command prompt:

command < NUL

Edit: from a comment, an improvement (for this case) in the arguments you can pass:

gs \
  -o grayscale.pdf \
  -sDEVICE=pdfwrite \
  -sColorConversionStrategy=Gray \
  -dProcessColorModel=/DeviceGray \
  -dCompatibilityLevel=1.4 \
   source.pdf

(This will circumvent the need for dealing with the GS prompt.)

share|improve this answer
1  
OMG!, what a complicated workaround for avoiding the Ghostscript command prompt to stay up after the processing! A more simple solution is to add -dNOPAUSE -dBATCH to the commandline. The -dNOPAUSE part spares you from hitting [return] after each page, and the -dBATCH part saves you from typing 'quit' at to exit the GS> prompt. And even shorter: just use -o grayscale.pdf for specifying the output file; this -o ... implicitly also sets -dBATCH -dNOPAUSE... –  Kurt Pfeifle Aug 8 '11 at 20:14
    
It appears this no longer works with recent versions of Ghostscript: ghostscript.com/pipermail/gs-bugs/2012-May/025904.html says "'Gray' is not a documented legal value for ColorConversionStrategy" –  AnC Feb 21 '13 at 17:01

You can just use the free service at http://greyscalepdf.com to convert any PDF to greyscale.

share|improve this answer
    
Nice; good find! Some people have sensitive information in their PDFs and don't want to use an online conversion service, though. –  palswim Jan 14 '13 at 22:06

Your Answer

 
discard

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.