28/01/2011

How to get ImageMagick to convert PDF to PNG with reasonable image quality

Without special effort, converting PDF to a series of PNG images produces images that look kind of corroded. The reason for this is related to ImageMagick's ghostscript backend, which sucks at antialiasing.
Thus, the only way to get better images would be to convert at an insanely high resolution (convert's density option) and resize afterwards. This can be done in one go by ImageMagick:
convert -density 1000x1000 <thepdf.pdf> -resize <xsize>x test%03d.png
However, I found that running ghostscript separately reduces the eventual image size by a factor of 2-3. I don't know why, it seems to be relatively device-independent (tested with both png16m and pngalpha).
gs -sDEVICE=png16m -sOutputFile=test%03d.png -r1000 -dNOPAUSE -dBATCH <mypdf.pdf>
for file in test???.png; do convert $file -resize <xsize>x $file; echo $file; done

3 comments:

Mark Henry said...

Keep up the good work mate. The JPG to PDF converter offered by PDF ONLINE is also good. You must give it a try.

Jim Green said...
This comment has been removed by the author.
Jim Green said...

This method is very good.You can also try this convert pdf to png tool for any format.