Пакетная печать файлов

8

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

chrispt
источник

Ответы:

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 отыскивать примеры кода. Вы должны быть в состоянии вырезать и вставить большую часть кода, который вам нужен.

Джо Тейлор
источник
вау - DarkStorm's batch print handlerприятно
Сатьяджит Бхат
Скачиваю сейчас. Все сценарии хороши, но я бы не стал идти по этому пути. Собираюсь протестировать DarkStorm.
Четверг
Я думаю, что приложение DarkStorm будет хорошим. Единственное, что было бы приятно, если бы они добавили функциональность, это возможность запланировать запуск пакета в определенное время, чтобы вы могли автоматически запускать его, когда вы уходите на день.
Четверг
3

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

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

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

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

Жиль "ТАК - перестань быть злым"
источник
cmd has an equivalent of sleep-> сырой заменой будет `ping localhost -n 6> NUL
Сатьяджит Бхат
Также startзапускается новое приложение - оно не имеет никаких возможностей печати.
Сатьяджит Бхат
@ Сатья: Спасибо. Я не удивлен, что у cygstartнего больше возможностей, чем при запуске, но я подумал, что есть способ инициировать действие печати из cmd (действие печати вызывает приложение, зарегистрированное в реестре, с указанием печатать, а не открывать для редактирования). Вы случайно не знаете, есть ли способ печати в cmd ( printпохоже, тоже нет)?
Жиль "ТАК - перестань быть злым"
@Gilles - один из способов - скопировать PDF-файлы на принтер, если он настроен как (сетевой) общий ресурс - copy *.pdf \\printer\name. Для пакетной обработки cmd имеет forкоманду, но я застрял в том, как заставить его выполнять несколько команд
Сатьяджит Бхат
@ Сатья: Я думаю, что-то вроде for %x in (*.pdf) do ( ; command1 ; command2 ; )перевода строки, где я написал ;. Если вы можете заставить это работать, пожалуйста, сделайте это ответом.
Жиль "ТАК - перестань быть злым"
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 . Надеюсь, вы найдете его таким же полезным, как и я.

Джимми Кин
источник
1
Если вы связаны с этим продуктом, пожалуйста, укажите свою принадлежность в соответствии с часто задаваемыми вопросами , в противном случае ваши сообщения могут быть удалены как рекламные
slhck