A nyomtatókhoz tartozó konstansok és függvények használatához a uses listában fel kell sorolnunk a WinSpool és a Printers unitok neveit.
Szükségünk van egy azonosítóra, amely a nyomtatót azonosítja.
Printer.PrinterIndex:=-1;
if OpenPrinter(PChar(Printer.Printers[0]),Handle,Nil) then begin
A Printer objektum Printers[0] értékéből megtudhatjuk a nyomtatónk nevét. Majd az OpenPrinter függvény segítségével lekérdezhetjük a hozzá tartozó azonosítót, amely a Handle változóba kerül.
Ha tudjuk a nyomtató azonosítóját, akkor a GetPrinter függvény segítségével különböző adatstruktúrákat kérdezhetünk le a nyomtatóról. Most egy PPrinterInfo2 típusú struktúrára van szükségünk.
GetPrinter(Handle,2,Nil,0,@pcbNeeded);
PrinterInfo2:=AllocMem(pcbNeeded);
Win32Check(GetPrinter(Handle,2,PrinterInfo2,pcbNeeded,@pcbNeeded));
Az első GetPrinter függvényhívást csak arra használjuk, hogy a szükséges struktúraméretet meghatározzuk. Ez a méret a pcbNeeded változóba kerül. A lekérdezést a második hívással hajtjuk végre.
A lekérdezett struktúra pDevMode mezőjéből számos tulajdonság értéket kiolvashatunk.
Var DevMode: PDeviceModeA;
. . .
DevMode:=PrinterInfo2^.pDevMode;

dmDeviceName
property dmDeviceName: array[0..CCHDEVICENAME - 1] of AnsiChar;
A nyomtató neve.

dmSpecVersion
property dmSpecVersion: Word;
A nyomtatót inicializáló adatsorozat verziószáma.

dmDriverVersion
property dmDriverVersion: Word;
A nyomtató driver verziószáma.

dmSize
property dmSize: Word;
A struktúra méretének meghatározására szolgál.

dmOrientation
property dmOrientation: SHORT;
A nyomtatás elhelyezkedése a lapon. Lehet álló (DMORIENT_PORTRAIT) vagy fekvő (DMORIENT_LANDSCAPE).

dmPaperSize
property dmPaperSize: SHORT;
Beállított papírméret. Minden egyes papír mérethez külön konstans érték tartozik. Ezek a konstansok a Windows unitban találhatók.

ddmPaperLength
property ddmPaperLength: SHORT;
A papír magassága. A dmPaperSize értéke meghatározza a papír méretét. Ezt azonban itt felülbírálhatjuk. A megadott érték tized milliméterben értendő.

dmPaperWidth
property dmPaperWidth: SHORT;
A papír szélessége. A dmPaperSize értéke meghatározza a papír méretét. Ezt azonban itt felülbírálhatjuk. A megadott érték tized milliméterben értendő.

dmScale
property dmScale: SHORT;
A nyomtatás méretének százalékos aránya a papír méretéhez képest.

dmCopies
property dmCopies: SHORT;
Példányszám.

dmDefaultSource
property dmDefaultSource: SHORT;
A lapadagoló lekérdezésére szolgál. Az egyes lapadagolókhoz konstans értékek tartoznak, a Windows unitban.

dmPrintQuality
property dmPrintQuality: SHORT;
A nyomtatás minősége. Ha az érték DPI-ben azonosítható, akkor a DPI értéket kapjuk meg, egyébként valamelyik konstanst a következők közül: DMRES_HIGH, DMRES_MEDIUM, DMRES_LOW, MRES_DRAFT.

dmColor
property dmColor: SHORT;
Színes vagy fekete nyomtatás. Lehetséges értékek: DMCOLOR_COLOR, DMCOLOR_MONOCHROME.

dmDuplex
property dmDuplex: SHORT;
Duplex nyomtatás. Használható konstans értékek: DMDUP_SIMPLEX, DMDUP_HORIZONTAL, DMDUP_VERTICAL.

dmTTOption
property dmTTOption: SHORT;
A TrueType Font-ok nyomtatásának módja. Lehetséges értékek: DMTT_BITMAP, DMTT_DOWNLOAD, DMTT_DOWNLOAD_OUTLINE, DMTT_SUBDEV.

dmCollate
property dmCollate: SHORT;
Leválogatás. Lehetséges értékek: DMCOLLATE_TRUE, DMCOLLATE_FALSE.

dmICMMethod
property dmICMMethod: DWORD;
Színkezelés irányításának típusa. Használható konstansok: DMICMMETHOD_NONE, DMICMMETHOD_SYSTEM, DMICMMETHOD_DRIVER, DMICMMETHOD_DEVICE, DMICMMETHOD_USER.

dmMediaType
property dmMediaType: DWORD;
A papír típusa. Használható konstansok: DMMEDIA_STANDARD, DMMEDIA_GLOSSY, DMMEDIA_TRANSPARENCY, DMMEDIA_USER.