A mellékelt példaprogramban egy olyan egyszerű nyomtatási feladatot végzünk el, amelyben egy két oldalas dokumentumot fogunk kinyomtatni úgy, hogy az első oldal álló, a második pedig fekvő helyzetű lesz. Mindegyik oldalra egy-egy sor szöveget írunk ki.
A nyomtatást a már említett Printer objektumon keresztül végezzük el, amelynek használatához a unit uses részében hivatkozni kell a printers unit-ra.
A nyomtatást a Printer objektum BeginDoc eljárásával indíthatjuk el. A printer objektumnak van egy Canvas objektuma, amire ugyanúgy rajzolhatunk, mint mondjuk egy komponens Canvas-ára, a különbség csak annyi, hogy a rajz, illetve szöveg nem a képernyőn, hanem a nyomtatón jelenik meg.
Mivel az oldal alapértelmezetten általában álló helyzetű, így ennek beállításával még nem kell foglalkoznunk.
Amikor kiírtuk a szöveget a Canvas-ra, lezárjuk az oldalt az EndPage eljárással. Ennek paramétereként a Printer objektum Handle property-jét kell megadni.
A második oldalt már fekvő lapra akarjuk nyomtatni, így gondoskodnunk kell az oldal helyzetének beállításáról. Ehhez először is szükségünk lesz a nyomtató tulajdonságaira, amit a GetPrinter eljárással kérdezhetünk le.

GetPrinter
Osztály: TPrinter
procedure GetPrinter(
ADevice,
ADriver,
APort: PChar;
var ADeviceMode: THandle
);
Ez az eljárás kérdezi le az aktuális nyomtató adatait.
Paraméterek
ADevice
A nyomtató nevét kapjuk meg ebben a paraméterben.
ADriver
A nyomtató meghajtó neve.
APort: PChar
A nyomtatóhoz tartozó port neve.
var ADeviceMode: THandle
Ebben a paraméterben kapjuk meg a nyomtató tulajdonságait tartalmazó struktúrára mutató pointert.
A következő lépés, hogy az adatokat tartalmazó struktúrában módosítsuk az oldal helyzetét. Ehhez a dmFields mezőben be kell állítani a DM_ORIENTATION flag-et, ami azt fogja jelezni, hogy a lap tájolását módosítjuk. Ezt a tulajdonságot ténylegesen a dmOrientation mezőben adhatjuk meg. A fekvő helyzethez a DMORIENT_LANDSCAPE értéket kell megadnunk:
GetPrinter(dev, drv, prt, dmh);
dmd:=GlobalLock(dmh);
with dmd^ do begin
dmFields:=dmFields or DM_ORIENTATION;
dmOrientation:=DMORIENT_LANDSCAPE;
end;
A ResetDC függvénnyel aktualizáljuk az új tulajdonságokat. Ezután megkezdhetjük a második oldal nyomtatását a StartPage eljárással.
A nyomtatás végét az EndDoc eljárással tudjuk közölni a Printer objektummal. Ennek hatására megkezdődik a nyomtatás.