Eine Lösung ist folgende Helper Klasse, die in die
Vcl.Printers.pas eingebaut werden muss:
Delphi-Quellcode:
...
TPrinterHelper =
class Helper
for TPrinter
public
procedure NewPageEx(Orientation: Integer);
end;
...
[PrintingPermission(SecurityAction.LinkDemand, Level=PrintingPermissionLevel.AllPrinting)]
procedure TPrinterHelper.NewPageEx(Orientation: Integer);
begin
CheckPrinting(True);
EndPage(
DC);
FDevMode^.dmOrientation:=Orientation;
//DMORIENT_PORTRAIT DMORIENT_LANDSCAPE
if ResetDC(Canvas.Handle, FDevMode^)=0
then
Exit;
StartPage(
DC);
Inc(FPageNumber);
Canvas.Refresh;
end;
Aufruf dann:
Delphi-Quellcode:
procedure TForm1.FormClick(Sender: TObject);
begin
Printer.Orientation:=poPortrait;
Printer.BeginDoc;
Printer.Canvas.TextOut(100, 100, 'Seite 1');
Printer.NewPageEx(DMORIENT_LANDSCAPE);
Printer.Canvas.TextOut(100, 100, 'Seite 2');
Printer.EndDoc;
end;
Beste Grüße