以下程序将打印机纸张设为:114mm*190mm:
procedure PreparePrinter;
var
  aDevice: array[0..CCHDEVICENAME-1] of Char;
  aDriver: array[0..MAX_PATH-1] of Char;
  aPort: array[0..31] of Char;
  hDevMode: THandle;
  pDevMode: PDeviceMode;
begin
  // 获取打印机DeviceMode的句柄
  Printer.GetPrinter(aDevice, aDriver, aPort, hDevMode);
  if hDevMode <> 0 then
  begin
    // 获取指向DeviceMode的指针
    pDevMode := GlobalLock(hDevMode);
    if pDevMode <> nil then
    begin
      pDevMode^.dmPaperSize := DMPAPER_USER;
      pDevMode^.dmPaperLength := 1140;
      pDevMode^.dmPaperWidth := 1900;
      pDevMode^.dmFields := pDevMode^.dmFields or DM_PAPERSIZE;
      pDevMode^.dmFields := pDevMode^.dmFields or DM_PAPERLENGTH;
      pDevMode^.dmFields := pDevMode^.dmFields or DM_PAPERWIDTH;
      ResetDC(Printer.Handle, pDevMode^);
      GlobalUnlock(hDevMode);
    end;
  end;
end;
用修改
DeviceMode的方法的话,只是改变你程序中的打印机设置,不会影响其他程序打印的。