:: Visual Foxpro, Foxpro for DOS
прочитать содержимое PDF в переменные
glaz58
Автор

Сообщений: 812
Откуда: Воронеж
Дата регистрации: 09.02.2008
Уважаемые знатоки! Известны ли средства читать PDF как текст и, в зависимости от найденного текста прочитать строку или несколько строк (до следующего известного слова или фразы) в переменную или в таблицу?
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
glaz58
Известны ли средства читать PDF как текст
Сначала надо доказать наличие текста. Ибо он совершенно не обязан там быть.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
PDF может быть защищен паролем, как минимум.

Если проблемы с защитой нет, сохранить PDF в формате Excel, например. Ну, а с EXCEL можно "горы свернуть". Однако реализовать это в виде функции в проекте довольно проблематично. Обычно такого рода "сервис" проще оформлять в виде "пакета утилит". Помимо всего прочего, то, что сохранено в формате PDF, может иметь переменные шрифты переменного размера, что затрудняет пакетную обработку файла в формате того же Excel.
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
ssa
glaz58
Известны ли средства читать PDF как текст
Сначала надо доказать наличие текста. Ибо он совершенно не обязан там быть.

Сейчас есть такая мода повсеместно. Некое приложение генерирует выходные формы в формате Word или Excel. После этого документы сохраняются в формате PDF, защищаются паролем и рассылаются "заинтересованному кругу лиц". Эти самые заинтересованные лица могут только просматривать инфу, но не могут никак её загрузить к себе и обработать. Думается, что вопрос связан именно с этой проблемой.
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
Simple777
только просматривать инфу, но не могут никак её загрузить к себе и обработать. Думается, что вопрос связан именно с этой проблемой.
Этот формат создан только для просмотра глазами и ни разу не чтения данных из него программами. Потому и ожидать наличия того, для чего он не предназначен, несколько наивно.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Программами, написанными на FoxPro, конечно, проблематично. Но в целом обозначенная выше проблема решается вполне успешно различными утилитами.
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
Simple777
Программами, написанными на FoxPro, конечно, проблематично.
Не в фоксе дело.
Цитата:
Но в целом обозначенная выше проблема решается вполне успешно различными утилитами.
Совершено не успешно.
Еще раз - текста в файле может не быть и то, что люди глазами могут воспринимать как текст, распознать могут только программы оптического распознавания, которые не дают 100% автоматического правильного распознавания.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Может и картинка с буквами там быть, но вполне вероятен и текст. "Картинки" чаще всего встречаются в pdf созданных путём сканирования бумажных носителей. Если pdf генерируется каким-то ПО из текстовых данных, то вероятнее всего там будет текст.

К системе индексирования файлов винды есть "фильтры" для выдёргивания текста из самых разных форматов, в т.ч. и из pdf (конечно же, если он там есть). В принципе этим фильтром и можно воспользоваться - или уже готовой утилитой, которая просто в текст попытается файл перегнать.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Речь идёт именно об оптическом распознавании данных в PDF-формате. 100% не распознаётся, конечно. Но... Если речь идёт о программно сформированных выходных формах, то вероятность их успешного оптического распознавания довольно высока.



Исправлено 1 раз(а). Последнее : Simple777, 28.11.21 22:59
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
dimuhametov

Сообщений: 1562
Откуда: Костанай
Дата регистрации: 01.11.2008
glaz58
Уважаемые знатоки! Известны ли средства читать PDF как текст и, в зависимости от найденного текста прочитать строку или несколько строк (до следующего известного слова или фразы) в переменную или в таблицу?
PDF2TXT > cloud.mail.ru


------------------
Незнание делает жизнь такой интересной.
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
glaz58
Автор

Сообщений: 812
Откуда: Воронеж
Дата регистрации: 09.02.2008
Я собираюсь работать с файлом, про который точно известно, что там есть текст.
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
glaz58
Автор

Сообщений: 812
Откуда: Воронеж
Дата регистрации: 09.02.2008
Я собираюсь работать с файлом, в котором точно есть текст.
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
glaz58
Автор

Сообщений: 812
Откуда: Воронеж
Дата регистрации: 09.02.2008
В моём случае речь идёт о файлах, которые не защищены паролем и они точно содержат текст.
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
glaz58
Автор

Сообщений: 812
Откуда: Воронеж
Дата регистрации: 09.02.2008
Особенно когда это сканы с напечатанных документов. Иногда и с помятых листов. Там где была складка, искажаются буквы и цифры.
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
glaz58
Автор

Сообщений: 812
Откуда: Воронеж
Дата регистрации: 09.02.2008
Спасибо, буду разбираться. Даже и разбираться нечего - всё очень просто. Как раз то, что мне нужно.



Исправлено 1 раз(а). Последнее : glaz58, 04.12.21 19:37
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Simple777
Если проблемы с защитой нет, сохранить PDF в формате Excel, например. Ну, а с EXCEL можно "горы свернуть".
Если xlsx распаковать (а это легко), то сами тексты лежат в sharedStrings.xml.
Из него можно легко их вытащить. Внутри этого текстового файла они в виде
<t>ВП "Печерский мост"</t>
Но стили могут мешать.



Исправлено 3 раз(а). Последнее : Ydin, 29.11.21 19:10
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
Вот тут я очень сильно не уверен что в них есть текст. Скорее всего там текст как картинка.


------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
Не плохо ещё ABBYY Fine Reader. Но тут уже или денежку плати или крякнутую брать.
Была задача по проверке входных бумажных документов. Использовал VBA в связке с FR 14 или 15 (точно не помню уже).


------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.




Исправлено 1 раз(а). Последнее : AleksM, 29.11.21 22:46
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
BOBAN

Сообщений: 625
Откуда: Солигорск
Дата регистрации: 05.07.2004
Вот текст теста чьей-то утилиты. К ней прилагаются библиотеки. Если заинтересует, сброшу на электронный адрес

*!* Download iTextSharp From:
*!* sourceforge.net
*!* DownLoad wwwDotNetBridge From:
*!* west-wind.com
LOCAL loBridge, lcPDFFile, lcOutputFile
SET DEFAULT TO JUSTPATH(SYS(16))
DO wwDotNetBridge
loBridge = CreateObject("wwDotNetBridge","V4")
IF !EMPTY(loBridge.cErrorMsg)
MESSAGEBOX(loBridge.cErrorMsg)
RETURN
ENDI
loBridge.LoadAssembly("iTextSharp.dll")
IF !EMPTY(loBridge.cErrorMsg)
MESSAGEBOX(loBridge.cErrorMsg)
RETURN
ENDI
lcPDFFile = "Program_Information.pdf"
lcOutputFile = "someoutputfile.txt"
_iTextSharpConvertToText(loBridge, lcPDFFile, lcOutputFile)
**********************************************************************************
*** ***
*** toLoBridge wwDotNetBridge Object Variable ***
*** tcPDFFile = The PDF File To Convert ***
*** tcOutputFile = The Output File Name ***
*** ***
**********************************************************************************
FUNCTION _iTextSharpConvertToText()
PARAMETERS toloBridge, tcPDFFile, tcOutputFile
LOCAL lcStrg, lnPageNbr, loPdfReader, loSTEStrategy
lcStrg = ""
loPdfReader = toloBridge.CreateInstance("iTextSharp.text.pdf.PdfReader",tcPDFFile)
loSTEStrategy = toloBridge.CreateInstance("iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy")
FOR lnPageNbr = 1 TO loPdfReader.NumberOfPages
lcStrg = lcStrg + toloBridge.InvokeStaticMethod("iTextSharp.text.pdf.parser.PdfTextExtractor", "GetTextFromPage", loPdfReader, lnPageNbr, loSTEStrategy)
ENDFOR
STRTOFILE(lcStrg, tcOutputFile)
loPdfReader.close()
ENDFUNC
Ratings: 0 negative/0 positive
Re: прочитать содержимое PDF в переменные
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
iTextSharp уже несколько лет как заменён на itext7-dotnet (в этой версии продолжается развитие, а сам iTextSharp считается устаревшим). И, к сожалению, это не бесплатные проекты. Ну, точнее, iText7 идёт под двойной лицензией - AGPL/коммерческая. iTextSharp же идёт только под AGPL лицензией.
AGPL требует чтобы использующая библиотеку программа так же поставлялась с открытым исходным кодом и под аналогичной (в идеале точно такой же) лицензией, что для коммерческого софта может быть весьма затруднительно. А покупать ради одной функции недешевую коммерческую лицензию...

Впрочем, если вопрос пиратства не смущает, то вполне можно и эту библиотеку использовать.


------------------
WBR, Igor
Ratings: 0 negative/1 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 27 (Гостей: 27)

© 2000-2024 Fox Club 
Яндекс.Метрика