Do something like: for i in $(seq 0 $((pages-1))) ; do convert -density 300 document.pdf[$i] -quality 90% page-$(printf %03d $i).jpg ; done It's possible to have imagemagick do the whole thing in one go (it automatically adds numbers to the output filenames): convert -density 300 file.pdf -quality 90% page.jpg But this eats a lot of memory and can make the system ground to a halt, and `convert` won't generate each output file one-by-one; it will extract everything to temporary files first. This is a good solution for making images that can then be put together in a CBZ / CBR file or such, which is handy for dealing with slow-to-render PDFs (although the resulting file is much (at least 10x) larger than the PDF). It's also possible to put the rasterized pages back together into a PDF, which will, like the CBZ, be much bigger, but should render faster than the original PDF: convert page-*.jpg rasterized.pdf The above settings are about right for generating acceptably readable pages; although they look high quality, we don't actually want to drop either the density or the quality much lower. To output monochrome files, add: -colorspace Gray