var I,J:integer; ADevice,ADriver,APort:array[0..255]of char; DeviceHandle:THandle; DevMode:PDeviceMode; CmWidth.Cmheight:double; begin CmWidth:=GetDeviceCaps(Printer.Handle,LOGPIXELSX)/2.54; CmHeight:=GetDeviceCaps(Printer.Handle,LOGPIXELSY)/2.54; Printer.PrinterIndex:=0; Printer.GetPrinter(ADevice,ADriver,APort,DeviceHandle); if DeviceHandle=0 then begin ////Printer.PrinterIndex:=Printer.PrinterIndex; Printer.GetPrinter(ADevice,ADriver,APort,DeviceHandle); end; if DeviceHandle=0 then exit; else DevMode:=GlobalLock(DeviceHandle); With DevMode^ do begin dmFields:=dmFields or DM_PAPERLENGTH; DmpaperLength:=1000; end; if not DeviceHandle=0 then GlobalUnlock(DeviceHandle); printer.beginDoc; // 打印部分 printer.EndDoc; end;