打印機的大小及分辨率
使用GetDeviceCaps可以求得各種設備的大小,以下把它做成了OBJECT,方便使用:
interface uses windows,Classes; type TDeviceCaps=class private fHandle: tHandle; function GetCapabilities(i: integer): integer; public constructor Create(h: thandle); property Handle: tHandle read fHandle write fHandle; property Capabilities[i: integer]: integer read GetCapabilities; property Driver_Version: integer index windows.DRIVERVERSION read GetCapabilities; property Technology: integer index windows.TECHNOLOGY read GetCapabilities; property X_SizeMM: integer index windows.HORZSIZE read GetCapabilities; // in mm property Y_SizeMM: integer index windows.VERTSIZE read GetCapabilities; property X_Size: integer index windows.HORZRES read GetCapabilities; // in pixels property Y_Size: integer index windows.VERTRES read GetCapabilities; property X_LogPixel: integer index windows.LOGPIXELSX read GetCapabilities; // in dpi property Y_LogPixel: integer index windows.LOGPIXELSY read GetCapabilities; property X_PhysicalSize: integer index windows.PHYSICALWIDTH read GetCapabilities; // in pixels property Y_PhysicalSize: integer index windows.PHYSICALHEIGHT read GetCapabilities; property X_PhysicalOffset: integer index windows.PHYSICALOFFSETX read GetCapabilities; // in pixels property Y_PhysicalOffset: integer index windows.PHYSICALOFFSETY read GetCapabilities; end; implementation constructor TDeviceCaps.Create(h: thandle); begin fHandle:=h; end; function TDeviceCaps.GetCapabilities(i: integer): integer; begin result:=GetDeviceCaps(fHandle,i); end;
var
PrinterDev: tDeviceCaps;
....
PrinterDev:=tDeviceCaps.Create(printer.handle);
Xdpi :=PrinterDev.X_LogPixel;
....
沒有留言:
發佈留言