我这里有段程序。你看看吧。控制打印机打印特种纸张的。 procedure SetPrinter(W:Integer); var ADevice,ADriver,APort:array[0..255] of Char; DeviceHandle:THandle; DevMode:PDeviceMode; begin 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 Raise Exception.Create('Could not initialize TDeviceMode Structure') else begin DevMode:=GlobalLock(DeviceHandle); DevMode^.dmFields:=DevMode^.dmFields or DM_PAPERLENGTH; DevMode^.dmPaperLength:=w; DevMode^.dmFields:=DevMode^.dmFields or DM_PAPERWIDTH; DevMode^.dmPaperWidth:=279; Quickreport1.Page.Length:=w; Quickreport1.Page.Width:=279; end; if not(DeviceHandle = 0) then GlobalUnlock(DeviceHandle); end;
procedure SetPrinter(W:Integer);
var
ADevice,ADriver,APort:array[0..255] of Char;
DeviceHandle:THandle;
DevMode:PDeviceMode;
begin
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
Raise Exception.Create('Could not initialize TDeviceMode Structure')
else begin
DevMode:=GlobalLock(DeviceHandle);
DevMode^.dmFields:=DevMode^.dmFields or DM_PAPERLENGTH;
DevMode^.dmPaperLength:=w;
DevMode^.dmFields:=DevMode^.dmFields or DM_PAPERWIDTH;
DevMode^.dmPaperWidth:=279;
Quickreport1.Page.Length:=w;
Quickreport1.Page.Width:=279;
end; if not(DeviceHandle = 0) then
GlobalUnlock(DeviceHandle);
end;