T
Tome200
Unregistered / Unconfirmed
GUEST, unregistred user!
我写了下面的代码,目的是修改打印机的纸张类型为自定义型.
可是程序运行后,打开打印机的属性却发现纸张还是没有变。
但是,我们有个同事却已经实现了永久修改打印纸张的类型与大小。
可惜现他现在不在这儿。
请问哪位大侠能帮我实现永久实现修改打印的纸张类型?
永久:指关闭该程序后打印机的纸张为修改后的新纸张类型。
procedure TForm1.Button2Click(Sender: TObject);
var
Device, Drive, Port:array[0..255] of char;
TDevMode: THandle;
PDevMode: PDeviceMode;
begin
Printer.PrinterIndex:= Printer.PrinterIndex;
Printer.GetPrinter(Device, Drive, Port, TDevMode);
PDevMode:= GlobalLock(TDevMode);
PDevMode^.dmFields:= DM_PAPERSIZE or DM_PAPERWIDTH or DM_PAPERLENGTH;
PDevMode^.dmPaperSize:=256;
PDevMode^.dmPaperWidth:= 1000;
PDevMode^.dmPaperLength:= 1000;
ResetDC(Printer.Handle, PDevMode^);
GlobalUnLock(TDevMode);
end;
可是程序运行后,打开打印机的属性却发现纸张还是没有变。
但是,我们有个同事却已经实现了永久修改打印纸张的类型与大小。
可惜现他现在不在这儿。
请问哪位大侠能帮我实现永久实现修改打印的纸张类型?
永久:指关闭该程序后打印机的纸张为修改后的新纸张类型。
procedure TForm1.Button2Click(Sender: TObject);
var
Device, Drive, Port:array[0..255] of char;
TDevMode: THandle;
PDevMode: PDeviceMode;
begin
Printer.PrinterIndex:= Printer.PrinterIndex;
Printer.GetPrinter(Device, Drive, Port, TDevMode);
PDevMode:= GlobalLock(TDevMode);
PDevMode^.dmFields:= DM_PAPERSIZE or DM_PAPERWIDTH or DM_PAPERLENGTH;
PDevMode^.dmPaperSize:=256;
PDevMode^.dmPaperWidth:= 1000;
PDevMode^.dmPaperLength:= 1000;
ResetDC(Printer.Handle, PDevMode^);
GlobalUnLock(TDevMode);
end;