The problem: you have a large, crisp PDF image and you use PythonMagick to write it as a PNG but it comes out as a small, low-resolution, blurry PNG. You mess around with density, size, and quality settings to no avail. And the documentation is of little help. The answer is subtle, and here it is: you must only read the PDF image AFTER you have set the density to something high like 300. Otherwise it is the default dpi of only 72. Big thanks to PyBlosxom for providing a working example of code and restoring my sanity ;-).
FAIL
import PythonMagick
img = PythonMagick.Image("Desktop/test.PDF")
img.density("300") # too late, already read as 72 dpi when image instantiated
img.write("Desktop/test.PNG")
SUCCEED
import PythonMagick
img = PythonMagick.Image()
img.density("300")
img.read("Desktop/test.PDF") # read in at 300 dpi
img.write("Desktop/test.PNG")
Apparently, PIL is no good for this task as it can only write PDFs (http://www.velocityreviews.com/forums/t563423-convert-pdf-to-png.html)
And if you are confused about how to supply the Geometry argument, that is because there are several ways of doing it:
image.density(Geometry(150,150)); // could also use image.density("150x150")
Magick::Image Class
image manipulation with python
Here are some links that may be useful: