Detect paper format

Posted in System info

This example shows paper orientation. For paper size and paper style use pDMode^.dmPaperSize.

uses Printers;
...
procedure TForm1.Button2Click(Sender: TObject);
var
  Device: array[0..cchDevicename-1] of Char;
  Driver: array[0..(MAX_PATH)-1] of Char;
  Port: array[0..32] of Char;
  hDMode: THandle;
  pDMode: PDevMode;
begin
  Printer.GetPrinter(Device, Driver, Port, hDMode);
  if (hDMode<>0) then
  begin
    pDMode:=GlobalLock(hDMode);
    if pDMode<>nil then
    begin
      if (pDMode^.dmOrientation=1) then
        Label1.Caption:='Orientation - Portrait'
      else
        Label1.Caption:='Orientation - Landscape';
    end;
  end;
end;