Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Печать на заданный принтер с выводом диалога свойств / 2 сообщений из 2, страница 1 из 1
25.10.2009, 18:43
    #36271304
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Печать на заданный принтер с выводом диалога свойств
Есть файл file.ext , для него определена в системе ф-ция печать, то бишь printto
В приложении vb определена кнопка печать (конкретный файл выбирается)

Код: plaintext
1.
2.
3.
ShellExecuteW Me.hwnd, StrPtr("printto"), StrPtr(FileName), StrPtr(PrinterName),  0 &, SW_SHOWNORMAL
'И файл FileName печатается на принтер PrinterName
ShellExecuteW Me.hwnd, StrPtr("print"), StrPtr(FileName),  0 &,  0 &, SW_SHOWNORMAL
'И файл FileName печатается на принтер default
OK, здесь все работает, умею слава богу.

Но хочется вывести диалоговое окно(стандартное) печати, выбрать принтер и какие-то его свойства и напечатать.
Ну понятно что

CommonDialog1.ShowPrinter

мне такое окно предоставит, ну получу я структуру "как печатать" с выбором принтера и т.п.

А как дальше это увязать с печатью, не знаю.
Максимум чего я смогу передать в shellexecute(..."printto") это имя принтера, а я м.б. хочу в альбомной ориентации напечатать, или только первую страницу.

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

Т.е. надо систему заставить распечатать заданный файл на заданный принтер заданным образом. (Какое приложение отвечает за печать, т.е. printto системе известно).
...
Рейтинг: 0 / 0
26.10.2009, 02:46
    #36271574
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Печать на заданный принтер с выводом диалога свойств
Сделал пока самоделку
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    On Error Resume Next 'это на случай ели принтеров вообще нет.
    DefPrinter = ""
    xNum =  0 
    DefPrinter = Printer.DeviceName
    For Each x In Printers
        If x.DeviceName = DefPrinter Then
            FormPrintTo.ListPrinters.ListItems.Add , x.DeviceName, x.DeviceName, "PrinterDef", "PrinterDef"
        Else
            FormPrintTo.ListPrinters.ListItems.Add , x.DeviceName, x.DeviceName, "Printer", "Printer"
        End If
        xNum = xNum +  1 
    Next
По крайней мере выбрать из ListView принтер и пихнуть в ShellExecute можно, все работает.
Для моей проги в принципе распечатки по умолчанию достаточно.
Если уж нужна интелектуальная печать, то через просмотр из соотв. приложения.
Но все же хотелось бы культурно...
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Печать на заданный принтер с выводом диалога свойств / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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