When I enumarate through the PrinterResolutions collection for a networked HP DeskJet 3520 I end up getting useless negative numbers, like so:

X= Y= Kind=
-4 -1 High
-3 -1 Medium
-2 -1 Low
-1 -1 Custom

I can get around this by using a PrintDocument.Graphics' .DpiX and .DpiY properties, but that only gets me the currently set resolution.

Does anyone know how I can perhaps use a PrintDocument object to enumerate all of the printer's resolutions? I want to present these in a listbox instead of forcing the user to change the printer settings through dialogs.