打印多份PDF副本

3
我目前正在使用下面的代码来使用Foxit Reader软件打印PDF。现在我的问题是我想打印多份文件副本。有人可以告诉我如何在下面的代码中指定打印份数吗? [编辑] 我不想使用循环来打印多份pdf。我只想将其指定为命令行参数。
非常感谢任何帮助 :)
Process process = new System.Diagnostics.Process();
process.EnableRaisingEvents = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.FileName = foxitReaderInstalledPath;
string arguments = String.Format(@"-t ""{0}"" ""{1}""", this.Path, printerName);
process.StartInfo.Arguments = arguments;
process.Start();
process.WaitForExit();

你有查看过Foxit命令行参数的文档吗? - Michael Petrotta
好的,谢谢。我现在正在做这件事。 - Bhaskar
2个回答

5
根据Foxit手册,除了使用循环(您不想使用)之外,没有其他选项可以实现您想要的功能。
要么您可以使用一些用于.NET的PDF库——有很多免费和商业版本可供使用(例如,查看.NET library to print PDF files)。
要么您可以使用Acrobat Reader进行打印(如果我没记错的话,它有一个命令行开关可以实现您想要的功能)...

谢谢!也许我需要寻找其他选择。 - Bhaskar

3

只需将其放入一个循环中即可。您随时可以稍后操纵进程的终止。 将其放入参数中会很好,但我认为 FoxIt 并不支持。

int numberOfCopies = 2;
Process process = new System.Diagnostics.Process();

for (int i = 1; i <= numberOfCopies; i++)
    {
            process.EnableRaisingEvents = false;
            process.StartInfo.CreateNoWindow = true;
            process.StartInfo.FileName = foxitReaderInstalledPath;
            string arguments = String.Format(@"-t ""{0}"" ""{1}""", this.Path, printerName);
            process.StartInfo.Arguments = arguments;
            process.Start();
    }

不,我不想在循环中运行。这将创建多个打印作业。如果有多个用户正在打印,这将是一个问题。我想在命令行参数中指定它。 - Bhaskar
我不确定它是否支持。FoxIt的参数并不是太广泛。现在Adobe Reader,你可能可以做一些事情。您可以将嵌入式PDF视图用于C#应用程序,并以此方式进行操作。如果打印不是外部应用程序,则会更容易。 - apollosoftware.org
还有一个很好的框架叫做PDFSharp。链接是http://www.pdfsharp.com/PDFsharp/。 - apollosoftware.org
Foxit Reader 似乎不支持它 :( 有点难过。 - Bhaskar
抱歉兄弟!如果你想冒险的话,可以看看PDFsharp。 - apollosoftware.org

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接