Merci!
Zitat:
Du solltest aber vorher den nichtbedruckbaren Rand von der Breite bzw. Höhe abziehen.
Woher weiß ich aber, wie groß der in Pixel ist?
PS: Wenn ich DruckSkalierung verwende wie in diesem Codebeispiel, wirft der Drucker nur eine leere Seite aus... ich seh den Fehler nicht.
Delphi-Quellcode:
procedure TPrintMGR.PrintBitmap(aBitmap: TBitmap);
var i: Integer;
DrawRect: TRect;
begin
{... Drucker auswählen usw.}
BeginDoc;
DruckSkalierung(DrawRect,
Printer.PageWidth,
Printer.PageHeight,
aBitmap.Width,
aBitmap.Height,
GetXDPI / 72,
GetYDPI / 72);
DrawBitmap(Canvas,
DrawRect,
aBitmap); // Wie StretchDraw, verträgt sich aber besser mit Druckern
EndDoc;
{...}
end;
DrawRect sieht nach dem Aufruf von DruckSkalierung so aus:
Code:
Left: 4354646
Top: 1245114
Right: 4354645
Bottom: 1245113
Dagegen klappt es mit
DrawRect := RECT(0, 0, Printer.PageWidth, Printer.PageHeight);
bis auf die unberücksichtigten nicht bedruckbaren Bereiche ganz gut.
Gruß,
Dani
Dani H.