Print из OLE IE

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
seawolf
Старожил
Сообщения: 217
Зарегистрирован: 08 Июль 2005, 11:23
Откуда: St. Petersburg

Print из OLE IE

Сообщение seawolf »

Коллеги!
Можно-ли подвесить печать со своей кнопки на OLE объект в котором загружена страница IE? В своем окне смотрим эту страницу по правой кнопке есть Печать, но хочется повесить радоям кнопку явно и с нее вызвать диалог печати!
Типа так ?URL{Navigate(URL="' & Clip(FileName_) & '", чего нибудь чтобы дать печать)'}
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3291
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Print из OLE IE

Сообщение Дед Пахом »

Попробуй ?URL{'PrintDocument()'}, по идее должен напечатать загруженную страницу.
С уважением, ДП
seawolf
Старожил
Сообщения: 217
Зарегистрирован: 08 Июль 2005, 11:23
Откуда: St. Petersburg

Re: Print из OLE IE

Сообщение seawolf »

Не помогло.
Пробовал и так тоже
?URL{'PrintDocument(URL="' & Clip(FileName_) & '"'}
Страница локалон с диска.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3291
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Print из OLE IE

Сообщение Дед Пахом »

У метода PrintDocument нет параметра URL, есть необязательный параметр withUI:

Код: Выделить всё

IDHTMLEdit                      INTERFACE(IDHTMLSafe),COM,TYPE
!methods:
LoadDocument                      PROCEDURE(*VARIANT pathIn,<*VARIANT promptUser>),HRESULT,PROC
SaveDocument                      PROCEDURE(*VARIANT pathIn,<*VARIANT promptUser>),HRESULT,PROC
PrintDocument                     PROCEDURE(<*VARIANT withUI>),HRESULT,PROC
GetBrowseMode                     PROCEDURE(*VARIANT_BOOL pVal),HRESULT,PROC
SetBrowseMode                     PROCEDURE(VARIANT_BOOL pVal),HRESULT,PROC
                                END
А, ну да, я забыл сказать, что имел в виду ocx DHTML :D
С уважением, ДП
seawolf
Старожил
Сообщения: 217
Зарегистрирован: 08 Июль 2005, 11:23
Откуда: St. Petersburg

Re: Print из OLE IE

Сообщение seawolf »

А для Shell.Explorer.2 случайно печати нету?
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3291
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Print из OLE IE

Сообщение Дед Пахом »

Я с ним не работал
С уважением, ДП
seawolf
Старожил
Сообщения: 217
Зарегистрирован: 08 Июль 2005, 11:23
Откуда: St. Petersburg

Re: Print из OLE IE

Сообщение seawolf »

а dhtml это всегда в винде валяется или его ставить надо? Что-то не слыхал про такое!
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3291
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Print из OLE IE

Сообщение Дед Пахом »

Он не валяется, он бесплатный с сайта M$. Правда, не знаю, как обстоят дела в Висте и W7, давно не юзал.
С уважением, ДП
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Re: Print из OLE IE

Сообщение Admin »

seawolf писал(а):А для Shell.Explorer.2 случайно печати нету?
Для Shell.Explorer.2 есть команда ExecWB, про 2-й аргумент ничего не скажу... ищи в инете.
Все команды можно посмотреть с помощью OleView.exe в файле shdocvw.dll

Код: Выделить всё

?OLE{'ExecWB(6,0)'} ! диалог выбора принтера
?OLE{'ExecWB(7,0)'} ! превью перед печатью
и вообще... вот этот список юзать можно кажись....

Код: Выделить всё

typedef enum {
    OLECMDID_OPEN = 1,
    OLECMDID_NEW = 2,
    OLECMDID_SAVE = 3,
    OLECMDID_SAVEAS = 4,
    OLECMDID_SAVECOPYAS = 5,
    OLECMDID_PRINT = 6,
    OLECMDID_PRINTPREVIEW = 7,
    OLECMDID_PAGESETUP = 8,
    OLECMDID_SPELL = 9,
    OLECMDID_PROPERTIES = 10,
    OLECMDID_CUT = 11,
    OLECMDID_COPY = 12,
    OLECMDID_PASTE = 13,
    OLECMDID_PASTESPECIAL = 14,
    OLECMDID_UNDO = 15,
    OLECMDID_REDO = 16,
    OLECMDID_SELECTALL = 17,
    OLECMDID_CLEARSELECTION = 18,
    OLECMDID_ZOOM = 19,
    OLECMDID_GETZOOMRANGE = 20,
    OLECMDID_UPDATECOMMANDS = 21,
    OLECMDID_REFRESH = 22,
    OLECMDID_STOP = 23,
    OLECMDID_HIDETOOLBARS = 24,
    OLECMDID_SETPROGRESSMAX = 25,
    OLECMDID_SETPROGRESSPOS = 26,
    OLECMDID_SETPROGRESSTEXT = 27,
    OLECMDID_SETTITLE = 28,
    OLECMDID_SETDOWNLOADSTATE = 29,
    OLECMDID_STOPDOWNLOAD = 30,
    OLECMDID_ONTOOLBARACTIVATED = 31,
    OLECMDID_FIND = 32,
    OLECMDID_DELETE = 33,
    OLECMDID_HTTPEQUIV = 34,
    OLECMDID_HTTPEQUIV_DONE = 35,
    OLECMDID_ENABLE_INTERACTION = 36,
    OLECMDID_ONUNLOAD = 37,
    OLECMDID_PROPERTYBAG2 = 38,
    OLECMDID_PREREFRESH = 39,
    OLECMDID_SHOWSCRIPTERROR = 40,
    OLECMDID_SHOWMESSAGE = 41,
    OLECMDID_SHOWFIND = 42,
    OLECMDID_SHOWPAGESETUP = 43,
    OLECMDID_SHOWPRINT = 44,
    OLECMDID_CLOSE = 45,
    OLECMDID_ALLOWUILESSSAVEAS = 46,
    OLECMDID_DONTDOWNLOADCSS = 47,
    OLECMDID_UPDATEPAGESTATUS = 48,
    OLECMDID_PRINT2 = 49,
    OLECMDID_PRINTPREVIEW2 = 50,
    OLECMDID_SETPRINTTEMPLATE = 51,
    OLECMDID_GETPRINTTEMPLATE = 52,
    OLECMDID_PAGEACTIONBLOCKED = 55,
    OLECMDID_PAGEACTIONUIQUERY = 56,
    OLECMDID_FOCUSVIEWCONTROLS = 57,
    OLECMDID_FOCUSVIEWCONTROLSQUERY = 58,
    OLECMDID_SHOWPAGEACTIONMENU = 59
} OLECMDID;
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
seawolf
Старожил
Сообщения: 217
Зарегистрирован: 08 Июль 2005, 11:23
Откуда: St. Petersburg

Re: Print из OLE IE

Сообщение seawolf »

?URL('ExecWB(6,2)} печать немедленно без диалогов, но печатает пустую страницу (даже пишет ссылку на нее в c:\windows\temp). Страницу просматриваемую через Navigate перед этим не печатает. Порыл пока google, третий параметр вроде как должен указывать на страницу, но тоже не помог!
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Re: Print из OLE IE

Сообщение Admin »

seawolf писал(а):?URL('ExecWB(6,2)} печать немедленно без диалогов, но печатает пустую страницу (даже пишет ссылку на нее в c:\windows\temp). Страницу просматриваемую через Navigate перед этим не печатает. Порыл пока google, третий параметр вроде как должен указывать на страницу, но тоже не помог!
Посмотри вот так:
http://www.google.com/search?client=ope ... 8&oe=utf-8
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
seawolf
Старожил
Сообщения: 217
Зарегистрирован: 08 Июль 2005, 11:23
Откуда: St. Petersburg

Re: Print из OLE IE

Сообщение seawolf »

Пока лишь обнаружил что
stop(?URL{'LocationName()'})
stop(?URL{'LocationURL()'})
возвращает правильную страницу которая была вызвана в окно по Navigate
но ?URL{'ExecWB(7,0} выводит перед печатью пустую страницу
Такое впечатление, что надо явно задавать перед печатью через какое-то свойство ее путь.
Ушел искать дальше!
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Re: Print из OLE IE

Сообщение Admin »

seawolf писал(а):?URL('ExecWB(6,2)} печать немедленно без диалогов, но печатает пустую страницу (даже пишет ссылку на нее в c:\windows\temp). Страницу просматриваемую через Navigate перед этим не печатает. Порыл пока google, третий параметр вроде как должен указывать на страницу, но тоже не помог!
Что то не так делаешь видать... или версии IE у нас разные.
Вот пример (на картинке) открывает google.ru
При нажатии на Print идет печать в дефолтовый принтер в качестве которого стоит Snagit
Почти все на экране. Только картинку что то не распечатало, но подозреваю что из за навороченного JS

Удачи!

P.S. IE 6.0 на рабочем компе.
Вложения
Пример использования ExecWB для Shell.Explorer.2
Пример использования ExecWB для Shell.Explorer.2
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
seawolf
Старожил
Сообщения: 217
Зарегистрирован: 08 Июль 2005, 11:23
Откуда: St. Petersburg

Re: Print из OLE IE

Сообщение seawolf »

Да вот то и обидно что вроде все верно написано (3 строки е-мое) и не работает. Тоже IE 6.0.

?URL{PROP:Create} = 'Shell.Explorer.2'
создали контрол
?URL{'Navigate(URL="' & Clip(FileName_) & '", Flags=14)'}
загрузили страницу с диска
Unhide(?URL)
открыли на просмотр
?URL{'ExecWB(6,2)'}
Послали на печать
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Re: Print из OLE IE

Сообщение Admin »

seawolf писал(а):Да вот то и обидно что вроде все верно написано (3 строки е-мое) и не работает. Тоже IE 6.0.
Ну во первых попробуй просто написать:
?URL{'Navigate(http://google.ru)'}
+ не хайдить ?URL
Во вторых если не получится, завтра с работы сделаю демку и выложу сюда.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Ответить