Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Помогите с pdf (число прочтений - 14968 )
@lex
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 10. Июля 2006
Re: Помогите с pdf
Ответ #15 - 16. Января 2007 :: 15:25
Печать  
Вот и я о том.
Возможности pdf большие, а воспользоваться - пока никак.
Бум рыть дальше
  
Наверх
wwwICQ  
IP записан
 
1cvirus
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 89
Зарегистрирован: 24. Мая 2006
Re: Помогите с pdf
Ответ #16 - 19. Ноября 2007 :: 15:02
Печать  
mdzen писал(а) 15. Января 2007 :: 21:54:
лучше использовать ActiveX например Shell.Explorer.2 Скармливать ему WEB-страницу и через DOM получать значения выделяемого элемента -  например код детали (см. картинку)....

а можно поподробнее как отловить место клика по табличке?
  
Наверх
 
IP записан
 
mdzen
Junior Member
**
Отсутствует


Копм вам не для того чтоб
орехи колоть!

Сообщений: 35
Местоположение: Набережные Челны
Зарегистрирован: 18. Сентября 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #17 - 20. Ноября 2007 :: 17:01
Печать  
Если по картинке, то приблизительно так:
Код
Выбрать все
Процедура ПриОтжатииЛевойКнопки(сост,x,y)
	Перем л,в,ш,выс;
	гАттрФормы.УстановитьАтрибут(Форма,"axWBrowser");
	гАттрФормы.ПолучитьКоординаты(л,в,ш,выс);
Если (x>л) и (y>в) Тогда
	Если  (x<(л+ш)) и (y<(в+выс)) Тогда
	ТекПоз=м_ВебФорма.ВЕБ_Т_ПолучитьКод();
	Если (ТекПоз="tgt") или (ТекПоз="picturebody") Тогда
		Возврат;
	Иначе
	Сообщить(ТекПоз);
	КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
 



А в функции ВЕБ_Т_ПолучитьКод() используем DOM. (Вообще в случае с HTML используем методы и свойства Document) :
Код
Выбрать все
Функция  ВЕБ_Т_ПолучитьКод() Экспорт
	Элем=м_Браузер.Document.ActiveElement.id;
	Возврат Элем;
КонецФункции // ВЕБ_Т_ПолучитьКод()
 



А по id ищем в таблице соответствующую запись и позиционируем на ней.
Используя свойства и методы интерфейса Document можно получить любую информацию из HTML:

document.activeElement.offsetLeft;//позиция X;
document.activeElement.offsetTop;//позиция Y;

и т.д. и т.п.

Копайте в сторону DOM...
  
Наверх
ICQ  
IP записан
 
1cvirus
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 89
Зарегистрирован: 24. Мая 2006
Re: Помогите с pdf
Ответ #18 - 21. Ноября 2007 :: 11:12
Печать  
Функция  ВЕБ_Т_ПолучитьКоординатуX() Экспорт   
     Элем=м_Браузер.Document.ActiveElement.offsetLeft;
     Возврат Элем;
КонецФункции // ВЕБ_Т_ПолучитьКоординатуX()

Функция  ВЕБ_Т_ПолучитьКоординатуY() Экспорт   
     Элем=м_Браузер.Document.ActiveElement.offsetTop;
     Возврат Элем;
КонецФункции // ВЕБ_Т_ПолучитьКоординатуY()

добавляю 2 аналогичные функции - возвращают нули
что я сделал неправильно?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #19 - 21. Ноября 2007 :: 11:37
Печать  
@lex писал(а) 09. Января 2007 :: 19:43:
Имеется файл pdf. В нем созданы кнопки выполняющие javascript, который сообщает код запасной части: либо просто сообщением Windows или в текстовом поле.
ActiveX имеются и от Adobe и от Foxit. Но не тем не другим так и не смог в 1С получить код запасной части.  Печаль  AFormAut не видит открытый в 1С pdf. (Хотя если параллельно открыть тот же файл, то возможно получить AFormAut.Fields.Item("Text_output").value)
Вообщем замучился  Смущённый
Может у кого есть наработки Нерешительный ? Возможно можно решить вообще без javascript и прочего?
Спасибо за любую помощь

А может так попробовать. Чтобы javascript скидывало информацию в clipboard,
а 1с считывала данные из clipboard ( в последних релизах 1с++ ) появилась такая возможность.

Для тебя формат pdf принципиален ?

По возможности  приведи отдельную тестовую конфигурацию с subj, чтобы полностью понять subj
  
Наверх
 
IP записан
 
mdzen
Junior Member
**
Отсутствует


Копм вам не для того чтоб
орехи колоть!

Сообщений: 35
Местоположение: Набережные Челны
Зарегистрирован: 18. Сентября 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #20 - 21. Ноября 2007 :: 18:14
Печать  
1cvirus писал(а) 21. Ноября 2007 :: 11:12:
Функция  ВЕБ_Т_ПолучитьКоординатуX() Экспорт   
     Элем=м_Браузер.Document.ActiveElement.offsetLeft;
     Возврат Элем;
КонецФункции // ВЕБ_Т_ПолучитьКоординатуX()

Функция  ВЕБ_Т_ПолучитьКоординатуY() Экспорт   
     Элем=м_Браузер.Document.ActiveElement.offsetTop;
     Возврат Элем;
КонецФункции // ВЕБ_Т_ПолучитьКоординатуY()

добавляю 2 аналогичные функции - возвращают нули
что я сделал неправильно?

Если юзаешь мою обработку, то попробуй щелкнуть по номеру (метке) и получишь ее координаты относительно рисунка.
offsetTop, offsetLeft передает относительную координату левой верхней точки текущего объекта. Если у тебя картинка в броузере с координатами  0,0  - ты их и получаешь.

  
Наверх
ICQ  
IP записан
 
mdzen
Junior Member
**
Отсутствует


Копм вам не для того чтоб
орехи колоть!

Сообщений: 35
Местоположение: Набережные Челны
Зарегистрирован: 18. Сентября 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #21 - 21. Ноября 2007 :: 18:21
Печать  
В 8-ке положение курсора получаю следующим кодом:
Код
Выбрать все
Процедура ПолеHTMLДокумента1ondblclick(Элемент, pEvtObj)
	  ПозLeft = pEvtObj.offsetX;
	  ПозTop =  pEvtObj.offsetY;
КонецПроцедуры
 



В семерке использовал :
гАттрФормы.ПолучитьКоординаты(л,в,ш,выс);
и события мыши. Дальше пока не копал. Копаю восьмерку...
  
Наверх
ICQ  
IP записан
 
mdzen
Junior Member
**
Отсутствует


Копм вам не для того чтоб
орехи колоть!

Сообщений: 35
Местоположение: Набережные Челны
Зарегистрирован: 18. Сентября 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #22 - 22. Ноября 2007 :: 16:21
Печать  
1cvirus пробудил интерес к получению событий от axWBrowser (использующий "Shell.Explorer.2"). Все перекопал, но так и не нашел аналог восьмерочного pEvtObj.
Нарыл следующее:
"Shell.Explorer.2" (IWebBrowser2)  - используется для доступа  к методам IE;
(DWebBrowserEvents2) - для доступа к событиям IE.
Как последнюю прикрутить и подружить с axWBrowser? Тогда можно будет получать и обрабатывать события ...
  
Наверх
ICQ  
IP записан
 
1cvirus
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 89
Зарегистрирован: 24. Мая 2006
Re: Помогите с pdf
Ответ #23 - 23. Ноября 2007 :: 07:07
Печать  
http://www.rsdn.ru/article/inet/dhtmlspy.xml#EXB
не оно случайно?

Связывание кода с событиями
Как и большинство ActiveX-элементов, WebBrowser является источником событий, подключаемых через стандартный механизм Connection Point. К числу таких событий относятся: BeforeNavigate..................
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #24 - 23. Ноября 2007 :: 09:41
Печать  
mdzen писал(а) 22. Ноября 2007 :: 16:21:
1cvirus пробудил интерес к получению событий от axWBrowser (использующий "Shell.Explorer.2"). Все перекопал, но так и не нашел аналог восьмерочного pEvtObj.
Нарыл следующее:
"Shell.Explorer.2" (IWebBrowser2)  - используется для доступа  к методам IE;
(DWebBrowserEvents2) - для доступа к событиям IE.
Как последнюю прикрутить и подружить с axWBrowser? Тогда можно будет получать и обрабатывать события ...

Не понял что тебе надо. Отловить стандартные события WebBrowser?

Код
Выбрать все
Перем Д;
Процедура ПослеОткрытия()

_Форма = СоздатьОбъект("Форма");
Д = _Форма.СоздатьЭлементУправления(Форма, СоздатьОбъект("АктивИкс"), "HTTP");
Д.СоздатьЭУ("Shell.Explorer.2");
Д.Объект.Visible = - 1;
Д.Объект.Navigate("http://yoursite.com", 4 + 8);
Д.Объект.StatusBar = -1;

КонецПроцедуры

Процедура HTTP_DocumentComplete()
Сообщить("DocumentComplete " + Строка(Д.Объект.Document.ReadyState) + " " + Д.Объект.Document.URL);
КонецПроцедуры

Процедура HTTP_DownloadComplete()
	Сообщить("DownloadComplete");
КонецПроцедуры

Процедура HTTP_NavigateComplete()
	Сообщить("NavigateComplete");
КонецПроцедуры
//***************************************************************
//***************************************************************
Процедура HTTP_DownloadBegin()
	Сообщить("DownloadBegin");
КонецПроцедуры
//***************************************************************
//***************************************************************
Процедура HTTP_FileDownload()
	Сообщить("FileDownload");
КонецПроцедуры
//***************************************************************
//***************************************************************
Процедура HTTP_NewWindow()
	Сообщить("NewWindow");
КонецПроцедуры
//***************************************************************
//***************************************************************
 

  
Наверх
 
IP записан
 
1cvirus
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 89
Зарегистрирован: 24. Мая 2006
Re: Помогите с pdf
Ответ #25 - 23. Ноября 2007 :: 11:47
Печать  
Цитата:
Отловить стандартные события WebBrowser?

BeforeNavigate2 - например такое
если я добавлю процедуру
Код
Выбрать все
Процедура HTTP_BeforeNavigate2()
	Сообщить("BeforeNavigate2");
КонецПроцедуры
 


то при загрузке страницы оно мне сообщит
а если из загруженной страницы по ссылке перейду - тишина
  
Наверх
 
IP записан
 
mdzen
Junior Member
**
Отсутствует


Копм вам не для того чтоб
орехи колоть!

Сообщений: 35
Местоположение: Набережные Челны
Зарегистрирован: 18. Сентября 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #26 - 23. Ноября 2007 :: 15:53
Печать  
Со стандартными WebBrowser  понятно.
ОТ WebBrowser нифига  ничего не добиться. Его использовать только для просмотра можно, функционал ну блин никакой.
Нужно получить события типа onclick, onmousedown, ondblclick и т.д., ну и соответственно элемент вызвавший данное событие с его методами.
Можно получать то-же самое используя
Попытался засунуть в контрол объект InternetExplorer  - не прокатило.
В восьмерке ведь как-то сделано блин.


  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #27 - 23. Ноября 2007 :: 16:03
Печать  
1cvirus писал(а) 23. Ноября 2007 :: 11:47:
Цитата:
Отловить стандартные события WebBrowser?

BeforeNavigate2 - например такое
если я добавлю процедуру
Код
Выбрать все
Процедура HTTP_BeforeNavigate2()
	Сообщить("BeforeNavigate2");
КонецПроцедуры
 


то при загрузке страницы оно мне сообщит
а если из загруженной страницы по ссылке перейду - тишина

Там есть еще просто BeforeNavigate. У меня работало, давно не игрался этим контролом.
  
Наверх
 
IP записан
 
mdzen
Junior Member
**
Отсутствует


Копм вам не для того чтоб
орехи колоть!

Сообщений: 35
Местоположение: Набережные Челны
Зарегистрирован: 18. Сентября 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #28 - 23. Ноября 2007 :: 16:05
Печать  
1cvirus писал(а) 23. Ноября 2007 :: 07:07:
http://www.rsdn.ru/article/inet/dhtmlspy.xml#EXB
не оно случайно?

Связывание кода с событиями
Как и большинство ActiveX-элементов, WebBrowser является источником событий, подключаемых через стандартный механизм Connection Point. К числу таких событий относятся: BeforeNavigate..................

Улыбка Спасибо за ссылку. На досуге покопаю.
Восьмерка грядет, но семерка форева.
Клиентов на семерке пока немало, так что надо копать.... Еще бы в сутки 48 часов  Печаль
  
Наверх
ICQ  
IP записан
 
mdzen
Junior Member
**
Отсутствует


Копм вам не для того чтоб
орехи колоть!

Сообщений: 35
Местоположение: Набережные Челны
Зарегистрирован: 18. Сентября 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #29 - 23. Ноября 2007 :: 16:09
Печать  
Arta писал(а) 23. Ноября 2007 :: 16:03:
1cvirus писал(а) 23. Ноября 2007 :: 11:47:
Цитата:
Отловить стандартные события WebBrowser?

BeforeNavigate2 - например такое
если я добавлю процедуру
Код
Выбрать все
Процедура HTTP_BeforeNavigate2()
	Сообщить("BeforeNavigate2");
КонецПроцедуры
 


то при загрузке страницы оно мне сообщит
а если из загруженной страницы по ссылке перейду - тишина

Там есть еще просто BeforeNavigate. У меня работало, давно не игрался этим контролом.


BeforeNavigate не прокатывает. Курим ссылку 1cvirus. Что-то в этом есть...
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать