![]() |
Bitmap direkt auf Canvas des Druckers (WPTools)
Hallo,
ich versuche jetzt schon geraume Zeit, eine Bitmap auf dem Drucker so auszugeben, dass der volle bedruckbare Bereich genutzt wird. Aber ich erhalte immer unten einen Rand von ca. 25 mm. Das sit der bisherige Code:
Delphi-Quellcode:
Das ganze wird im OnPaintWaterMark eine TWPRichText aufgerufen.
procedure TFRMEdtBrief.PrintLetterHead(toCanvas: TCanvas; PageRect: TRect;
IsPrinter: Boolean); var ox: Integer; oy: Integer; presx: Integer; presy: Integer; aPageWidth: Integer; aPageHeight: Integer; PrintRect: TRect; begin // Ausgabe auf Drucker if IsPrinter then begin // Offsets ox := GetDeviceCaps(Printer.Canvas.Handle, PHYSICALOFFSETX); oy := GetDeviceCaps(Printer.Canvas.Handle, PHYSICALOFFSETY); // Resolution presx := GetDeviceCaps(Printer.Handle, LOGPIXELSX); presy := GetDeviceCaps(Printer.Handle, LOGPIXELSY); aPageWidth := MulDiv(GetDeviceCaps(Printer.Handle, PHYSICALWIDTH), 1440, presx); aPageHeight := MulDiv(GetDeviceCaps(Printer.Handle, PHYSICALHEIGHT), 1440, presy); if printer.Printing then begin PrintRect.Left := -ox; PrintRect.Top := -oy; PrintRect.Right := PrintRect.Left + MulDiv(aPageWidth, presx, 1440); PrintRect.Bottom := PrintRect.Top + MulDiv(aPageHeight, presy, 1440); Printer.canvas.StretchDraw(PrintRect, FBitMap); end; end else toCanvas.StretchDraw(PageRect, FBitMap); end; Hat jemand einen Ansatz für mich? Danke, Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 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 by Thomas Breitkreuz