Печать из WebBrowser

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Печать из WebBrowser

Сообщение dr.MIG » 07.01.2006 (Сб) 19:19

У меня такая проблема: программа динамически генерирует документ HTML. А в нём таблицу. Для отображения документа использую элемент управления WebBrowser. Необходимо напечатать этот документ. Для этого в HTML-документ вставлена кнопка, нажатие на которую вызывает функцию (JavaScript) печати документа:
function pr_doc(text)
{
text=document;
print(text);
}
Всё печатается, но проблема в том, что кроме таблицы, вверху страницы печатается "Стр.1 из 1", а внизу страницы печатается путь к файлу. Вопрос: как этого избежать, т.е. сделать так, чтобы печаталась одна таблица? Может печатать средствами VB, а не JavaScript? Если да, то как?
Salus populi suprema lex

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 07.01.2006 (Сб) 20:58

Кидай тулбар Toolbar1 и браузер WEB на форму:

Код: Выделить всё
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Dim c As SHDocVwCtl.OLECMDF
On Error Resume Next
   
    Select Case Button.Key
        Case "Preview"
            c = Me.WEB.QueryStatusWB(OLECMDID_PRINTPREVIEW)
            If (c And OLECMDF_ENABLED) Then
                Me.WEB.ExecWB OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT
            Else
                MsgBox "Данный броузер не поддерживает режим предварительного просмотра.", vbInformation
            End If
        Case "PageOrientation"
            c = Me.WEB.QueryStatusWB(OLECMDID_PAGESETUP)
            If (c And OLECMDF_ENABLED) Then
                Me.WEB.ExecWB OLECMDID_PAGESETUP, OLECMDEXECOPT_PROMPTUSER
            Else
                MsgBox "Данный броузер не позволяет вызвать диалог настройки страницы.", vbInformation
            End If
        Case "Print"
            c = Me.WEB.QueryStatusWB(OLECMDID_PRINT)
            If (c And OLECMDF_ENABLED) Then
                Me.WEB.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER
            Else
                MsgBox "Принтер не готов.", vbInformation
            End If
        Case "Exit"
            Unload Me
    End Select
End Sub


а header и footer надо убивать перед печатью в реестре для твоего текущего юзера IE, а потом опять восстанавливать

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 09.01.2006 (Пн) 15:50

Konst_One, большое СПАСИБО за пример! :D
Salus populi suprema lex

Grimm
Новичок
Новичок
Аватара пользователя
 
Сообщения: 43
Зарегистрирован: 24.10.2005 (Пн) 0:17

Сообщение Grimm » 18.05.2006 (Чт) 10:51

Konst_One
можно ли header и footer отключить для данного докумета, в данном webbrowser?
Я слишком рано стал ребенком

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 18.05.2006 (Чт) 12:17

Grimm
можно, ищи по форуму, я уже раньше выкладывал

Grimm
Новичок
Новичок
Аватара пользователя
 
Сообщения: 43
Зарегистрирован: 24.10.2005 (Пн) 0:17

Сообщение Grimm » 18.05.2006 (Чт) 12:25

ты написал про изменения значений реестра, ет не дело, надо как то элегантнее что ли, без топора
Я слишком рано стал ребенком

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 18.05.2006 (Чт) 14:22

А если без топора и на любимом C++, то http://support.microsoft.com/kb/q236777/

Под VB придется писать библиотеку-"обертку".
Моду создают модоки, а распространяют модозвоны.

Grimm
Новичок
Новичок
Аватара пользователя
 
Сообщения: 43
Зарегистрирован: 24.10.2005 (Пн) 0:17

Сообщение Grimm » 20.05.2006 (Сб) 8:53

а кроме библиотеки-обертки никак?
Я слишком рано стал ребенком

marvan
Бывалый
Бывалый
 
Сообщения: 269
Зарегистрирован: 22.06.2004 (Вт) 13:26
Откуда: Москва

Сообщение marvan » 29.05.2006 (Пн) 16:31

Можно попробовать отправлять на печать изображение окна браузера

Подробности получения изображения от ANDLL здесь

Только это не самый лёгкий способ.

Grimm
Новичок
Новичок
Аватара пользователя
 
Сообщения: 43
Зарегистрирован: 24.10.2005 (Пн) 0:17

Сообщение Grimm » 30.05.2006 (Вт) 8:04

жесть, ладно сформулирую вопрос по иному
header и footer являются едиными для всех документов, то есть являются свойствами эксплорера, значит не возможно изменить их для конкретного документа, поправьте если я не прав?
Я слишком рано стал ребенком

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.05.2006 (Вт) 8:37

Поменять можно много чего, в том числе, наверное, и это.
Но тебе не понравится.
http://bbs.vbstreets.ru/viewtopic.php?p=6603084#6603084
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 30.05.2006 (Вт) 11:22

Grimm
и наконец то ты сам догадался, а то мы уж устали, чес слово :lol:

Grimm
Новичок
Новичок
Аватара пользователя
 
Сообщения: 43
Зарегистрирован: 24.10.2005 (Пн) 0:17

Сообщение Grimm » 31.05.2006 (Ср) 2:07

спасибо за терпение
Я слишком рано стал ребенком


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 79

    TopList