Print из OLE IE
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Print из OLE IE
Коллеги!
Можно-ли подвесить печать со своей кнопки на OLE объект в котором загружена страница IE? В своем окне смотрим эту страницу по правой кнопке есть Печать, но хочется повесить радоям кнопку явно и с нее вызвать диалог печати!
Типа так ?URL{Navigate(URL="' & Clip(FileName_) & '", чего нибудь чтобы дать печать)'}
Можно-ли подвесить печать со своей кнопки на OLE объект в котором загружена страница IE? В своем окне смотрим эту страницу по правой кнопке есть Печать, но хочется повесить радоям кнопку явно и с нее вызвать диалог печати!
Типа так ?URL{Navigate(URL="' & Clip(FileName_) & '", чего нибудь чтобы дать печать)'}
- Дед Пахом
- Старичок
- Сообщения: 3289
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 49 раз
- Контактная информация:
Re: Print из OLE IE
Попробуй ?URL{'PrintDocument()'}, по идее должен напечатать загруженную страницу.
С уважением, ДП
Re: Print из OLE IE
Не помогло.
Пробовал и так тоже
?URL{'PrintDocument(URL="' & Clip(FileName_) & '"'}
Страница локалон с диска.
Пробовал и так тоже
?URL{'PrintDocument(URL="' & Clip(FileName_) & '"'}
Страница локалон с диска.
- Дед Пахом
- Старичок
- Сообщения: 3289
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 49 раз
- Контактная информация:
Re: Print из OLE IE
У метода PrintDocument нет параметра URL, есть необязательный параметр withUI:
А, ну да, я забыл сказать, что имел в виду ocx DHTML 
Код: Выделить всё
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

С уважением, ДП
Re: Print из OLE IE
а dhtml это всегда в винде валяется или его ставить надо? Что-то не слыхал про такое!
- Дед Пахом
- Старичок
- Сообщения: 3289
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 49 раз
- Контактная информация:
Re: Print из OLE IE
Он не валяется, он бесплатный с сайта M$. Правда, не знаю, как обстоят дела в Висте и W7, давно не юзал.
С уважением, ДП
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Re: Print из OLE IE
Для Shell.Explorer.2 есть команда ExecWB, про 2-й аргумент ничего не скажу... ищи в инете.seawolf писал(а):А для Shell.Explorer.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;
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Re: Print из OLE IE
?URL('ExecWB(6,2)} печать немедленно без диалогов, но печатает пустую страницу (даже пишет ссылку на нее в c:\windows\temp). Страницу просматриваемую через Navigate перед этим не печатает. Порыл пока google, третий параметр вроде как должен указывать на страницу, но тоже не помог!
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Re: Print из OLE IE
Посмотри вот так:seawolf писал(а):?URL('ExecWB(6,2)} печать немедленно без диалогов, но печатает пустую страницу (даже пишет ссылку на нее в c:\windows\temp). Страницу просматриваемую через Navigate перед этим не печатает. Порыл пока google, третий параметр вроде как должен указывать на страницу, но тоже не помог!
http://www.google.com/search?client=ope ... 8&oe=utf-8
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Re: Print из OLE IE
Пока лишь обнаружил что
stop(?URL{'LocationName()'})
stop(?URL{'LocationURL()'})
возвращает правильную страницу которая была вызвана в окно по Navigate
но ?URL{'ExecWB(7,0} выводит перед печатью пустую страницу
Такое впечатление, что надо явно задавать перед печатью через какое-то свойство ее путь.
Ушел искать дальше!
stop(?URL{'LocationName()'})
stop(?URL{'LocationURL()'})
возвращает правильную страницу которая была вызвана в окно по Navigate
но ?URL{'ExecWB(7,0} выводит перед печатью пустую страницу
Такое впечатление, что надо явно задавать перед печатью через какое-то свойство ее путь.
Ушел искать дальше!
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Re: Print из OLE IE
Что то не так делаешь видать... или версии IE у нас разные.seawolf писал(а):?URL('ExecWB(6,2)} печать немедленно без диалогов, но печатает пустую страницу (даже пишет ссылку на нее в c:\windows\temp). Страницу просматриваемую через Navigate перед этим не печатает. Порыл пока google, третий параметр вроде как должен указывать на страницу, но тоже не помог!
Вот пример (на картинке) открывает google.ru
При нажатии на Print идет печать в дефолтовый принтер в качестве которого стоит Snagit
Почти все на экране. Только картинку что то не распечатало, но подозреваю что из за навороченного JS
Удачи!
P.S. IE 6.0 на рабочем компе.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Re: Print из OLE IE
Да вот то и обидно что вроде все верно написано (3 строки е-мое) и не работает. Тоже IE 6.0.
?URL{PROP:Create} = 'Shell.Explorer.2'
создали контрол
?URL{'Navigate(URL="' & Clip(FileName_) & '", Flags=14)'}
загрузили страницу с диска
Unhide(?URL)
открыли на просмотр
?URL{'ExecWB(6,2)'}
Послали на печать
?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
Ну во первых попробуй просто написать:seawolf писал(а):Да вот то и обидно что вроде все верно написано (3 строки е-мое) и не работает. Тоже IE 6.0.
?URL{'Navigate(http://google.ru)'}
+ не хайдить ?URL
Во вторых если не получится, завтра с работы сделаю демку и выложу сюда.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса