Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/198: Рейтинг темы: голосов - 198, средняя оценка - 4.59
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
1

Взятие данных из PDF

26.07.2012, 17:35. Показов 39548. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Взятие данных из PDF-файла с помощью VBA.
Возможно ли это?

Если возможно, то, наверное, понадобится какая-нибудь библиотека классов и соответственно справка по этой библиотеке нужна, чтобы воспользоваться классами этой библиотеки.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.07.2012, 17:35
Ответы с готовыми решениями:

Взятие данных из ещё не созданного листа
Добрый день! С VBA имела дело только поверхностно, поэтому нуждаюсь в помощи. Задача состоит в...

Взятие данных из базы
Здравствуйте, помогите , у меня есть таблица Login stolb2 stolb3 stolb4 user1 4 0 66666 user2...

Взятие данных с таблицы MS Word
Здравствуйте всем. Как получить доступ к ячейке таблицы созданной в MS Word? Если нельзя тогда...

Взятие данных с динамической формы
Есть ф-я, достает из бд данные, выводит в textarea. В последней колонке выводятся 2 кнопки -...

18
1584 / 554 / 71
Регистрация: 10.04.2009
Сообщений: 9,034
26.07.2012, 17:38 2
а через прогонку в виртуальном принтере и т. д. и т. п. не прокатит?
0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
26.07.2012, 17:40  [ТС] 3
Ципихович Эндрю, напишите код, чтобы взять текст первой строки из pdf-файла.
0
1584 / 554 / 71
Регистрация: 10.04.2009
Сообщений: 9,034
26.07.2012, 17:42 4
сорри, я ответа не знаю, это так начало разговора, мысли вслух
0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
26.07.2012, 17:44  [ТС] 5
Ципихович Эндрю, а как с помощью виртуального принтера взять данные?
0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
20.08.2012, 19:06  [ТС] 6
Лучший ответ Сообщение было отмечено как решение

Решение

Взятие данных из PDF-файла с помощью объектов программы Adobe Acrobat.

Чтобы использовать объекты программы Adobe Acrobat, нужно чтобы на компьютере была установлена программа Adobe Acrobat.

Название библиотеки в Tools - References...

Библиотеки могут иметь 2 названия:
  1. Adobe Acrobat Type Library
  2. Acrobat

Код, который берёт текст из PDF-файла "Файл1.pdf" с первой страницы
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Sub Procedure_1()
 
    Const sPath As String = "C:\Documents and Settings\Пользователь\Рабочий стол\Файл1.pdf"
 
    Dim oPDDocument As New Acrobat.AcroPDDoc
    Dim oPDPage As Acrobat.AcroPDPage
    Dim oHiliteList As New Acrobat.AcroHiliteList
    Dim oPDTextSelect As Acrobat.AcroPDTextSelect
    Dim i As Long
    
    '1. Открываем PDF-файл.
    oPDDocument.Open sPath
    
    '2. Берём нужную страницу. Страницы в PDF в VBA нумеруются с нуля.
    Set oPDPage = oPDDocument.AcquirePage(0)
    
    '3. Указываем, с какого по счёту слова взять слова и сколько
    'слов взять. Максимально в объект AcroHiliteList можно взять 32767 слова.
    oHiliteList.Add nOffset:=0, nLength:=32767
    
    '4. Берём слова в объект oPDTextSelect.
    Set oPDTextSelect = oPDPage.CreateWordHilite(oHiliteList)
    
    '5. Просматриваем взятые слова.
    For i = 0 To oPDTextSelect.GetNumText - 1 Step 1
        Debug.Print oPDTextSelect.GetText(i)
    Next i
    
    '6. Закрываем PDDocument.
    oPDDocument.Close
 
End Sub
Примечания
  1. Чтобы увидеть результат работы кода: View - Immediate Window.
  2. Чтобы работать с символами, а не со словами, нужно использовать вместо CreateWordHilite вот это: CreatePageHilite.
  3. Как я понял, текст Hilite в слове AcroHiliteList является выдуманным от слова Highlight.
  4. Не понятно, почему используется объект AcroHiliteList в значении "выделять цветом", если документ не выводится на монитор и ничего не выделяется цветом.
10
Заблокирован
20.08.2012, 19:56 7
Что я делаю не так? Перебрал не один десяток PDF-файлов - результат один
Миниатюры
Взятие данных из PDF  
0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
20.08.2012, 19:57  [ТС] 8
Апострофф, на компьютере должна быть программа Adobe Acrobat.
0
Апострофф
20.08.2012, 20:27
  #9

Не по теме:

Во как! Библиотека есть, а программы нет?
Пролистал список установленных программ - Reader есть, Acrobat`а нет=-O
А откуда библа взялась? Хотя пора перестать удивляться...

0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
20.08.2012, 20:32  [ТС] 10
Апострофф, я тоже посмотрел на компьютере, где нет Adobe Acrobat, что библиотека есть - думал будет через Adobe Reader работать.
А потом выяснил, что нет: нужен обязательно Adobe Acrobat.
0
6805 / 2834 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.08.2012, 20:33 11
Цитата Сообщение от Busine2012 Посмотреть сообщение
Взятие данных из PDF-файла
Медаль за взятие данных из PDF!!!


Цитата Сообщение от Busine2012 Посмотреть сообщение
Возможно ли это?
А если применить рабоче-крестьянский метод, который работает со всеми документами без библиотек?
Я имею в виду Send ( "keys" [, flag] )
К примеру для копирования текста из 5-й страницы PDF, открытой в Adobe Reader( бесплатного!!!)
посылаем клавиши "Shift & Ctrl & 5" , затем CTRL & A, затем CTRL & С , затем извлекаем текст из буфера обмена в нужное место.
Я так и поступал когда то, дешево и сердито
0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
20.08.2012, 20:35  [ТС] 12
Цитата Сообщение от Pro_grammer Посмотреть сообщение
А если применить рабоче-крестьянский метод
просто я хочу быть точно уверенным, что сочетание клавиш Ctrl+A даст нужный результат.
К тому же вдруг при копировании текст как-то исказится.

Интересно, можно ли получить данные из PDF-файла прямо с жёсткого диска компьютера без программы для работы с PDF-файлами.
0
6805 / 2834 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.08.2012, 20:47 13
Цитата Сообщение от Busine2012 Посмотреть сообщение
просто я хочу быть точно уверенным, что сочетание клавиш Ctrl+A даст нужный результат.
Если PDF поддерживает выделение-копирование, то ни чего не исказиться, проверено. А ели это не разрешено, или это не текст, а изображение, то конечно ни чего не выйдет. Хотя в этом случае ни как не выйдет.
Прямо с диска - вряд ли, там текст в сжатом виде находится.
P.S.
В VBA вроде поддерживается SendKeys
Sends keystrokes to the active application.
expression.SendKeys(Keys, Wait)
1
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
20.08.2012, 20:51  [ТС] 14
Pro_grammer, да, в VBA можно использовать нажатие клавиш.
0
0 / 0 / 0
Регистрация: 14.04.2015
Сообщений: 6
14.04.2015, 10:36 15
Вопрос на засыпку. У меня Acrobat Reader установлен через Citrix.
А представленный модуль работает только при установленном на компе Acrobate.
Возможно ли как-то подключиться к Citrix, чтобы данная процедура работала???

Цитата Сообщение от Busine2012 Посмотреть сообщение
Const sPath As String = "C:\Documents and Settings\Пользователь\Рабочий стол\Файл1.pdf"
Dim oPDDocument As New Acrobat.AcroPDDoc
Dim oPDPage As Acrobat.AcroPDPage
Dim oHiliteList As New Acrobat.AcroHiliteList
Dim oPDTextSelect As Acrobat.AcroPDTextSelect
Dim i As Long
0
Ушел с CyberForum совсем!
873 / 182 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
14.04.2015, 11:53 16
Цитата Сообщение от Kuznetsovka Посмотреть сообщение
У меня Acrobat Reader установлен
в данном случае речь идет не о ридере, а о
Adobe Acrobat Pro
0
0 / 0 / 0
Регистрация: 14.04.2015
Сообщений: 6
14.04.2015, 13:18 17
Я это понял. В этом то и проблема. На компе у меня стоит Adobe Reader, а в Citrix есть установленный Acrobat X Pro.
Можно ли как-нибудь провести операции изъятия данных их PDF через Citrix с помощью Acrobat X Pro?


Цитата Сообщение от Surrogate Посмотреть сообщение
в данном случае речь идет не о ридере, а о
Adobe Acrobat Pro
0
Ушел с CyberForum совсем!
873 / 182 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
16.04.2015, 11:57 18
Цитата Сообщение от Kuznetsovka Посмотреть сообщение
Можно ли как-нибудь провести операции изъятия данных их PDF через Citrix с помощью Acrobat X Pro?
попробуй в shell запустить Citrix. не уверен правда, что сможешь передавать параметры Acrobat X Pro на виртуалку…

Kuznetsovka, а зачем так сложно ?
0
0 / 0 / 0
Регистрация: 14.04.2015
Сообщений: 6
16.04.2015, 12:25 19
Цитата Сообщение от Surrogate Посмотреть сообщение
попробуй в shell запустить Citrix. не уверен правда, что сможешь передавать параметры Acrobat X Pro на виртуалку…
Я тоже в этом не уверен.
Хотел уйти от колхоза SendKeys.

Но уже решил задачу SendKeys. Не так уж и криво получилось, учитывая что местонахождение всех слов шаблонное.
0
16.04.2015, 12:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2015, 12:25
Помогаю со студенческими работами здесь

Взятие данных из одной формы в другую
У меня вот какая проблема: существуют 2 формы,на первой вводятся данные, на второй в компоненте...

Запись данных в файл и взятие их из него.
Здорова. По заданию написал программу делающюю всё что нужно. А нужно написать программу для...

Парсинг HTML страницы, взятие данных из таблицы и импорт ее в DataGridView
Приветствую. уткнулся в стену. Надо зайти на несколько сайтов и из них вытащить таблицу, данные...

Формирование PDF из данных в HTML
Доброго дня Пользователь получает отчет в html формате. Далее необходимо распечатать в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru