Einzelnen Beitrag anzeigen

Cordt

Registriert seit: 10. Jan 2013
32 Beiträge
 
#7

AW: Print Scrollbox in richtiger Größe

  Alt 8. Feb 2021, 23:14
Okay, vielen Dank, mit dem Link bin ich tatsächlich durchgekommen und kann jetzt sichtbar drucken.
Ich werde noch mit ein paar anderen Drucken rumexperimentieren, vllt muss ich das noch ein wenig fein-tunen, aber damit kann ich zumindest mal arbeiten.
Danke vielmals

Delphi-Quellcode:
var
PrintDialog : TPrintDialog;
begin
  PrintDialog := TPrintDialog.Create(self);
  if PrintDialog.Execute then
  begin
    Printer.BeginDoc;

    SetGraphicsMode(Printer.Canvas.Handle, GM_ADVANCED);
    SetMapMode(Printer.Canvas.Handle,MM_ANISOTROPIC);
//Markiert
    SetViewportExtEx(Printer.Canvas.Handle, 5,5, nil);

    ScrollBoxToCanvas(ScrollBox1,Printer.Canvas) ;
    Printer.EndDoc;
  end;
end;

Es ist natürlich sinnvoller, wenn das auf mehr als dem hauseigenen Drucker funktioniert. Dazu habe ich an oben "//Markierter" Stelle folgendes ergänzt
Delphi-Quellcode:
      cxpage := GetDeviceCaps(Printer.Canvas.Handle, HORZRES);
      cypage := GetDeviceCaps(Printer.Canvas.Handle, VERTRES);

      SetWindowExtEx(Printer.Canvas.Handle, 963, 1346, nil);
      SetViewportExtEx(Printer.Canvas.Handle, cxpage,cypage, nil);
Das SetWindowExtEx bekommt die Größe des Elements (in dem Fall der Scrollbox) mit und SetViewportExtEx die Werte, die der Drucker selbst liefert.

Gruß
  Mit Zitat antworten Zitat