![]() |
kurioses Problem: TBitmap drucken -> Lexmark druck nichts
Wenn ich mittels
Delphi-Quellcode:
ein TBitmap drucken will druckt mein Drucker(Lexmark) nur ein weißes Blatt. Alle anderen Drucker im Haus drucken aber das Bild aus. Ich weiß aber, dass ich schon mal in einem anderen Programm ein TBitmap mit genau diesem Drucker aus gedruckt. Also habe ich ein wenig hin und her probiert und habe mal auf ein TImage ein Bild gelegt und das dann über
Printer.Canvas.Draw(0, 0, Bild);
Delphi-Quellcode:
drucken lassen. Und siehe da er druckt es, sowie ich aber statt Graphic Bitmap nehme (ich habe auf das TImage auch eine bmp-Datei gelegt) druck er es nicht mehr.
Printer.Canvas.Draw(0, 0, Image1.Picture.Graphic);
Also dachte ich, vllt liegt es ja am Treiber, also habe ich den deinstalliert und noch einmal neu installiert und dann sogar noch den neusten aus dem Internet geladen und installiert, aber er druckt immer nur ein weißes Blatt. Kennt jemand dieses Problem und/oder kann mir einen Tip geben, was ich noch probieren könnte? |
Re: kurioses Problem: TBitmap drucken -> Lexmark druck ni
OK ich hab jetzt eine Lösung gefunden. Und zwar speichere(da ich auf dem Canvas Veränderungen vorgenommen habe) ich das Bitmap vor dem Drucken und lade es dann neu, danach druckt er es ohne Probleme. Ist zwar keine schöne Lösung, aber wenigstens funktioniert es jetzt schon mal.
Vllt kennt ja jemand noch eine bessere Lösung und kann sie mir verraten. |
Re: kurioses Problem: TBitmap drucken -> Lexmark druck ni
OK Fehlalarm, im Testprogramm, wo ich nur mal schnell das Drucken getestet habe ging es mit der Variante Bild speichern und wieder laden, aber in dem Programm, wo ich es eigentlich brauche funktioniert es nicht. Ich gehe jetzt einfach mal davon aus, dass der Drucker kaputt ist - Lexmark is sowieso scheiße - und werde mir mal einen vernünftigen zulegen.
|
Re: kurioses Problem: TBitmap drucken -> Lexmark druck ni
Hallo,
hatte auch mal ein ähnliches Problem, wo bei bestimmten Druckern nur ein weißen Blatt heraus kam. Habe dann irgendwo im Forum eine Lösung gefunden und entsprechend angepasst.
Delphi-Quellcode:
aCanvas ist die Drucker-Zeichenfläche, Dest die Seitengröße.
procedure PrintBitmap(aCanvas: TCanvas; Dest: TRect; Bitmap: TBitmap);
var Info: PBitmapInfo; InfoSize: DWord; Image: Pointer; ImageSize: DWord; begin with Bitmap do begin GetDIBSizes(Handle, InfoSize, ImageSize); Info := AllocMem(InfoSize); try Image := AllocMem(ImageSize); try GetDIB(Handle, Palette, Info^, Image^); if not Monochrome then SetStretchBltMode(ACanvas.Handle, STRETCH_DELETESCANS); with Info^.bmiHeader do StretchDIBits(aCanvas.Handle, Dest.Left, Dest.Top, Dest.RIght - Dest.Left, Dest.Bottom - Dest.Top, 0, 0, biWidth, biHeight, Image, Info^, DIB_RGB_COLORS, SRCCOPY); finally FreeMem(Image, ImageSize); end; finally FreeMem(Info, InfoSize); end; end; end; Sollte es immer noch nicht klappen, ist Dein Drucker entweder wirklich kaputt oder der Tank ist leer... Gruß RoGa |
Re: kurioses Problem: TBitmap drucken -> Lexmark druck ni
Also ich versteh die Welt nicht mehr, ich habe absolut überhaupt nichts am Quellcode geändert, nichts am Drucker, gar nichts, und auf einmal druckt er wieder was er soll.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz