Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Печать страницы на определенный принтер 
:(
    Опции темы
programmister
  Дата 20.4.2007, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 19.4.2007

Репутация: нет
Всего: нет



Всем привет!

Возникла проблемка. Весь деньпровозился, а так и не смог ничего сделать.  
Нужно из JavaScript распечатать текущую страницу на орпеделенный принтер (без окна выбора, а скриптом, и не на принтер по умолчанию), например, по его имени, или ещё каким-нибудь параметрам, которые тоже можно вынуть с помощью JS.

Нашел на этом форуме статью.

Там хорошо всё описано. Но возникла новая проблемка.

Пишу в VBScript:

Код

    set WshShell = CreateObject("WScript.Shell")
    defaultPrinter = WshShell.RegRead(regPathWinNT)

    p = "Printer 11,winspool,LPT3:"
    WshShell.RegWrite regPathWinNT, p 
    WB.ExecWB 6, 2

    p = "HP DeskJet 959C,winspool,LPT1:"
    WshShell.RegWrite regPathWinNT, p
    WB.ExecWB 6, 2

    p = "Printer 10,winspool,LPT2:"
    WshShell.RegWrite regPathWinNT, p
    WB.ExecWB 6, 2

    p = "HP DeskJet 959C,winspool,LPT1:"
    WshShell.RegWrite regPathWinNT, p
    WB.ExecWB 6, 2

    p = "Printer 11,winspool,LPT3:"
    WshShell.RegWrite regPathWinNT, p
    WB.ExecWB 6, 2

    WshShell.RegWrite regPathWinNT, defaultPrinter
    set WshShell = nothing


WB соответственно <object ID="WB" WIDTH=0 HEIGHT=0 CLASSID="clsid:8856F961-340A-11D0-A96B-00C04FD705A2" VIEWASTEXT></object>

После первого прогона почти как попадет. То есть некоторые распечатки попадают не на тот (по коду) принтер.

Если не перезапуская броузер (IE 7) повторить, то будет печатать всё с "Printer 11,winspool,LPT3:".
Короче фигня какая-то творится.

Как можно вылечить?

Подскажите, пожалуйста!
PM MAIL   Вверх
WIPS
Дата 20.4.2007, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 22.5.2006
Где: Украина, Киев

Репутация: 2
Всего: 8



Цитата(programmister @  19.4.2007,  23:29 Найти цитируемый пост)
То есть некоторые распечатки попадают не на тот (по коду) принтер.

Это может происходить из-за того, что у вас сразу после изменений в реестре идет печать. Не знаю как ведет себя VB, но, например JS, точно не будет дожидаться пока выполнится
Код

WshShell.RegWrite regPathWinNT, p

т.е. вызов то конечно выполнится, но произойдет ли рельно смена ключа реестра до начала выполнения 
Код

WB.ExecWB 6, 2

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


Цитата(programmister @  19.4.2007,  23:29 Найти цитируемый пост)
Если не перезапуская броузер (IE 7) повторить, то будет печатать всё с "Printer 11,winspool,LPT3:".

Тут надо прогонять пошагово, смотреть че пишется или не пишется в реестр. А мож это вобще забубоны IE7, я с ним пока не работал :(
--------------------
Автопроизводители, машины, марки, модели!
PM MAIL WWW ICQ Skype   Вверх
programmister
Дата 20.4.2007, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 19.4.2007

Репутация: нет
Всего: нет



Пошаогво проверял, реестр меняется, но всё равно отсылает не на тот принтер.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0710 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.