Change printer setup between pages

Posted in Devices

You cannot change printer property during printing of the document. But you can interrupt print process to change properties and run print again from the necessary line.

uses Printers;
...
procedure TForm1.Button1Click(Sender: TObject);
var
  F, F2: TextFile;
  i, j: Integer;
begin
  AssignPrn(F);
  Rewrite(F);
  Writeln(F, RichEdit1.Lines[0]);
  for i:=1 to RichEdit1.Lines.Count-1 do
  begin
    if Printer.PageNumber1 then
    begin
      CloseFile(F);
      Break;
    end;
  end;

  AssignPrn(F2);
  Printer.Orientation:=poLandscape;
  Rewrite(F2);
  for j:=i to RichEdit1.Lines.Count-1 do
    Writeln(F2, RichEdit1.Lines[j]);
  CloseFile(F2);
end;