das liegt einfach nur an der Art und weise wie du das Bild auf den Drucker überträgst. Nicht alle Drucker unterstützen die Methode von StretchDraw (bitblt etc.).
Wie es bei mir bisher immer funktioniert hat war die Pixel einzeln auf den Drucker zu malen, was aber auch sehr lange dauert und das Druckdocument wird auch sehr groß.
Alternativ könntest du auch fertige Komponenten verwenden die das Drucken für dich übernehmen.
eventuell bekommst du es ja mit der funktion
StretchDIBits hinn
und hier mal noch ein Beispiel zur Verwendung:
http://www.delphipraxis.net/internal...=254138#254138