现遇到一关于B/S程序ASP.NET“打印问题”不能解决。 打印流程大致为四个步骤:①点击印刷Button -> ②弹出内嵌在IE中的pdf页面 -> ③“印刷”对话框,也就是打印页面设置 -> ④纸张打印输出(客户端打印机)――――以上为现存程序,现客户提出的新要求如下:问题一:省去上面四个步骤的②③两步,即:①点击印刷Button -> ②纸张打印输出(客户端打印 和 服务器端打印 均可。)服务器端打印:即客户端向服务器段发送一条指令,告知在本地(服务器端)输出,但我不知道这样的要求是否能够实现,并且速度如何?省去的②③两步能否用程序完成?问题二:现存在X、Y、Z三台打印机,其中打印机X有4个出纸口,比如:1、2、3、4,不同的出纸口用来打印输出不同大小和型号的纸张。现要做如下操作:A类帐票 想通过 打印机X的 1号口 打印输出;B类帐票 通过打印机X 的 2号口 打印输出;C类帐票 通过打印机Y 打印输出(打印机Y只有一个出纸口);D类帐票 通过打印机Z 打印输出(打印机Z只有一个出纸口)。以上均需要程序自动执行,包括不同类别的帐票寻找不同的打印机、不同的出纸口也需要程序自动完成,用户仅仅需要点击web页面上的一个按钮,相应的帐票就从对应的打印机的 对应出纸口 直接打印输出。直接输出:不出现任何窗口,甚至是选择“打印设置”和“打印机选择”窗口。
 ―――――目前计划解决方案如下――――――――――――――――――――――――――――――――1、昨天偶然发现iText,不知道能否解决上述问题?2、寻找Adobe提供的pdf sdk,使用pdf提供的ActiveX的打印控件。是否存在这样一个东西,即使存在能否解决上述问题?
 ―――――以下是一位同事的回信,可参考。――――――――――――――――――――――――――――――――无论问题一或者问题二,都涉及到通过浏览器端的程序控制硬件资源的问题。1,通过浏览器端程序(一般是JavaScript)控制客户端打印机 ①点击印刷Button -> ②纸张打印输出 我认为 有违于浏览器端程序的安全性限制,是不便实现的。 反证法:如果能够实现,那么同样的道理,跳过上述步骤1也应该能够实现,意味着可以在客户端不知情的时候操纵客户端打印机。显然这是不合理的。 客户坚持要实现的话,很可能需要对客户端浏览器的属性进行重新设置,去除上述安全性限制,并且另行开发打印控制逻辑。2,通过Web程序控制服务器端打印机 应该是可以实现的,但是需要另行开发打印控制程序(比如,称之为程序PrnCtrlr)。 Web程序当中按下打印按钮 -〉 起动服务器端的ASPX或者Java程序 -〉 间接调用PrnCtrlr3,不想弹出“打印页面设置”的话,打印机出现各种故障的情况下怎么办? 总体上感觉客户仍然在用传统的VB程序模式来理解Web程序。建议跟客户说明利弊。