powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Печать HTML на два принтера
7 сообщений из 7, страница 1 из 1
Печать HTML на два принтера
    #39451456
bacsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть куча html лок которые нужно распечатать в определенном порядке.
Проблема - печать на два принтера.
Сделано так:
Печатаю через InternetExplorer.application
Код: vbnet
1.
ie.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER


В данном способе нет (или я не нашел) возможности указать принтер. Печатает на принтер, установленный по умолчанию. Как установить нужный мне принтер, я знаю (например, SetDefaultPrinter из winspool.drv) . То есть печать на один принтер все ок…
Потом запускаю два экземпляра базы. печатаю одновременно на два.. SetDefaultPrinter “Printer1” в первом экземпляре и соответственно SetDefaultPrinter “Printer2” во втором.. И как следовало ожидать.. происходит путаница..
Подскажите, возможно, есть другие варианты?? или этот как то допилить?
еще пробовал воткнуть ActiveX WebBrowser (WebBrowser1.Navigate "yandex.ru"). В отчете при печати не отображается. В форме отображаеться. но при печати не видно.
Спасибо всем не равнодушным
...
Рейтинг: 0 / 0
Печать HTML на два принтера
    #39451475
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bacsiВ данном способе нет (или я не нашел) возможности указать принтер. Печатает на принтер, установленный по умолчанию.Такой возможности действительно нет. Но можно временно изменить принтер по умолчанию.

bacsiзапускаю два экземпляра базы. печатаю одновременно на два.. SetDefaultPrinter “Printer1” в первом экземпляре и соответственно SetDefaultPrinter “Printer2” во втором.. И как следовало ожидать.. происходит путаница..А то! делайте всё это в одном приложении - и ничего не будет путаться... ну типа

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
oldprinter = printersettings.printername

WebBrowser1.Navigate URL1
SetDefaultPrinter “Printer1”
ie.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER

WebBrowser1.Navigate URL2
SetDefaultPrinter “Printer2”
ie.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER

WebBrowser1.Navigate URL3
SetDefaultPrinter “Printer1”
ie.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER

' ...

setdefaultprinter oldprinter
...
Рейтинг: 0 / 0
Печать HTML на два принтера
    #39451478
bacsiзапускаю два экземпляра базы. печатаю одновременно на два А зачем 2 экземпляра базы? В одной процедуре печатаете на 1-й - меняете 2-й по умолчанию - печатаете - возвращаете 1-й.
Кстати, в Аксе есть семейство Application.Printers (все доступные принтеры) и св-во Application.Printer (принтер по умолчанию, которое можно изменить) .
...
Рейтинг: 0 / 0
Печать HTML на два принтера
    #39451480
bacsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!! Тоже уже к этому пришел..
...
Рейтинг: 0 / 0
Печать HTML на два принтера
    #39451485
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, память дырявая... у меня ж в служебной базе даже процедура есть:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub SetPrinterByName(pName As String, Exact As Boolean)
Dim p As Printer
For Each p In Application.Printers
    If ((p.DeviceName = pName) And Exact) _
    Or ((p.DeviceName Like "*" & pName & "*") And Not Exact) Then
        Application.Printer = p
    End If
Next
End Sub
...
Рейтинг: 0 / 0
Печать HTML на два принтера
    #39452739
bacsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению не выходит на два принтера печатать через WebBrowser (размещен на форме)
Ни через SetDefaultPrinter из winspool.drv, ни через
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Sub SetPrinterByName(pName As String)
Dim p As Printer
For Each p In Application.Printers
    If p.DeviceName = pName Then
        Application.Printer = p
    End If
Next
End Sub


Вот пример кода

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Do While Not rs.EOF
	SetDefaultPrinter rs![prin]
	SetPrinterByName (rs![prin])
	WebBrowser5.Navigate rs![fail]
	While WebBrowser5.ReadyState <> READYSTATE_COMPLETE
		DoEvents
	Wend
	WebBrowser5.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER
	rs.MoveNext
Loop



Печатает только на тот принтер который был по умолчанию в системе во время открытия формы.

Другой пример. Открываем IE. Вводим адрес, ctrl+p, Печатать, пошлет на принтер по умолчанию, заходим в принтера (IE не закрываем), устанавливаем другой принтер по умолчанию, возвращаемся к IE, ctrl+p, Печатать, пошлет на принтер который был по умолчанию до смены.

В принципе тоже самое, если на форме в отладке печатать в ручную из элемента формы WebBrowser .

В другом месте искать надо.. где? Пока сам не знаю..

P.S.
Через CreateObject("InternetExplorer.application") Все работает..
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
            SetDefaultPrinter rs![prin]
            Set IE = CreateObject("InternetExplorer.application")
            IE.Navigate rs![fail]
            While IE.ReadyState <> READYSTATE_COMPLETE
                DoEvents
            Wend
            IE.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER
            sSleep (2)
            IE.Quit
            Set IE = Nothing



НО хотелось бы добиться через WebBrowser.

Спасибо всем неравнодушным.
...
Рейтинг: 0 / 0
Печать HTML на два принтера
    #39452743
bacsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Sub SetPrinterByName(pName As String)
Dim p As Printer
For Each p In Application.Printers
    If p.DeviceName = pName Then
        Application.Printer = p
    End If
Next
End Sub



Этот способ прекрасно подходит, если печатаем отчеты на разные принтера, и то если в параметрах страницы отчета не выбран "другой принтер"
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Печать HTML на два принтера
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]