![]() |
![]() |
![]() |
|
Разбор pdf в 8.0 Ø |
☑ | ||
---|---|---|---|---|
0
eyerie
18.09.06
✎
10:15
|
Есть inproc COM сервер PDFFilter.dll, который имеет нужную мне функциональность для работы с pdf. А как можно им воспользоваться из восьмерки? Вопрос возник в связи с тем, что как я понял, восьмерка позволяет загружать только специально для нее разработанные inproc сервера (так называемые внешние компоненты), реализующие специфичные интерфейсы...
|
|||
1
AndreySpb
18.09.06
✎
10:26
|
Не знаю что такое "inproc сервера", но ни разу не слышал, что в восьмерке можно использовать только какие-то специальные внешние компоненты...
Посмотри "COMОбъект", думаю это то что тебе нужно... |
|||
2
eyerie
18.09.06
✎
13:13
|
(1)Сделать мне надо вот что: http://windowsxp.mvps.org/pdfsearch.htm
Создать Новый COMОбъект я не могу, так как для моего COM сервера не зарегистрирован ProgID. ` << но ни разу не слышал, что в восьмерке можно использовать только какие-то специальные внешние компоненты... Внешняя компонента - это и есть inproc COM сервер. Только в отличие от программ, разработанных на других платформах и языках программирования, где можно без проблем загрузить ЛЮБОЙ inproc COM сервер, в восьмерке можно использовать только специальным образом написанные для этого inproc COM сервера. 1С их называет внешними компонентами. |
|||
3
Vladis
18.09.06
✎
13:49
|
Можно использовать любой зарегестрированный в системе СОМ объект.
Почему ты пишешь что "не зарегистрирован ProgID" если по твой ссылке написано как это сделать? |
|||
4
eyerie
18.09.06
✎
14:07
|
(3)
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.pdf\PersistentHandler] @="{B7509D6F-85EE-11d0-AF7D-00C04FD8DC02}" Это не то! Это просто PersistentHandler для файлов .pdf, по которому потом определяется PDFFilt.dll |
|||
5
eyerie
18.09.06
✎
14:19
|
4+ Я сейчас разбираю программу на C#, которая может искать текст в pdf документах. Там делается так. Сначала нужно выбрать файл для разбора. Так как программа позволяет разбирать много типов файлов, то определяется расширение выбранного файла, пусть это будет .pdf. Далее в реестре берется значение ключа PersistentHandler для .pdf. Оно как раз равно: B7509D6F-85EE-11d0-AF7D-00C04FD8DC02. А вот уже по этому ГУИД загружается PDFFilt.dll.
|
|||
6
Vladis
18.09.06
✎
14:36
|
есть варианты
1 В пофигураторе открываешь форму своей обработки, жмакаешь Форма\Вставить AtiveX.. , ищешь в списке свой фильтр 2 в реестре находишь по B7509D6F-85EE-11d0-AF7D-00C04FD8DC02 имя объекта (может пригодиться и для пункта 1) и обьявляешь Новый COMОбъект("тра ляля") |
|||
7
eyerie
18.09.06
✎
15:17
|
(6)А искать нечего... Нет у этого сервера ProgID, вообще. Есть только ГУИД. И потом - это не визуальный компонент. По этой же причине нельзя использовать Новый COMОбъект, так как здесь опять же требуется ProgID.
|
|||
8
Young
18.09.06
✎
15:24
|
(7) В порядке бреда: можно попробовать GUID вместо ProgID указать (Новый COMОбъект).
|
|||
9
eyerie
18.09.06
✎
15:31
|
(8)Уже попробовал :) Результат отрицательный...
|
|||
10
Young
18.09.06
✎
15:34
|
А со скобочками фигурными пробовал? :)
|
|||
11
eyerie
18.09.06
✎
15:39
|
(10)Все одно и тоже - "Недопустимое имя класса".
|
|||
12
eyerie
18.09.06
✎
15:41
|
Похоже не получится эту dll в 1с загрузить...
Может у кого есть какие идеи как обходными путями пройти? |
|||
13
clappa
18.09.06
✎
16:24
|
Можно написать оболочку к PDFFilt.dll в формате внешней компоненты.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |