Я печатаю файлы PDF без вывода сообщений с помощью Adobe Acrobat Reader DC:
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-файлы по заказу в списке files .
Я отправлял каждый файл в 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-файлов по заказу?