Имя: Пароль:
1C
 
Как прочитать pdf из 1С
0 LapoTb
 
02.11.07
06:56
Изучил темку
Читаем PDF файл в 1С77 без ВК,нужен Acrobat Reader7(можно с 3 но переписать
НО!
у меня при загрузке файла
oIE.Navigate("file://" + ИмяФайла);
вылетает предупреждение, что ИЕ залочил содержимое и т.п.
Подскажите, плз, как бы это обойти?
1 ТелепатБот
 
гуру
02.11.07
06:56
2 Chum
 
02.11.07
07:35
(0) а просто ЗапуститьПриложение("ПолноеИмяФайла.PDF") не катит?
3 LapoTb
 
02.11.07
09:05
(2)Конечно нет.
Мне не нужно показывать файл и тем более запускать ридер.
Мне нужно получить содержание pdf файла.
4 LapoTb
 
02.11.07
09:21
ап
5 Программист 484
 
02.11.07
09:28
Хм а ты в курсе что в пдф файле информация обычно не хранится в виде текста.
И как ты собираешся картинки читать?
6 kumena
 
02.11.07
09:30
(5) а как же тогда поиск в акробат ридере работает?
7 IUnknown
 
02.11.07
09:34
(5)это ты с какого перепугу так решил?
8 Программист 484
 
02.11.07
09:34
(6) Я не про это говорю - в файлах ридера можно сделать - как слой текста+картинки. А можно сделать -просто картинки (в которых текст графический) - для таких случаев только fine reader...
9 IUnknown
 
02.11.07
09:38
(8)а что мешает сделать текст картинками в ворде?
10 Программист 484
 
02.11.07
09:41
(9) Пример - есть некий листочек с текстом на нем. Например сертификат.
Ты его сканишь. Но текст ты  не распознаешь - тебе этого не нужно. И закидываешь в пдф файл - чтобы печатался как в оригинале.
Естественно поиск там не работает...
11 Живой Ископаемый
 
02.11.07
10:05
2(10) А почему вы открываете ИЕ, а не Акробат или ФоксИт ридером? Проассоциируйте расширение с ними и всего делов, а?
12 Программист 484
 
02.11.07
10:19
(11) Не понял - уточни. Чем ты хочешь открывать картинки?
13 LapoTb
 
02.11.07
10:31
2All:
Ребят, вы поняли.
Мне надо получить информацию из файлов вполне определенного содержания.
Никаких картинок в тексте нет. Есть текст. Есть таблицы. Это блин счет.
Простой счет в pdf формате.
Мне нужно как раз получить весь текст из файла.
В посте (0) я указал темку, где это реализовано. Указал также проблему, возникшую у меня: ИЕ не открывает файл сразу, а требует подтверждения на открытие "небезопасного документа". Вот и вся проблема. Нужно, чтоб ИЕ не задавал этот вопрос, а сразу открывал документ - копировал его текст (Ctrl+A, Ctrl+C) в буфер и закрывался. Потом работа идет с буфером...
14 LapoTb
 
02.11.07
10:31
Ессно имелось ввиду:
Ребята, вы не поняли.
:-)
15 LapoTb
 
02.11.07
10:44
ап
16 Живой Ископаемый
 
02.11.07
10:45
Установи в интернет-настройках пониженный уровень безопасности.. Я думаю он из-за этого спрашивает.
17 LapoTb
 
02.11.07
11:00
(16) Не дает изменить. "Рекомендуемый уровень безопасности - средний" и все тут.
18 smaharbA
 
02.11.07
11:09
добавь в безопасные узлы about:blank
19 LapoTb
 
02.11.07
11:18
Добавил - нифига. Вылетает долбаное окошко, что ИЕ заблочил документ.
Нажимаешь "разрешить" - файл грузится.
20 Программист 484
 
02.11.07
11:25
(16) Ааа то про это. Я то думал...
21 LapoTb
 
02.11.07
11:46
ап
22 Fragster
 
гуру
02.11.07
11:49
Если открывать с помощью IE, будет ли поиск средствами того самого IE? Ведь он сам Acrobat запускает... ИМХО нужно поискать инфу по OLE взаимодействию с акробатом
23 smaharbA
 
05.11.07
09:49

//*******************************************
Процедура Сформировать()
   Перем Имя,Путь;
   Если ФС.ВыбратьФайл(0,Имя,Путь,"","PDF (*.pdf)|*.pdf","pdf")=0 Тогда
       Возврат;
   КонецЕсли;
   Акробат="C:\Program Files\Adobe\Acrobat 7.0\Reader\acrord32.exe";
   Стр=СтрЗаменить(Акробат,"\",РазделительСтрок);
   Стр=Лев(Акробат,СтрДлина(Акробат)-СтрДлина(СтрПолучитьСтроку(Стр,СтрКоличествоСтрок(Стр))));
   Скрипты=Стр+"\JavaScripts\";
   Если ФС.СуществуетФайл(Скрипты+"*")=0 Тогда
       ФС.СоздатьКаталог(Скрипты);
   КонецЕсли;
   Стр="
   |function doit(doc,t){
   |    var re=/"+Имя+"$/gi;
   |    if (re.test(doc.path)){
   |        app.clearInterval(t);
   |        doc.layout='TwoColumnRight';
   |        app.execMenuItem('SelectAll');
   |        app.execMenuItem('Copy');
   |        doc.closeDoc();
   |        }
   |    }
   |app.addMenuItem({ cName: 'mymenu', cParent: 'File', cExec: 'this.doit(this,this.timeout);'})
   |var timeout = app.setInterval('app.execMenuItem(\'mymenu\')', 10);
   |";
   Текст=СоздатьОбъект("Текст");
   Текст.ДобавитьСтроку(Стр);
   Текст.Записать(Скрипты+"onOpen.js");
   ШелСкрипт=СоздатьОбъект("WScript.Shell");
   ЗапуститьПриложение(Акробат+" "+Путь+Имя);
   ВвестиСтроку("","",0,,10);
   Пока ШелСкрипт.AppActivate("Adobe Reader")<>0 Цикл
       ШелСкрипт.SendKeys("^Q");
       ШелСкрипт.SendKeys("^q");
       ВвестиСтроку("","",0,,1);
   КонецЦикла;
   ФС.УдалитьФайл(Скрипты+"onOpen.js");
   Текст.Очистить();
   хтмл=СоздатьОбъект("htmlfile");
   Текст.ДобавитьСтроку(хтмл.parentWindow.clipboardData.getData ("Text"));
   Для к=1 По Текст.КоличествоСтрок() Цикл
       Сообщить(Лев(Текст.ПолучитьСтроку(к),254));
   КонецЦикла;
КонецПроцедуры

...
А такто лучче записывать не в програмфилез, а в профиль пользователя, в аппдата в соответствующий каталог
24 LapoTb
 
13.11.07
11:54
(23) Спасибо огромное! Все работает!
Независимо от того, куда вы едете — это в гору и против ветра!