Einzelnen Beitrag anzeigen

Kegasetu

Registriert seit: 26. Sep 2013
85 Beiträge
 
#7

AW: Bereich aus Form in PDF drucken

  Alt 30. Nov 2020, 09:46
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.

Ich habe auf der Form etwas gezeichnet, dass ist leider nicht drauf zu erkennen. Gezeigt werden nur die Bedienelemente
  Mit Zitat antworten Zitat