Du kannst natürlich auch auf eine TBitmap rendern und diese dann lediglich auf eine Zeichenfläche kopieren. Das hat den Riesenvorteil, dass du diese zu Debugzwecken auch speichern kannst. Und du kannst sie als Vorschau im Programm anzeigen. Ich habe das auch selbst so umgesetzt.
Mit diesem Bild kannst du dann jegliche Schnittstelle nutzen, egal ob du die WinRT Funktionalität, einen Delphi-TPrinter oder das
XML-Format von Epson verwendest. Du musst lediglich vorher schauen welche native Auflösung der Drucker hat, damit dort nicht skaliert werden muss.