Windows如何批量打印PDF文档?
在我的机器上,在Windows资源管理器中选择多个PDF文档时,右键单击并选择“ 打印” ,Adobe Acrobat Reader将被最小化打开,所有文档将以静默方式发送到打印机。
我想和Windows一样,但它是如何完成的?
我正在使用带有PrintTo
动词的ProcessStartInfo
,正如您在上一个问题中看到的那样。 不幸的是,这一切都是沉默的,而且在打印多个文档时我遇到了很大的问题。 我如何知道应用程序(通常是Adobe Reader)何时完成打印? 如果连续启动多个printTo进程,则在上一次完成打印之前,一个文档似乎打开。
我想避免硬编码Adobe Reader,因为我的一些用户已经将它交换为福昕阅读器或其他人。
我不知道你是否可以通过其他PDF查看器来实现这一点,这些查看器是Adobe Reader的即插即用替代品。 您可能需要根据要支持的每个程序进行定制。 在一个人的系统上安装Reader并不是那么困难,实际上,如果有必要执行一项工作并且大多数计算机都预先安装了它。
你必须要知道的第一件事是,当你通过代码或资源管理器上下文菜单告诉它通过该动词打印时,你正在做这样的事情:
""C:Program FilesAdobeReader 10.0ReaderAcroRd32.exe"" /p /h "%1"
请注意参数:/ p(告诉它打印)和/ h(开始最小化)。
还有另一种选择。 Adobe Developer FAQ( https://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/intro_to_sdk/DeveloperFAQ.pdf )声明此命令行可以按文件运行:
AcroRd32.exe /t path "printername" "drivername" "portname"
该文档指定这将启动Adobe Reader并打印一个文件,其路径必须完全指定,同时禁止“打印”对话框。 (从开发人员常见问题解答中复制粘贴。)
还有一个选项/ n“即使一个当前打开,也会”启动单独的Acrobat或Adobe Reader实例。“ (开发人员常见问题解答。)我想,这可以用来并行运行多个打印作业。
我在以下位置找到了另一个命令行参考: Adobe Reader命令行参考
所以基本上,你可以迭代你的PDF列表,并为每个开始一个新的打印过程与Process.Start调用,并等待它通过Process.WaitForExit关闭。 这将使您的程序看起来挂起,我讨厌程序在执行操作时挂起,因此您应该在可取消的BackgroundWorker中执行此操作,该工作会报告进度并使GUI保持一定的交互性。
上述就是C#学习教程:Windows如何批量打印PDF文档?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/998607.html