首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows如何批量打印PDF文档?

Windows如何批量打印PDF文档?
EN

Stack Overflow用户
提问于 2011-12-21 14:02:34
回答 1查看 2.1K关注 0票数 3

在我的机器上,当选择Windows Explorer中的多个PDF文档时,右击并选择Print,将被打开最小化,所有文档都被静默地发送到打印机。

我想和Windows做同样的事情,但是它是如何完成的呢?

我使用的是ProcessStartInfoPrintTo动词,正如您在以前的question中看到的那样。不幸的是,这一切都是沉默的,我在打印多个文件时遇到了很大的问题。我如何知道应用程序(通常是Adobe )何时完成打印?如果在一行中启动多个printTo进程,则在前面的文档打印完成之前,似乎会打开一个文档。

我想避免硬编码Adobe,因为我的一些用户已经将它交换为Foxit或其他用户。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-21 14:39:27

我不知道你是否可以和其他PDF阅读器一起使用,让这些查看器成为Adobe的即插即用替代品。您可能需要根据您想要支持的每个程序来调整它。如果有必要执行一项工作,并且大多数计算机都是预装的,那么在一个系统上安装Reader并不难。

您必须知道的第一件事是,当您让它通过动词打印,通过代码或资源管理器上下文菜单打印时,您要做的事情如下:

代码语言:javascript
复制
""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 )指出,此命令行可用于每个文件:

代码语言:javascript
复制
AcroRd32.exe /t path "printername" "drivername" "portname"

文档指定这将启动Adobe并打印一个必须完全指定路径的文件,同时取消“打印”对话框。(复制粘贴自开发人员常见问题解答)

还有一个选项/n,它“启动一个单独的Acrobat或Adobe实例,即使一个实例当前是打开的。”(开发商的常见问题再次。)我想,它可以用于并行运行多个打印作业。

我在以下位置找到了另一个命令行引用:Adobe Reader Command Line Reference

因此,基本上,您可以迭代您的PDF列表,每一个都使用一个Process.Start调用启动一个新的打印过程,然后等待它通过一个Process.WaitForExit关闭。这将使您的程序看起来像是挂起的,我讨厌程序在执行操作时挂起,所以您应该在一个可取消的BackgroundWorker中这样做,该报告进度,但仍然保持GUI的交互性。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8590998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档