8

У меня есть пользователь, который должен распечатать около 220 документов, в среднем по 2-3 страницы каждый. При печати с использованием стандартного метода Windows «Выбрать все» - щелчок правой кнопкой мыши - «Печать» приводит к перегрузке либо сервера печати, либо самого принтера. Я ищу утилиту, которая позволит мне обрабатывать, скажем, 5 документов за раз, которые будут делать все документы в данном каталоге. Я надеюсь, что это уменьшит нагрузку на сервер печати, а также позволит пользователю не приходиться присматривать за своими заданиями на печать. Я нашел один, который позволяет вам запланировать задание на печать на определенное время, но (и, возможно, это не нарушает условия соглашения) написание в программе ужасно.

4 ответа4

4

Вы можете попробовать обработчик пакетной печати DarkStorm. Это бесплатно! :-)

Обработчик пакетной печати DarkStorm - это приложение .Net, которое будет выполнять пакетную печать документов. Обработчик пакетной печати DarkStorm автоматизирует Word/Excel и Adobe Reader, чтобы помочь процессу пакетной печати, а также обеспечивает поддержку некоторых популярных форматов изображений.
Я не смог проверить это, хотя

В качестве альтернативы:

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

Псевдокод будет выглядеть примерно так.

Populate Text File Function ()  
{  
  Set Folder Path  
  Get Document Names in folder  
  Write Document Names to Text File  
}  
Print Function  
{  
  While Not End of File{  
  Get Document Name  
  Print Document Name  
  Move down 1 line  
      Wait a timed interval  
 }  
}

Мое кодирование не то, что было раньше, поэтому я, возможно, пропустил несколько бит, но я думаю, что это разумно. Я бы порекомендовал Guys Scripting Enzine отыскивать примеры кода. Вы должны быть в состоянии вырезать и вставить большую часть кода, который вам нужен.

3

Это работа для командной строки.

При использовании Cygwin следующий скрипт (который можно ввести в командной строке bash) будет печатать каждый файл PDF в текущем каталоге по одному каждые 5 секунд.

for x in *.pdf; do cygstart -p -- "$x"; sleep 5; done

Если вы не хотите устанавливать Cygwin (что полезно для многих других вещей), см . Ответ Сатья для cmd (он немного менее прост). Инструментом выбора будет Powershell, в котором наверняка есть все необходимые строительные блоки (но я не говорю на Powershell).

2

Если вы действительно хотите пойти по пути командной строки, скопируйте и вставьте его в командный файл, измените путь и добавьте полный путь к AcroRd32.exe

cd\path\to\pdf\files
for %%f in ("*.pdf") do AcroRd32.exe /t %%f "\\servername\printername" & ping localhost -n 6 >NUL

Это изменит каталог на каталог, содержащий файлы PDF, запустит Acrobat Reader в автоматическом режиме, распечатает их и подождите 5 секунд. Еще одна альтернатива, если принтер является общим

cd\path\to\pdf\files
for %%f in ("*.pdf") do copy %%f "\\servername\printername" & ping localhost -n 6 >NUL

Что делает то же самое, но в моем прошлом опыте я не получил хороших результатов с этим подходом - но это из-за того, что в файлах PDF нет встроенных шрифтов.

0

Отличным приложением для пакетной печати, которое я использую постоянно, является SilentPrint. Вы можете узнать больше об этом на http://www.silentprint.com. Надеюсь, вы найдете его таким же полезным, как и я.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .