Hallo Zusammen.
Es gibt zu diesem Thema eine Vielzahl von Beiträgen, jedoch bin ich auch nur stundenlangen probieren nicht weitergekommen. Um einen Bereich zu drucken, verwende ich im Moment diesen Code:
Delphi-Quellcode:
Procedure BildAusSchnitt(hWND: HWND; iLeft, iTop, iWidth, iHeight: integer);
var
c: TCanvas;
begin
BringWindowToTop(hWND);
c:= TCanvas.Create;
c.Handle:= GetWindowDC(hWND);
try
Printer.Orientation := poLandscape;
printer.begindoc;
printer.Canvas.CopyRect(Rect(0, 0, iWidth* 10, iHeight* 10), c, Rect(iLeft, iTop, iLeft+ iWidth, iTop+ iHeight));
printer.enddoc;
finally
ReleaseDC(hWND, c.handle);
c.Free;
end;
end;
procedure TForm1.druckenClick(Sender: TObject);
begin
BildAusSchnitt(Form1.Handle, 60, 82, 3600, 4000);
end;
Der ist fast 1:1 aus diesem Forum "geklaut". Mein Problem ist, egal wie hoch ich die Parameter 3600 und 4000 stelle, es verändert sich nichts am Bild. Bis ca. 2600 und 3000 hat es noch funktioniert, aber ab einer gewissen Größe bleibt das Bild gleich groß.
Um eine PDF draus zu machen, habe ich einfach einen PDF-Drucker als Standard eingestellt. Ist nicht die schönste Lösung, aber es funktioniert.
Hat jemand vielleicht eine Idee, oder eine ganz andere Methode um dieses Problem zu lösen? Ich bin für alle Vorschläge offen.
Vielen Dank für Unterstützung!