Take a look at this:
http://users2.ev1.net/~poellinger/preadme.htm
EDIT: The Main Page:
http://users2.ev1.net/~poellinger/pprtr.htm
There's a download button at the bottom of the page, but make sure you read all the stuff first, so you know how to use it. I've never actually used it before, so I really don't know anything about it. Hope it helps though

.
EDIT: Here's a list of the functions that it supports:
functions:
PPrtr -- allows retrieval or change to any attribute of the default
printer
DefPrtr -- allows you to find out or change the default printer
Prtrs -- returns semi-colon delimeted list of available active
printers
PrtrCap -- returns structure (VB type) containing default printer
device capabilities
GetPrtr -- returns the name of the current default printer
GetPort -- returns the port of the current default printer
PPGetDriver -- returns the port of the current default printer
SetuPP -- pops up the printer's setup dialog (for those who
don't like the common dialog)
PPReady -- checks selected LPT for ready condition
PPDefReady -- checks current Windows default printer port
for ready condition
PPGetSizes -- returns paper, page and margin dimensions...
for calculating unprintable margins and printable
area
PPSetupFileName - establishes a filename as the printer output
destination
PPRemoveFileName - removes that filename from WIN.INI (cleanup)
PPResetDC - provides capability of making any pprtr() type changes,
e.g. orientation, bin, etc, on the fly within a
document, so that, for instance different pages could
have different orientations.