Печать на плохой сетевой принтер
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7427
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
Печать на плохой сетевой принтер
Привет всем !
Обнаружился интересный нюанс работы приложений собранных под Clarion.
(во избежание предвзятости я экспериментировал со штатным примером Invoice)
Windows 10.
На рабочей станции, в обычной локальной сети, подключен сетевой принтер и установлен как
печатное устройство по умолчанию. Например "\\Server\HP Laser Jet 1020".
Всё работает штатно.
Отключаем рабочую станцию от сети (выдернул сетевой штекер).
При попытке печати на сетевой принтер, приложение собранное под C63 вылетает, причём молча, без GPF.
Это же приложение, собранное под C10, при печати - валит Windows и приводит к её перезагрузке.
Вылет идёт на "SELF.Report{PROP:FlushPreview} = CHOOSE (RVal = Level:Benign)" в ABCReport.clw,
но от понимания места проблемы - мало толку. Жесть !
Обнаружился интересный нюанс работы приложений собранных под Clarion.
(во избежание предвзятости я экспериментировал со штатным примером Invoice)
Windows 10.
На рабочей станции, в обычной локальной сети, подключен сетевой принтер и установлен как
печатное устройство по умолчанию. Например "\\Server\HP Laser Jet 1020".
Всё работает штатно.
Отключаем рабочую станцию от сети (выдернул сетевой штекер).
При попытке печати на сетевой принтер, приложение собранное под C63 вылетает, причём молча, без GPF.
Это же приложение, собранное под C10, при печати - валит Windows и приводит к её перезагрузке.
Вылет идёт на "SELF.Report{PROP:FlushPreview} = CHOOSE (RVal = Level:Benign)" в ABCReport.clw,
но от понимания места проблемы - мало толку. Жесть !
За теми кто отстал - не возвращаться. (С) Кодекс
Печать на плохой сетевой принтер
Было когда-то у одного клиента. Правда, принтер не сетевой, а самый обычный, а авария возникала, если принтер просто был выключен из розетки или уборщица выдернула кабель.
В Панели Управления в свойствах принтера можно попросить не печатать текст сразу, а поставить в очередь при завершении задания. Или печатать сразу на принтер, не кэшируя... Если ставится в очередь, то Кларион тут как бы и не при чём, а отпечатать и потом можно.
Может быть, получится ?
В Панели Управления в свойствах принтера можно попросить не печатать текст сразу, а поставить в очередь при завершении задания. Или печатать сразу на принтер, не кэшируя... Если ставится в очередь, то Кларион тут как бы и не при чём, а отпечатать и потом можно.
Может быть, получится ?
- Игорь Столяров
- Ветеран движения
- Сообщения: 7427
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
Печать на плохой сетевой принтер
У сетевого принтера стоит настройка "Начинать печать немедленно", но менять ничего нельзя (все настройки на сервере).
Установил тот же драйвер локально (без фактического подключения принтера) - всё прекрасно работает, независимо от настроек.
Задание пишется в очередь, Windows ссобщает, что принтер отключен. Т.е. так как оно и должно быть ...
При печати на "отключенный" сетевой принтер из Microsoft Office выводится сообщение, что "устройство печати недоступно
в настоящий момент". И нет никаких вылетов. Т.е. всё-таки как-то можно проверить статус принтера перед печатью …
Значит в самой системе печати Clarion что-то не то … Совсем.
За теми кто отстал - не возвращаться. (С) Кодекс
Печать на плохой сетевой принтер
Может быть, сообщение выводится драйвером принтера. Тогда, возможно, конструкцию SELF.Report{PROP:FlushPreview} = CHOOSE (RVal = Level:Benign) стоит взять в скобки UnlockThread-LockThread.
Хотя, конечно, вряд ли.
Ну и если совсем никак, совсем на крайний случай, поставить драйвер псевдопринтера, типа FinePrint или Priprinter, а кларионовский Preview отключить нафиг .
Хотя, конечно, вряд ли.
Ну и если совсем никак, совсем на крайний случай, поставить драйвер псевдопринтера, типа FinePrint или Priprinter, а кларионовский Preview отключить нафиг .
- morkovin
- Ветеран
- Сообщения: 910
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
Печать на плохой сетевой принтер
это под admin-правами?Игорь Столяров писал(а): ↑10 Июль 2018, 11:43Это же приложение, собранное под C10, при печати - валит Windows и приводит к её перезагрузке
WBR, morkovin
- Игорь Столяров
- Ветеран движения
- Сообщения: 7427
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
Печать на плохой сетевой принтер
Да. А таки есть разница с какими правами работает юзер в Windows ?!
За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4669
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 9 раз
- Поблагодарили: 37 раз
Печать на плохой сетевой принтер
Я подобное наблюдал при печати из терминальной сессии. Принтер есть в списке подключенных, а фактически рабочая станция, на которой он находится физически, выключена. Как я понимаю, это скорее глюк винды. Кларионовское приложение молча вылетает. Без последствий для пользователей, перезашли, работают дальше. Когда прояснили ситуацию, пользователи больше по этому вопросу не беспокоили.
C6/C11, ШВС, tps/btrieve.
-
- ✯ Ветеран ✯
- Сообщения: 5009
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
Печать на плохой сетевой принтер
А только на десятой винде такое? А если принтер другой (может драйвер не так работает)? Что-то мне тоже кажется - не совсем кларионовская проблема .
We are hard at work… for you.
-
- ✯ Ветеран ✯
- Сообщения: 1704
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Печать на плохой сетевой принтер
согласен с kreator когда то решил, есть офис и склад в разных частях города, в офисе послали на печать на складе отпечатало, за лет 5 ни одной накладной не пропало. Реализация имеет много решений, мое было такое, удаленный принтер скриптом каждую минуту (от 1сек до минуты - сами укажете) проверяет папку в который бросается документ (pdf), после завершения печати документ удаляется. В моем выше указанном случае, используется Megasync https://megasync.en.softonic.com/.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Печать на плохой сетевой принтер
Сейчас выполнил в форуме поиск по сочетанию "принтер по умолчанию". Ничто не ново под луной
-
- ✯ Ветеран ✯
- Сообщения: 5009
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
Печать на плохой сетевой принтер
Игорь, вышел из отпуска, провёл эксперимент. Есть десятая Винда на планшете, приложение, собранное на не самой последней версии десятки, сетевой принтер Konica-Minolta (сильно-продвинутый, со своим хранилищем). При отключении сети Винворд пишет о невозможности послать печать из-за неправильных настроек принтера. Приложение в printerdialog говорит, что принтер готов. При отправке на печать куда-то отправляет, Винду не валит, приложение остаётся штатно работать (как-будто всё путём). При повторном подключении сети в очереди печати принтера, естественно, ничего нет. Вот так!
We are hard at work… for you.
-
- ✯ Ветеран ✯
- Сообщения: 5009
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
Печать на плохой сетевой принтер
Проверил на десктопной седьмой Винде (всё остальное такое же). Поведение абсолютно такое же.
We are hard at work… for you.
Печать на плохой сетевой принтер
А никто не пробовал перед посылкой на сетевой принтер пинговать его (апишные GetPrinter + InetPing)?
Структур, правда, многовато.
Структур, правда, многовато.
C10, Win10x64
- Игорь Столяров
- Ветеран движения
- Сообщения: 7427
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
Печать на плохой сетевой принтер
Как-то уже обсуждали, что можно запрашивать статус принтера через API:
Но толку с этого мало. Локальный принтер - всегда готов, даже если выключен.
Сетевой - по настроению. Скорее всего это функции-рудименты, которые работали когда печать
шла на матричный принтер без буферизации и можно было запросить его статус ….
Код: Выделить всё
'
Map
WinOpenPrinter (*CSTRING pPrinterName, | printer or server name
*LONG phPrinter, | printer or server handle
LONG pDefault | printer defaults
),BOOL,PASCAL,RAW,NAME('OpenPrinterA')
WinGetPrinter (LONG hPrinter, | handle to printer
LONG Level, | information level
*? pPrinter, | printer information buffer
LONG cbBuf, | size of buffer
*LONG pcbNeeded | bytes received or required
),BOOL,PASCAL,RAW,NAME('GetPrinterA')
WinClosePrinter ( LONG hPrinter ),BOOL,RAW,PASCAL,PROC,Name('ClosePrinter')
end
Code
If WinOpenPrinter(xName_,Loc:hPrinter,0)
If WinGetPrinter(Loc:hPrinter,6,Loc:Buffer,Size(Loc:Buffer),Loc:Size)
Case Loc:Buffer.PrnStatus
Of PRINTER_STATUS_READY
xStatus_ = 1
xNameSt_ = 'Готов к печати'
Of PRINTER_STATUS_PAUSED
xStatus_ = 2
xNameSt_ = 'Пауза'
...
и т.д.
end
If WinClosePrinter(Loc:hPrinter).
end
Но толку с этого мало. Локальный принтер - всегда готов, даже если выключен.
Сетевой - по настроению. Скорее всего это функции-рудименты, которые работали когда печать
шла на матричный принтер без буферизации и можно было запросить его статус ….
За теми кто отстал - не возвращаться. (С) Кодекс