歡迎光臨 Code²

Code Square, CodeSqaure, Pascal, Javascript

2009年5月7日星期四

打印機的大小及分辨率

  使用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;
....

沒有留言:

發佈留言