给你两段改变打印机纸张长宽的例子,其余的改变打印机的属性
可查ADeviceMode(TDeviceMode.dmFileds)属性。procedure TPrintForm.SetHeight(PaperHeight: longint);                //长度?=?
var
  ADevice, ADriver, APort: String;
  ADeviceMode: THandle;
  DevMode: PDeviceMode;
begin
 SetLength(ADevice, 255);
 SetLength(ADriver, 255);
 SetLength(APort, 255); { If ADeviceMode is zero, a printer driver is not loaded. Therefore,
   setting PrinterIndex forces the driver to load. }
 if ADeviceMode = 0 then
 begin
   Printer.PrinterIndex := Printer.PrinterIndex;
   Printer.GetPrinter(PChar(ADevice), PChar(ADriver), PChar(APort), ADeviceMode);
 end; if ADeviceMode <> 0 then
 begin
   DevMode := GlobalLock(ADeviceMode);
   try
     DevMode^.dmFields := DevMode^.dmFields or DM_PAPERLENGTH; //or DM_PAPERWIDTH; DevMode^.dmPaperLength := PaperLength;
     DevMode^.dmPaperWidth := PaperHeight;
     ///////////////////////设置纸张//////////////
   finally
     GlobalUnlock(ADeviceMode);
   end;
 end
 else
   raise Exception.Create('Could not set printer copies');
end;procedure TPrintForm.SetWidth(PaperWidth: longint);
var
  ADevice, ADriver, APort: String;
  ADeviceMode: THandle;
  DevMode: PDeviceMode;
begin
 SetLength(ADevice, 255);
 SetLength(ADriver, 255);
 SetLength(APort, 255); { If ADeviceMode is zero, a printer driver is not loaded. Therefore,
   setting PrinterIndex forces the driver to load. }
 if ADeviceMode = 0 then
 begin
   Printer.PrinterIndex := Printer.PrinterIndex;
   Printer.GetPrinter(PChar(ADevice), PChar(ADriver), PChar(APort), ADeviceMode);
 end; if ADeviceMode <> 0 then
 begin
   DevMode := GlobalLock(ADeviceMode);
   try
     DevMode^.dmFields := DevMode^.dmFields or DM_PAPERWIDTH; //or DM_PAPERWIDTH; DevMode^.dmPaperLength := PaperLength;
     DevMode^.dmPaperWidth := PaperWidth;
     ///////////////////////设置纸张////////////////
   finally
     GlobalUnlock(ADeviceMode);
   end;
 end
 else
   raise Exception.Create('Could not set printer copies');
end;