Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Bereich aus Form in PDF drucken

  Alt 30. Nov 2020, 09:58
Delphi-Quellcode:
procedure TForm1.FormClick(Sender: TObject);
var
  FormImage: TBitmap;
  PrinterDpiHeight, PrinterDpiWidth: Integer;
  FormDpiHeight, FormDpiWidth: Integer;
  Source: TRect;
begin
  FormImage := Self.GetFormImage;
  try
    Printer.Orientation := poLandscape;
    Printer.BeginDoc;
    try
      Source := Self.ClientRect;
      PrinterDpiWidth := GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSX);
      FormDpiWidth := GetDeviceCaps(Self.Canvas.Handle, LOGPIXELSX);
      Source.Width := Round(Source.Width * (PrinterDpiWidth / FormDpiWidth));
      PrinterDpiHeight := GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSY);
      FormDpiHeight := GetDeviceCaps(Self.Canvas.Handle, LOGPIXELSY);
      Source.Height := Round(Source.Height * (PrinterDpiHeight / FormDpiHeight));
      Printer.Canvas.StretchDraw(Source, FormImage);
    finally
      Printer.EndDoc;
    end;
  finally
    FormImage.Free;
  end;
end;
Damit bekommst du die gesamte Form mit der 1:1 Größe wie das richtige Formular ins PDF.
Willst du das seitenfüllend haben, müsstest du noch ein bisschen an Width und Height spielen.
  Mit Zitat antworten Zitat