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


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 10. Июля 2006
Помогите с pdf
09. Января 2007 :: 19:43
Печать  
Имеется файл pdf. В нем созданы кнопки выполняющие javascript, который сообщает код запасной части: либо просто сообщением Windows или в текстовом поле.
ActiveX имеются и от Adobe и от Foxit. Но не тем не другим так и не смог в 1С получить код запасной части.  Печаль  AFormAut не видит открытый в 1С pdf. (Хотя если параллельно открыть тот же файл, то возможно получить AFormAut.Fields.Item("Text_output").value)
Вообщем замучился  Смущённый
Может у кого есть наработки Нерешительный ? Возможно можно решить вообще без javascript и прочего?
Спасибо за любую помощь
  
Наверх
wwwICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #1 - 09. Января 2007 :: 20:28
Печать  
Не понял, кнопка прямо в самом документе?
Как именно ты ее туда вставил? Т.е. чем генерил pdf?
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #2 - 09. Января 2007 :: 20:28
Печать  
А просто парсить pdf у тебя получается?
  
Наверх
 
IP записан
 
@lex
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 10. Июля 2006
Re: Помогите с pdf
Ответ #3 - 10. Января 2007 :: 07:38
Печать  
Ссори вчера не заметил что прикрепленный файл не больше 250кбайт
http://ifolder.ru/829878
  
Наверх
wwwICQ  
IP записан
 
@lex
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 10. Июля 2006
Re: Помогите с pdf
Ответ #4 - 10. Января 2007 :: 10:51
Печать  
Может вообще забить на pdf. Перегнать в картинки и сделать что на подобие этого http://www.japancats.ru/mazda/details.asp?mdlid=B3B00000&vin=&subid=5570&imid=25...
А как перехватить выполнение javascript-a в таком случае? Смущённый
  
Наверх
wwwICQ  
IP записан
 
mdzen
Junior Member
**
Отсутствует


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

Сообщений: 35
Местоположение: Набережные Челны
Зарегистрирован: 18. Сентября 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #5 - 10. Января 2007 :: 13:35
Печать  
А нафига тебе java в таком случае. Если с 1С++ то загоняешь картинку в html, а номера позиций в id тега <div> и обрабатываешь нажатие \ отжатие кнопки мыши в классе. Id тега <div> получаешь через DOM. А дальше с полученным значением делаешь что хочешь
  
Наверх
ICQ  
IP записан
 
mdzen
Junior Member
**
Отсутствует


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

Сообщений: 35
Местоположение: Набережные Челны
Зарегистрирован: 18. Сентября 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #6 - 10. Января 2007 :: 13:36
Печать  
Используй при этом ActiveX WebBrowser (или как его там).
  
Наверх
ICQ  
IP записан
 
mdzen
Junior Member
**
Отсутствует


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

Сообщений: 35
Местоположение: Набережные Челны
Зарегистрирован: 18. Сентября 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #7 - 10. Января 2007 :: 13:39
Печать  
Перехватывать JS в принципе не надо. JS можно использовать для управления раскраской выбранных позиций.
  
Наверх
ICQ  
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #8 - 10. Января 2007 :: 13:40
Печать  
Кстати о птичках:
а причем тут Репозиторий

ИМХО в какой-то другой раздел, но только не сюда.
  

А для тех, кто не хотел учить SQL, господь сотворил курсоры
Наверх
 
IP записан
 
mdzen
Junior Member
**
Отсутствует


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

Сообщений: 35
Местоположение: Набережные Челны
Зарегистрирован: 18. Сентября 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #9 - 10. Января 2007 :: 13:45
Печать  
Точно Класс. Эту тему в ветку FormEx лучше перенести!
  
Наверх
ICQ  
IP записан
 
@lex
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 10. Июля 2006
Re: Помогите с pdf
Ответ #10 - 10. Января 2007 :: 18:29
Печать  
Туда-нетуда  пускай админ решит.
И все же наработок по работе с pdf нет? кроме банального просмотра конечно
  
Наверх
wwwICQ  
IP записан
 
mdzen
Junior Member
**
Отсутствует


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

Сообщений: 35
Местоположение: Набережные Челны
Зарегистрирован: 18. Сентября 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #11 - 11. Января 2007 :: 06:10
Печать  
На выходных покопаюсь с pdf. результаты выложу
  
Наверх
ICQ  
IP записан
 
@lex
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 10. Июля 2006
Re: Помогите с pdf
Ответ #12 - 11. Января 2007 :: 15:29
Печать  
А почему FormEx?
ActixeX я открываю с помощью 1С++
  
Наверх
wwwICQ  
IP записан
 
@lex
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 10. Июля 2006
Re: Помогите с pdf
Ответ #13 - 11. Января 2007 :: 18:34
Печать  
Я вот все таки не могу понять (сразу извиняюсь за ламерский язык):
1.)  activeX AcroPDF.PDF.1 фактически является "прокладкой" между приложением(1С) и Acrobat-ом (или Acrobat Reader-ом), т.к. без установленого акробата от этого компонента толку ноль и в диспечере задач фигурирует либо Acrobat.exe либо AcroRdr.exe
2.) свойства и функции activeX блекнут по сравнению с функциями AcroExch.App.1 и т.д. а как достучатся? Только создавая объекты AcroExch.App.1, AFormAut.App.1 и т.д. Так вроде получается создается новый объетк, а не подключаемся к существующему

И получается, вроде в 1С загружается pdf, а толком с ним и не поработаешь Смущённый
И файл вроде открыт, а в ответ
Цитата:
myFields = AFormAut.Fields;
{G:\1CBASE\ERT\МОИ\В РАБОТЕ\_PDFVIEW_ACRO.ERT(51)}: AFormAut.App.1: No document is currently open in the Acrobat Viewer

Ну как же нет открытых документов, если я на него смотрю.

PS написал как обычно сумбурно и не понятно. к тому ж я сегодня сдал на права Подмигивание и башка не варит в конец.
  
Наверх
wwwICQ  
IP записан
 
mdzen
Junior Member
**
Отсутствует


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

Сообщений: 35
Местоположение: Набережные Челны
Зарегистрирован: 18. Сентября 2006
Пол: Мужской
Re: Помогите с pdf
Ответ #14 - 15. Января 2007 :: 21:54
Печать  
Эксперементы с pdf и чтение инфы результатов не дали. Сдается мне что достучаться до содержимого нет возможности. Все ActiveX направлены на создание и печать pdf документов.... Печаль
Если пытаешься реализовать каталог запчастей - то лучше использовать ActiveX например Shell.Explorer.2 Скармливать ему WEB-страницу и через DOM получать значения выделяемого элемента -  например код детали (см. картинку)....
А с pdf-ом по моему гемор... Хотя понимаю желание пользовать фирменные мануалы в качестве исходников. Было бы весьма неплохо. Делают же это как-то буржуи , по моему в каталоге KiA Mobis они с pdf-а клики в базу передают... Дальше рыть пока нет времени. @lex, если что получится - чиркни...
  

111.jpg ( 24 KB | Загрузки )
111.jpg
Наверх
ICQ  
IP записан
 
@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] 
ОтправитьПечать