在打印前获取当前打印机参数并保存,然后把打印机参数设置成我自己的打印程序要求的数值,程序完成后恢复原来的参数。
这样即使用到自定义纸张之类,在程序退出后也不影响其他程序的打印(比如一般默认是A4纸,我的程序要打印A3,那么打完后最好还是设置为A4,这样不会对客户造成困扰)。
这样即使用到自定义纸张之类,在程序退出后也不影响其他程序的打印(比如一般默认是A4纸,我的程序要打印A3,那么打完后最好还是设置为A4,这样不会对客户造成困扰)。
解决方案 »
- 捡分拉~100分,超级简单的问题,WSA_IO_PENDING的错误代码到底是多少?
- 高分求一个例程
- INTRAWEB怎样取得客户端的IP地正或其它信息?
- 进入SQL Exploer后,选择ACCESS那个,会提示要求输用户名和密码
- 你对自己记忆力有过关注吗?-------程序员记忆力大调查!
- 后台处理和用户界面的问题,怎么来协调?
- 高分求助---怎么把提出来的记录再插回原表(dbf表)?
- 有没有人熟悉WebBrowser?有个小问题...
- delphi可以如何访问远程acess库阿?
- 应聘失败,郁闷,散分
- 如何用delphi做成应用程序先qq一样在状态栏显示图标?(在线)
- 程序自动改变了DBComboBox控件的当前值,POST时为什么保存不了??
DeviceMode,HPrt:THandle;
DevMode:PDeviceMode;
DevSize :Integer; Printer.GetPrinter(FDevice, FDriver, FPort, DeviceMode);
OpenPrinter(FDevice, HPrt, nil);
DevMode :=GlobalLock( DeviceMode); //该结构为各设置信息,可以赋给另外变量保存
----------------------
DevMode.dmFields :=DevMode.dmFields or DM_COPIES;
DevMode.dmCopies :=1; //设置打印份数为1,
------------------------
//打完设回
DevMode.dmFields :=DevMode.dmFields or DM_COPIES;
DevMode.dmCopies :=保存的值; //设置打印份数为1,
ShowMessage('安装了打印机')
else
ShowMessage('未安装打印机');
var PrinterSetupDialog: TPrinterSetupDialog; //打印对话框
begin
PrinterSetupDialog := TPrinterSetupDialog.Create(nil);
//执行打印设置框,获得最新信息
PrinterSetupDialog.Execute;
PrinterSetupDialog.Free;
end;