Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bild (TImage) drucken (https://www.delphipraxis.net/169360-bild-timage-drucken.html)

Andreas L. 14. Jul 2012 16:44

Bild (TImage) drucken
 
Hallo,

mit folgendem Code möchte ich ein TImage ausdrucken:

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
  ScaleX, ScaleY: Integer;
  RR: TRect;
begin
  Printer.BeginDoc;
  try
    ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
    ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
    RR := Rect(0, 0, Image1.picture.Width * scaleX, Image1.Picture.Height * ScaleY);
    Printer.Canvas.StretchDraw(RR, Image1.Picture.Graphic); // Picture.Bitmap habe ich es auch schon versucht
  finally
    Printer.EndDoc;
  end;
end;
Der Drucker reagiert, zieht ein Papier ein und schiebt es beim Ausgabe schlitz raus. Darauf ist nichts gedruckt. Wie kann ich das Bild drucken?

Drucker: Canon Pixma ip4300 - Andere Anwendung können problemlos drucken
OS: Windows Vista SP 2 + alle Hotfixes

Bummi 14. Jul 2012 16:51

AW: Bild (TImage) drucken
 
Hast Du mal ScaleX/Y "debuggt"
GetDeviceCaps sollte mit Printer.Handle aufgrufen werden

Image1.Picture.Graphic auf das Form.Canvas wird dargestellt?

Andreas L. 14. Jul 2012 16:59

AW: Bild (TImage) drucken
 
Printer.Handle war die Lösung. Danke Bummi :thumb:

Delphi-Quellcode:
    ScaleX := GetDeviceCaps(Printer.Handle, logPixelsX) div PixelsPerInch;
    ScaleY := GetDeviceCaps(Printer.Handle, logPixelsY) div PixelsPerInch;

himitsu 14. Jul 2012 20:55

AW: Bild (TImage) drucken
 
Jupp, erstmal das falsche Handle (du verwendest das der Form)

Zitat:

Zitat von Bummi (Beitrag 1174690)
Hast Du mal ScaleX/Y "debuggt"

Ja, das solltest du mal machen ... Tipp, wie wäre es mit / und einem Double?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz