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

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

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

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

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

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

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

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

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

Решение

Взятие данных из 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
 Аватар для Апострофф
9908 / 3919 / 742
Регистрация: 11.10.2011
Сообщений: 5,903
20.08.2012, 19:56
Что я делаю не так? Перебрал не один десяток PDF-файлов - результат один
Миниатюры
Взятие данных из PDF  
0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
20.08.2012, 19:57  [ТС]
Апострофф, на компьютере должна быть программа Adobe Acrobat.
0
20.08.2012, 20:27

Не по теме:

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

0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
20.08.2012, 20:32  [ТС]
Апострофф, я тоже посмотрел на компьютере, где нет Adobe Acrobat, что библиотека есть - думал будет через Adobe Reader работать.
А потом выяснил, что нет: нужен обязательно Adobe Acrobat.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.08.2012, 20:33
Цитата Сообщение от 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  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
А если применить рабоче-крестьянский метод
просто я хочу быть точно уверенным, что сочетание клавиш Ctrl+A даст нужный результат.
К тому же вдруг при копировании текст как-то исказится.

Интересно, можно ли получить данные из PDF-файла прямо с жёсткого диска компьютера без программы для работы с PDF-файлами.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.08.2012, 20:47
Цитата Сообщение от 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  [ТС]
Pro_grammer, да, в VBA можно использовать нажатие клавиш.
0
0 / 0 / 0
Регистрация: 14.04.2015
Сообщений: 6
14.04.2015, 10:36
Вопрос на засыпку. У меня 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 совсем!
874 / 183 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
14.04.2015, 11:53
Цитата Сообщение от Kuznetsovka Посмотреть сообщение
У меня Acrobat Reader установлен
в данном случае речь идет не о ридере, а о
Adobe Acrobat Pro
0
0 / 0 / 0
Регистрация: 14.04.2015
Сообщений: 6
14.04.2015, 13:18
Я это понял. В этом то и проблема. На компе у меня стоит Adobe Reader, а в Citrix есть установленный Acrobat X Pro.
Можно ли как-нибудь провести операции изъятия данных их PDF через Citrix с помощью Acrobat X Pro?


Цитата Сообщение от Surrogate Посмотреть сообщение
в данном случае речь идет не о ридере, а о
Adobe Acrobat Pro
0
Ушел с CyberForum совсем!
874 / 183 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
16.04.2015, 11:57
Цитата Сообщение от 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
Цитата Сообщение от Surrogate Посмотреть сообщение
попробуй в shell запустить Citrix. не уверен правда, что сможешь передавать параметры Acrobat X Pro на виртуалку…
Я тоже в этом не уверен.
Хотел уйти от колхоза SendKeys.

Но уже решил задачу SendKeys. Не так уж и криво получилось, учитывая что местонахождение всех слов шаблонное.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.04.2015, 12:25
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru