C#Adobe Acrobat Reader按顺序打印PDF文件

时间:2019-07-02 12:31:26

标签: c# .net pdf printing adobe

我正在使用Adobe Acrobat Reader DC静默打印PDF文件:

        List<string> files = ..... ; // get list of PDF files on disk

        const string flagNoSplashScreen = "/s";
        const string flagOpenMinimized = "/h";

        foreach (var file in files)
        {
            var flagPrintFileToPrinter = string.Format("/t \"{0}\" \"{1}\"", file, PrinterName);
            var args = string.Format("{0} {1} {2}", flagNoSplashScreen, flagOpenMinimized, flagPrintFileToPrinter);

            try
            {
                Process p = new Process();
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.CreateNoWindow = true;
                p.StartInfo.FileName = PathHelper.AdobeExePath;// @"C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe";
                p.StartInfo.RedirectStandardError = true;
                p.StartInfo.Arguments = args;
                p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                p.Start();                    
            }
            catch (Exception ex)
            {
                // log
            }
        }

我可以成功打印所有PDF文件。但是我想按顺序在文件列表中打印PDF文件。 我已按顺序将每个文件发送给Acrobat Reader。但是流程无法按顺序进行。

我在foreach块中尝试了以下代码:

p.WaitForExit(1000);
...
while(!p.HasExited)
{
    Thread.Sleep(1000);
}
...
p.Kill(); // kill process
// wait and kill all working Acrobat Reader exe

有了这些代码,我可以按顺序打印。但是我不想等待不必要的时间并浪费资源。

还有其他按顺序打印PDF文件的方法吗?

0 个答案:

没有答案