如何在程序中选择不同的网络打印机?(100分)

  • 主题发起人 土拨鼠
  • 开始时间

土拨鼠

Unregistered / Unconfirmed
GUEST, unregistred user!
最近在编写一个程序中遇到了一个问题,要在程序中控制向两台不同的网络打印机
发送两张不同的报表?望高手指教!
 
把所有 网络打印机都装到 系统中,
会合使用本地打印机一样的效果,用户和程序都不知道那是网络打印机
 
用printer.printerIndex 控制目标打印机
 
[8)]
[blue]在程序里设置printer.printerIndex的确可以控制打印输出的方向,但是
我在设定其它的设置时,会报错'Printer selected is not valid'[/blue][:(]
 
[green]更改printer.printerIndex的值可以选择打印到不同的打印机,但printer
中所有的打印机共用一个设备状态变量,如果你送到两个打印机上的作业有设置上的
不同,记得每次更改设置[/green]
 
问mor :
你能告诉我什么十是设备状态变量吗?是不是指所有打印机的
纸张设置?
 
MSDN上关于DEVMODE的解释.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/prntspol_8nle.asp
DEVMODE是一个包含打印机或显示设备的初始化信息和环境信息的数据结构.所以它里面既有打印机的
一些设置信息如纸张大小,是否双面打印等,也有显示器的一些属性象分辨率、刷新频率。
在进行打印机设置的时候,你可以用GetPrinter这个API来得到一个指针,然后用GlobalLock得到一个
DEVMODE结构,修改它就可以修改打印机的各种属性了,最后GlobalUnlock就可以了。
DEVMODE可以设定的打印机的属性包括:
打印方向:横打还是竖打
纸张大小:可以直接设已存在的纸张类型如A4,B4什么的,也可以自定义设置。
打印缩放比例
打印份数
打印机进纸来源
打印质量
单色打印还是彩色打印
双面打印
打印机分辨率
TrueType字体打印
打印缓冲设置
好像Windows下的那个打印机设置的对话框上的所有属性都可以通过DEVMODE来设置.[8D]
 
顶部