我不知道您是否可以通过其他PDF查看器以这种方式进行操作,以便这些查看器是Adobe Reader的即插即用替代品。您可能需要为您想要支持的每个程序定制它。在系统上安装Reader并不困难,如果有必要执行一项工作,并且大多数计算机都预装了它,那么确实如此。
,你必须知道的第一件事是,当你告诉它通过该动词打印,通过代码或资源管理器右键菜单,你在做这样的事情:
""C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe"" /p /h "%1"
注意的参数:/p(告诉它打印)和/ h(开始最小化)。
还有另一种选择。 Adobe开发人员常见问题解答(http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/intro_to_sdk/DeveloperFAQ.pdf)指出,该命令行工作的每个文件:
AcroRd32.exe /t path "printername" "drivername" "portname"
该文件指定该启动Adobe Reader和打印文件,其路径必须充分说明,同时抑制打印对话框。 (从开发者FAQ复制粘贴。)
还有一个选项“n启动一个单独的Acrobat或Adobe Reader实例,即使当前打开了一个。” (开发者常见问题解答。)这可以用来并行运行多个打印作业,我想。
我发现又在另一个命令行参考:Adobe Reader Command Line Reference
因此,基本上,你可以重复你的PDF文件的列表,并为每一个启动一个新的印刷工艺用的Process.Start呼叫并等待它关闭通过Process.WaitForExit。这会让你的程序看起来挂起来,而且我讨厌程序在执行操作时挂起,所以你应该在可撤销的BackgroundWorker中做到这一点,它可以报告进度,并保持GUI的交互性。
我们有相同的(和相关的)问题,最后使用[gsprint](http://pages.cs.wisc.edu/~ghost/gsview/gsprint.htm)作为解决方法。 – Silas 2011-12-21 14:06:56
我要做的第一件事就是通过使用'regedit'来仔细检查机器上发生的事情(当然要仔细)。 – AakashM 2011-12-21 14:10:22
好@Silas,我希望不会得出这个结论。 =/ – Skywise 2011-12-21 14:23:28