Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft Access |
![]() ![]() |
IFK Member Откуда: Гондурас Сообщений: 1025 |
Уважаемый коллективный разум, Несмотря на трехдневное чтение результатов поиска по "PDF" на форуме, так и не нашел ответа на вопросы: 1. как открыть PDF документ из VBA (Access)? Этот вопрос на форуме очень невразумительно, как результат - ничего не работает. 2. как считать данные из открытого PDF через VBA (Access)? На компе проинсталлены и Acrobat 8.0 и Acrobat Reader. За любую помощь буду очень признателен! |
11 мар 09, 14:06 [6910964] Ответить | Цитировать Сообщить модератору |
Joss Member Откуда: г. Минск Сообщений: 4972 |
Открыть то просто , смотри сюда Открыть документ в родном приложении А вот всё остальное ... |
11 мар 09, 14:17 [6911081] Ответить | Цитировать Сообщить модератору |
IFK Member Откуда: Гондурас Сообщений: 1025 |
Да уж, все остальное меня как раз и интересует больше всего. Открыть - такое дело, но мне нужно открыть для дальнейшей выборки инфы из PDF-документа |
11 мар 09, 15:01 [6911456] Ответить | Цитировать Сообщить модератору |
LeonM Member Откуда: Bayern, Deutschland Сообщений: 598 |
Подключите к проекту библиотеку Adobe Acrobat Browser, вставьте на форму элемент AcroPDF, LoadFile - открыть 'method LoadFile 'method setShowToolbar 'method gotoFirstPage 'method gotoLastPage 'method gotoNextPage 'method gotoPreviousPage 'method setCurrentPage 'method goForwardStack 'method goBackwardStack 'method setPageMode 'method setLayoutMode 'method setNamedDest 'method Print 'method printWithDialog 'method setZoom 'method setZoomScroll 'method setView 'method setViewScroll 'method setViewRect 'method printPages 'method printPagesFit 'method printAll 'method printAllFit 'method setShowScrollbars 'method GetVersions 'method setCurrentHightlight 'method setCurrentHighlight 'method postMesage 'property messageHandler 'property src - не использовал. |
11 мар 09, 15:10 [6911545] Ответить | Цитировать Сообщить модератору |
Quiet333 Member Откуда: 55-37 сш 37-37 вд Сообщений: 1020 |
Я, конечно дико извиняюсь, но раньше считал, что выборку надо делать ДО вывода в PDF... |
11 мар 09, 15:14 [6911587] Ответить | Цитировать Сообщить модератору |
IFK Member Откуда: Гондурас Сообщений: 1025 |
Спасибо, LeonM. Может еще и название библиотеки в списке референций подскажешь? Я подключал, все что нашел относительно Акробата - эффект нулевой. Правда, я пытался получить доступ к объекту Акробата напрямую через ВБА - открыть файл PDF. 333: мне нужно считать данные ИЗ PDF файла В Access (в таблицу, например), а не вывести отчет из Access В PDF файл. |
11 мар 09, 15:57 [6912005] Ответить | Цитировать Сообщить модератору |
LeonM Member Откуда: Bayern, Deutschland Сообщений: 598 |
Тогда - FineReader или что-то подобное |
11 мар 09, 16:16 [6912156] Ответить | Цитировать Сообщить модератору |
IFK Member Откуда: Гондурас Сообщений: 1025 |
А напрямую никак? FineReader надо покупать, инсталлировать, настраивать, короче - овчинка выделки не стоит. Почему нельзя работать с Акробатом, через объектную переменную, например, как с Аутлуком или Экселем? Акробат (не ридер, а полный пакет) должен открывать PDF-файлы и давать возможность вносить изменения, следовательно, должен иметь возможность считать инфу из PDF-файла. Есть идеи? |
11 мар 09, 16:39 [6912381] Ответить | Цитировать Сообщить модератору |
%%
Guest |
Изучайте первоисточники |
11 мар 09, 16:47 [6912466] Ответить | Цитировать Сообщить модератору |
IFK Member Откуда: Гондурас Сообщений: 1025 |
И что именно там изучать? JavaScript? Или я чего-то не понимаю, или меня не понимают: мне не нужно применение Явы для обработки PDF. Мне нужна работа с PDF из VBA, а именно открыть файл в формате PDF и считать из него инфу. |
13 мар 09, 14:06 [6923070] Ответить | Цитировать Сообщить модератору |
aleks2
Guest |
PDF - закрытый формат => Открывай из VBA файл Acrobat-ом и через OLE Automation добывай оттуда все чо надо. |
||
13 мар 09, 14:27 [6923316] Ответить | Цитировать Сообщить модератору |
aleks2
Guest |
Это пример для Reader... ну да ты уж сам.Option Compare Database Option Explicit Private prAcrobat As Object 'Acrobat.Application Private prAcrobatDoc As Object Private prNoAcrobatMsgIsShown As Boolean Function GetAcrobat() As Object If prAcrobat Is Nothing Then Set prAcrobat = CreateObject("AcroExch.App") prAcrobat.Show End If Set GetAcrobat = prAcrobat If (prAcrobat Is Nothing) And Not prNoAcrobatMsgIsShown Then prNoAcrobatMsgIsShown = True MsgBox "Acrobat Reader не установлен на данной машине. Просмотр и печать файлов в формате PDF невозможны. Установите Acrobat Reader!", vbCritical End If End Function Function GetAcrobatDoc() As Object If prAcrobat Is Nothing Then GetAcrobat If prAcrobatDoc Is Nothing Then Set prAcrobatDoc = CreateObject("AcroExch.AVDoc") prAcrobatDoc.BringToFront End If Set GetAcrobatDoc = prAcrobatDoc If (GetAcrobatDoc Is Nothing) And Not prNoAcrobatMsgIsShown Then prNoAcrobatMsgIsShown = True MsgBox "Не могу создать документ PDF. Просмотр и печать файлов в формате PDF невозможны!", vbCritical End If End Function Public Sub ResetAcrobat() If Not prAcrobatDoc Is Nothing Then On Error Resume Next prAcrobatDoc.Close True Set prAcrobatDoc = Nothing End If If Not prAcrobat Is Nothing Then On Error Resume Next prAcrobat.CloseAllDocs prAcrobat.Exit Set prAcrobat = Nothing End If End Sub Public Sub ShowViaAcrobat(aFile As String) Dim Acrobat As Object Dim AcrobatDoc As Object ' Dim Acrobat As Acrobat.CAcroApp Set Acrobat = GetAcrobat() Set AcrobatDoc = GetAcrobatDoc() If AcrobatDoc Is Nothing Then Exit Sub On Error GoTo ErrorOpen If AcrobatDoc.IsValid Then AcrobatDoc.Close True DoEvents AcrobatDoc.Open aFile, aFile DoEvents Acrobat.Show DoEvents Acrobat.Restore 1 DoEvents Exit Sub ErrorOpen: On Error Resume Next ResetAcrobat End Sub Public Function PrintViaAcrobat(aFile As String, Optional ShowWindow As Boolean = True) As Boolean Dim Acrobat As Object Dim AcrobatDoc As Object Dim pn As Long Set Acrobat = GetAcrobat() Set AcrobatDoc = GetAcrobatDoc() If AcrobatDoc Is Nothing Then Exit Function On Error GoTo ErrorOpen If AcrobatDoc.IsValid Then AcrobatDoc.Close True DoEvents AcrobatDoc.Open aFile, aFile DoEvents If ShowWindow Then Acrobat.Show DoEvents Acrobat.Restore 1 DoEvents AcrobatDoc.BringToFront DoEvents End If pn = AcrobatDoc.GetPDDoc.GetNumPages DoEvents PrintViaAcrobat = AcrobatDoc.PrintPages(0, pn - 1, 0, 1, 1) DoEvents Exit Function ErrorOpen: On Error Resume Next ResetAcrobat End Function |
13 мар 09, 14:31 [6923366] Ответить | Цитировать Сообщить модератору |
IFK Member Откуда: Гондурас Сообщений: 1025 |
Спасибо большое! Что-то в этом духе накопал в инете, ОЛЕ для работы с Акробатом. Еще вопрос, если позволите: какие библиотеки должны быть подвязаны в референс для работы с акробатом. Я подвязываю Adobe Acrobat 8.0 Type Library, Adobe Acrobat 7.0 Browser Control Type Library 1.0 и Acrobat Access 3.0 Type Library, но эффекта нет: дебаггер ругается на CreateObject("AcroExch.App"), ошибка 429, не могу создать объект. А как же его создать еще? |
17 мар 09, 12:26 [6937004] Ответить | Цитировать Сообщить модератору |
aleks2
Guest |
Это пример с поздним связыванием - ему не нужны referencies. Нужон установленный Acrobat/Acrobat Reader. |
17 мар 09, 18:39 [6940096] Ответить | Цитировать Сообщить модератору |
IFK Member Откуда: Гондурас Сообщений: 1025 |
Есть и Акробат Ридер и полный пакет. Все установлено и работает, а вот ошибка генерится. В чем может быть трабла? |
18 мар 09, 12:30 [6942724] Ответить | Цитировать Сообщить модератору |
aleks2
Guest |
Не знаю. Текст ошибки при выполнении Set prAcrobat = CreateObject("AcroExch.App") может приведете? У меня работает на нескольких машинах без проблем. |
||
18 мар 09, 13:38 [6943260] Ответить | Цитировать Сообщить модератору |
IFK Member Откуда: Гондурас Сообщений: 1025 |
Приводил уже: 429 ошибка. Я понимаю, что ее можно отслеживать, но это имеет смысл при проверке, открыто ли уже это приложение, через GetObject. А прога матерится именно на попытку создать объект. Вот это меня и сбивает с толку совсем... :( |
18 мар 09, 18:31 [6945508] Ответить | Цитировать Сообщить модератору |
Между сообщениями интервал более 1 года. |
Djippo Member Откуда: Сообщений: 15 |
У меня та же проблема. Скажите удалось решить в итоге? Заранее спасибо! |
27 май 19, 12:20 [21894629] Ответить | Цитировать Сообщить модератору |
ArtemN Member Откуда: Сообщений: 1 |
IFK, подскажите нашли ли решение? |
27 сен 19, 13:01 [21980799] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft Access | ![]() |