Страница 4 из 5

Добавлено: Пт апр 13, 2007 15:48
VadiMGP
2lamicard А в самом деле, не мог бы ты немного формализовать задачу? А заодно описать рабочую среду. Хотя бы приблизительно. Сколько человек будет пользоваться этим? Сколько файлов ежедневно печатается? Объемы файлов, дисков? Общий объем печати в страницах?
те 300 долл которые Вам не нужны куда скажете туда и перешлю
Batyа, как говорил очень любимый мной Ниро Вульф "Никогда не отказывайтесь от заслуженного гонорара". Но если все таки ты не хочешь их брать, то я знаю куда их деть! Нанять кого-то, кто решит на форуме проблему спама! :)

Добавлено: Пт апр 13, 2007 16:59
lamicard
каждая машинка держит максимум 8 принтеров на usb - сетка обычная 100 мб/сек. максимальное количество принтеров 30. машинки мощные от 2.4 до 3.4 мгц нецелеронов
принтера струйные печатают изображения в растре и кривых - т.е. без шрифтов.
сейчас это делается ручками - причем криво - иной раз с винчестера пускается печать - иной раз по локалке... если еще дизайнер напартачит с качеством изображения то 20 листиков могут весить в спулере до 1.5 гига. и висим все от дизайнера до бухгалтера, если учесть что мы с соседними сетями около 50 копмов интернетим - то иногда и другим достается...
Задача каждому принтеру прописать сетевую папку - что бы печать пускалась не на сетевой притер с подвешеванием сети а просто копировалась в папку - далее скрипт видя новый файл - запускал его на печать на определенный локальный принтер согласно назначенной папке - на котором предварительно сделаны вручную настройки качества печати, после печати файл перемещается в какую либо папку ( тип отработка) ну и дата перемещения в папку отработка желательна. папка отработка разбита по месяцам - если сложно будем ручками делать - раз в месяц создавать папку и кидать в нее отрабутку за этот месяц.
нагрузка один фал печатается от 1 до 1000 листов копий (в случае дублирования задания мы либо будем ставить количество копий в настройках принтера - либо клонируем файл нужное количество раз)
один принтер за 8 часов прогоняет максимум 100 листов
нагрузка ежедневная 5-7 дней в неделю
диски обыные 7200 об/мин от 80 до 400 гигабайт
иногда происходит засорение дюз - делаем сброс задания кнопкой на принтере - в этом случае идет прочистка головки и повтор задания по сети - мне важен не контроль отпечатанного задания (на это есть органайзер в акробате) а равномерная загрузка машин и отсутствие кривых рук пользователя при посылке задания. а это возможно если человек нажимает одну кнопку а не выполняет зависимую последовательность правильных действий

Добавлено: Пт апр 13, 2007 17:12
Batya
Хм, а у тебя еще пробел в названии порта.
Тогда

Код: Выделить всё

WSH.Run """" & Acrobat & """ /t """ & Doc & """ """ & Printers & _ 
""" """ & Drivers & """ """ & Ports & """", 6, False
Хотя что-то меня берут сомнения в твоих данных.
Printers - это "\\server\' + то, что написано вверху первой закладки "Общие" свойств принтера.
Drivers - то, что написано на закладке "Дополнительно" в строке "Драйвер".
Ports - то, что написано на закладке "Порты" в колонке "Порт" таблицы у строки с галочкой.

Добавлено: Пт апр 13, 2007 17:17
lamicard
если брать локальный принтер а не сетевой - как лучше написать данные в скрипт? я тогда дома могу его запустить - просто такие тесты возможны либо до работы либо после - когда ничего не печатается, а это потерянное время.

Добавлено: Пт апр 13, 2007 18:01
VadiMGP
Batya писал(а):Printers - это "\\server\' + то, что написано вверху первой закладки "Общие" свойств принтера.
Погоди, они же хотят печатать только на локальные принтеры. Почему "\\server"?

Добавлено: Пт апр 13, 2007 18:15
Batya
Ну тогда без "\\server\" :)

Добавлено: Пт апр 13, 2007 19:00
Volniy
Ну, а мой скрипт когда пробовать будем? Я сегодня спецом после работы остался и погонял свой скрипт на реальном принтере (у меня он один, но что это меняет?). Скрипт претерпел некоторые видоизменения с учетом открывшихся обстоятельств.
Короче, все работает, аж противно :) Бумаги перевел - гору, хорошо, что обычной. Будет заказчик должон за нее ;-)

Добавлено: Пт апр 13, 2007 19:40
VadiMGP
Volniy, так где видоизмененный скрипт-то? Ты выложи, будем посмотреть. А кстати, любопытно мне, что происходит со скриптом, если принтер в оффлайне? Он вылетает или только спулер на дармовых гигах жиреет?
Бумаги перевел - гору,
А чернила, так и быть, за счет заведения?. :)

Добавлено: Сб апр 14, 2007 00:38
Volniy
VadiMGP писал(а):Volniy, так где видоизмененный скрипт-то? Ты выложи, будем посмотреть.
Там же где и был. Я свой пост отредактировал после того, как убедился, что скрипт работает.
VadiMGP писал(а):А кстати, любопытно мне, что происходит со скриптом, если принтер в оффлайне? Он вылетает или только спулер на дармовых гигах жиреет?
Скорее второе (однако, смачно сказано:)). Надо просто попробовать.
VadiMGP писал(а):
Бумаги перевел - гору,
А чернила, так и быть, за счет заведения?. :)
Там же порошок был, не обеднеют. А вот с бумагой в конторе конкретный напряг: начальник даже издал приказ печатать всю документацию на 2-х сторонах листа. Никогда так не делали, да и кажись по ГОСТ-ам это не всегда проходит. Зато ж какая экономия :lol:

Добавлено: Вт апр 17, 2007 03:00
lamicard
Скопировал скрипт - поставил принтера - дошел до строки pdfp.exe - вопрос где взять этот файл у акробата его нет в интренете тоже - дайте ссылку на него.

Добавлено: Вт апр 17, 2007 03:42
Volniy
lamicard писал(а):Скопировал скрипт - поставил принтера - дошел до строки pdfp.exe - вопрос где взять этот файл у акробата его нет в интренете тоже - дайте ссылку на него.
Ну ты даешь, однако... Это ж твой топик, чего ж не читаешь-то его? Ссылку, ладно, повторяю: для 7-го AR (и ниже, я так думаю)
http://www.esnips.com/doc/9e2a3a72-52ca ... 5f02f/pdfp
а если уже установлен 8-ой Акробат Ридер, тогда качай другую версию:
http://www.esnips.com/doc/0a1928c4-a96d ... 986c/pdfp8

Экзешник надо положить (остальные файлы не нужны) или в папку со скриптом или в какую-нибудь виндовую, которая прописана в переменной %Path%.

А че так долго пропадал-то, три сотни на гонорар по сусекам наскребал, чтоли? :wink: Мы тут прямо заждались уже :)

Добавлено: Вт апр 17, 2007 03:44
lamicard
спасибо - топик читаю только вы иногда меж собой разговариваете, эти сообщения мельком читаю - вот и пропустил..

скачал - запустил, ошибка строка 13 символ 4 - путь не найден
ошибка 800A004C

запустил следующее:
Dim WSH, FSO
Set WSH = CreateObject("wscript.Shell")
Set FSO = CreateObject("scripting.filesystemobject")
Dim I, PrCmd, PDFFile
Const AlreadyPrinted="c:\pdf\AlreadyPrinted"

'Устанавливаем ключ реестра в рабочее состояние
MykeyValue = True
'WSH.RegWrite MyKey, MykeyValue
PDFFolders = Array("c:\pdf\1", "c:\pdf\2") ' пишем столько папок,

сколько нам нужно
Printers = Array("EPSON Stylus Photo R270 Series", "EPSON Stylus Photo

R270 Series") ' соответствующие принтеры для каждой папки
If FSO.FolderExists(AlreadyPrinted & "\" & Month(Date)) = False Then _
FSO.CreateFolder AlreadyPrinted & "\" & Month(Date)
'Бесконечный цикл (выход по изменению ключа реестра)
Do While MykeyValue
For I= LBound(PDFFolders) To UBound(PDFFolders)
Set PDFFolder = FSO.GetFolder(PDFFolders(I))
PrCmd = (Printers(I))
For Each PDFFile In PDFFolder.Files
If UCase(FSO.GetExtensionName(PDFFile.Name))="PDF" Then
'Печать, как таковая с помошью pdfp или как-нить иначе
'pdfp.exe [options] [drive:][path]<filename>
WSH.Run "c:\pdfp.exe -p """ & PrCmd & """ """ & PDFFile.Path

& """" , 1, True
' тут команда перeименования и перемещения уже отпечатанного

файла, например
PDFFile.Name= PDFFile.Name & ".printed"
PDFFile.Move AlreadyPrinted & "\" & Month(Date) & "\" &

FSO.GetBaseName(PDFFile.Name)
End If
Next
Set PDFFolder = Nothing
Next
'Пауза в мс (а нужна ли, работы ведь хватает:-)
WScript.Sleep Delay * 1000
'Читаем реестр
'MykeyValue = WSH.RegRead(MyKey)
Loop
Set WSH = Nothing
Set FSO = Nothing

Добавлено: Вт апр 17, 2007 13:00
Volniy
lamicard писал(а):скачал - запустил, ошибка строка 13 символ 4 - путь не найден
ошибка 800A004C
Просто указанный путь к папке отработанных файлов не существует. Папка должна быть создана еще до запуска скрипта (хотя могу создать в коде проверку на существование этой папки).

Добавлено: Вт апр 17, 2007 16:46
Batya
Volniy
Слушай, а почему ты не используешь запись\чтение реестра? Срубать процесс руками - это не очень красиво.

Добавлено: Вт апр 17, 2007 18:58
Volniy
Batya писал(а):Volniy
Слушай, а почему ты не используешь запись\чтение реестра? Срубать процесс руками - это не очень красиво.
Да я до сих пор все еще не услышал от того, кому это все, собственно, надо, работает ли у него хоть че-нить. Тоесть все это пока просто рабочая модель и я запускаю скрипт в отладчике.

Потом можно будет добавлять/удалять все, что угодно. И уж я точно не думаю, что реестр это единственный способ останавливать работу скрипта с бесконечным циклом. Во-первых выключение компа скрипт-таки остановит ;-). А потом, а почему бы, например, для этой цели не использовать файл УдалиМеняЧтобыВырубитьСкрипт.!!!, который будет создаваться самим же скриптом при его запуске?
Ну и третье. Скрипт скриптом, но что помешает скомпилировать этот код (адаптированный, конечно) в некий экзешник с минимальным UI, хотя бы банальными кнопками Старт/Стоп и окошком с логом уже обработанных файлов?