У меня есть пользователь, который должен распечатать около 220 документов, в среднем по 2-3 страницы каждый. При печати с использованием стандартного метода Windows «Выбрать все» - щелчок правой кнопкой мыши - «Печать» приводит к перегрузке либо сервера печати, либо самого принтера. Я ищу утилиту, которая позволит мне обрабатывать, скажем, 5 документов за раз, которые будут делать все документы в данном каталоге. Я надеюсь, что это уменьшит нагрузку на сервер печати, а также позволит пользователю не приходиться присматривать за своими заданиями на печать. Я нашел один, который позволяет вам запланировать задание на печать на определенное время, но (и, возможно, это не нарушает условия соглашения) написание в программе ужасно.
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 отыскивать примеры кода. Вы должны быть в состоянии вырезать и вставить большую часть кода, который вам нужен.
Это работа для командной строки.
При использовании Cygwin следующий скрипт (который можно ввести в командной строке bash) будет печатать каждый файл PDF в текущем каталоге по одному каждые 5 секунд.
for x in *.pdf; do cygstart -p -- "$x"; sleep 5; done
Если вы не хотите устанавливать Cygwin (что полезно для многих других вещей), см . Ответ Сатья для cmd (он немного менее прост). Инструментом выбора будет Powershell, в котором наверняка есть все необходимые строительные блоки (но я не говорю на Powershell).
Если вы действительно хотите пойти по пути командной строки, скопируйте и вставьте его в командный файл, измените путь и добавьте полный путь к 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 нет встроенных шрифтов.
Отличным приложением для пакетной печати, которое я использую постоянно, является SilentPrint. Вы можете узнать больше об этом на http://www.silentprint.com. Надеюсь, вы найдете его таким же полезным, как и я.