Окна печати печатают задания в порядке представления

Средство защиты данных поддерживает NDMP. I'ver никогда не использовал его, но я вижу его в опциях для типов резервных копий, которые можно создать.

2
задан 19 November 2010 в 18:00
1 ответ

Я наткнулся на эту проблему. В моем случае использования у меня был сценарий, который перебирал все файлы в каталоге и вызывал для них команду «Печать» с помощью ShellExecute. (Таким образом, имитируйте, как пользователь просматривает каждый из них, щелкая правой кнопкой мыши и затем выбирая «печать».)

Результаты хороши, когда вы работаете только с небольшим количеством документов, но с десятками или сотнями всегда есть несколько которые вышли из строя.

Трудно сказать, связана ли проблема с программой, которая обрабатывает команду «печать», или с самой очередью. (В моем случае каждый раз, когда я вызываю печать, я, вероятно, вызываю новый экземпляр программы, используемой для печати. ​​Это означает, что капризы времени выполнения / расписания могут означать, что «печать» программа для документа №2 фактически отправляет задание в очередь до документа №1.)

Похоже, что с очередью тоже что-то происходит.

Я создал программу, которая печатает документы, наблюдая за очередью. Первая версия работала следующим образом:

  1. ShellExecuteEx для печати документа
  2. Подождите, пока документ появится в очереди печати
  3. Напечатать следующий документ

В этой версии некоторые документы все равно будут распечатываться с нарушением порядка. Вторая версия оказалась той, которая сработала:

  1. ShellExecuteEx для печати документа
  2. Подождите, пока документ появится в очереди печати
  3. Подождите, пока завершится спулинг (PrintSystemJobInfo.IsSpooling == false status в .NET)
  4. Печать следующий документ

Эта вторая версия распечатывает документы каждый раз по порядку. Это наводит меня на мысль, что когда вы отправляете кучу документов, там ' это странный период, когда идет гонка за тем, кто из них будет первым.

Однако я не знаком с тонкостями системы печати Windows. Может случиться так, что задание появляется до того, как генерирующая его программа отправит все данные. Это означало бы, что причиной проблемы могло быть переменное время выполнения программы после команды «print».

2
ответ дан 3 December 2019 в 12:15

Теги

Похожие вопросы