|
v7: Распарсить PDF в TXT | ☑ | ||
---|---|---|---|---|
0
mishaPH
24.08.11
✎
13:45
|
Коллеги, есть задачка.
приходят к нам от 7г континента акты о приеме товара в формате pdf. нужно их распарсить и сравнить с накладными отгрузок им. В общем есть некие конверторы с текстовой строкой чтобы его в текстовый файл затащить а далее обработать. А делал ли кто подобное в 7ке. может есть какая компонента чтобы из 7ки рулить или вообще сразу прочитать пдфку. пдф текстовый не картинка. |
|||
1
andrewks
24.08.11
✎
13:49
|
ого
а в другом формате они не могут слать? |
|||
2
Холст
24.08.11
✎
13:50
|
имхо бесполезняк пытаться полученный текст разбирать
ПДФ трансформер (им помоему и в автоматическом режиме можно) разбирать док в эксель файл а потом разбирать эксельку |
|||
3
trdm
24.08.11
✎
13:52
|
Шмахабра говорил что есть актив-ха который может пдф жевать.
Тусуется где то в составе продуктов адоба, это у него спрашивать надо. ПС. за пдф в обмене данных надо топить еще при рождении. |
|||
4
mishaPH
24.08.11
✎
13:56
|
(1) да попробуй.
(2) да ладно обычный даже пдф ридер может сохранять текст в ТХТ (3) да есть конвертеры говорю даже с командной строкой. не проблема завязаться на него. Но интересует ваш опыт. |
|||
5
ildary
24.08.11
✎
13:56
|
Я делал подобное (добрый человек на мисте делился основой для чтения пдф), но было 2 нюанса - 1) данные в пдф должны быть не в виде картинки 2) хранение в пдф бывает с придурью в тот момент, когда данные не влазят на одну строку.
|
|||
6
Господин ПЖ
24.08.11
✎
13:59
|
чего его парсить... "save as" в xml или еще во что-то вменяемое и читать... полный акробат делать "save as" программно умеет.
|
|||
7
trdm
24.08.11
✎
14:01
|
Блин, легче из ворда получить данные чем с пдфа )
|
|||
8
andrewks
24.08.11
✎
14:02
|
(6) нахрена полный пдф? даже бесплатный ридер может в тхт сохранить
|
|||
9
andrewks
24.08.11
✎
14:03
|
+(8) *полный акробат
|
|||
10
aka AMIGO
24.08.11
✎
14:04
|
я пользуюсь FineReader"ом..
правда, у меня не так много пдф-документов |
|||
11
mishaPH
24.08.11
✎
14:09
|
(10) есть такое тормозно. да им если там картинки проще.
(8) может. руками. а надо автоматом. если знаешь коммандную строку как сделать. напиши. |
|||
12
Господин ПЖ
24.08.11
✎
14:13
|
(8) не может...
|
|||
13
andrewks
24.08.11
✎
14:13
|
(12) может. только что сохранил. такшта не надо
|
|||
14
andrewks
24.08.11
✎
14:14
|
+(13)если что, 10-й юзаю
|
|||
15
mishaPH
24.08.11
✎
14:14
|
(12) может. не проблема
|
|||
16
mishaPH
24.08.11
✎
14:15
|
но тут надо автоматом чтобы было. доков очень много и человек участвовать не должен в этом.
|
|||
17
mishaPH
24.08.11
✎
14:16
|
http://www.coolutils.com/ru/PDF-to-TXT
Вот нарыл. но может есть бесплатная фигня а может кто и библиотечку писал. |
|||
18
Господин ПЖ
24.08.11
✎
14:17
|
savefile
Sub savefile Dim acroApp Dim acroAV Dim acroPD Dim jso sfile = "C:\222.pdf" Set acroApp = CreateObject("AcroExch.App") Set acroPD = CreateObject("AcroExch.PDDoc") acroPD.Open sfile Set jso = acroPD.GetJSObject jso.saveAs "C:\\TEMP\\333.xml", "com.adobe.acrobat.xml-1-00", "", true acroPD.Close acroApp.CloseAllDocs acroApp.Exit Set acroPD = Nothing Set acroApp = Nothing End Sub |
|||
19
andrewks
24.08.11
✎
14:17
|
(11) ключей ком.строки на это дело, похоже, нет. а если сендкеями?
|
|||
20
mishaPH
24.08.11
✎
14:19
|
(18) это как к 7ке прикрутить. простите за необразованность
|
|||
21
andrewks
24.08.11
✎
14:19
|
(18) это с платным акробатом, как я вижу?
|
|||
22
Господин ПЖ
24.08.11
✎
14:21
|
(20) ну банально можно оформить в виде vbs скрипта... из 7.7 через shell.run дергать его с передачей внутрь параметров... или попробовать переписать. Я не помню как 7.7 com объект получать надо для CreateObject("AcroExch.App").
|
|||
23
andrewks
24.08.11
✎
14:22
|
за сохранение в текст отвечает плагин saveasrtf.api
|
|||
24
Господин ПЖ
24.08.11
✎
14:22
|
(21) ну я думаю общий смысл будет тот же. Объекты может быть будет иные... так в SDK и гугле все есть...
|
|||
25
Господин ПЖ
24.08.11
✎
14:22
|
(23) ооо... там видать вообще все иначе...
|
|||
26
andrewks
24.08.11
✎
14:23
|
было бы просто замечательно, если бы бесплатный ридер поставлял ком-объекты. вопрос, так ли это? надо гуглить
|
|||
27
andrewks
24.08.11
✎
14:28
|
вот по ком.строке:
http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf ессесно, того, что надо, там нет |
|||
28
Злопчинский
24.08.11
✎
14:34
|
в свое время была анлогичная ТС проблема. Все конверторы идут лесом. Если надо конвертнуть текст - то тут можно сказать ОК. Конвертация таблиц и таблицеподобного - практически нулевая, потом практически руками собирать из текста.
. так что если пдф можно конвертнуть в иксемель, то это гуд, иксемель парсить ужо легче. другое дело что практически на каждый док или чуть изменилось что-то в доке - придется алгоритм подкручивать... (както так?) |
|||
29
andrewks
24.08.11
✎
14:37
|
почитай здесь, вроде что-то светится нужное
http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/reader/pdfs/reader_overview.pdf |
|||
30
mishaPH
24.08.11
✎
14:37
|
(28) таблички нафик не нужны. мне нежен текст который я отработаю далее сам. вполне устраивает как это делает пдф ридер когда сохраняешь в тхт
|
|||
31
mishaPH
24.08.11
✎
15:47
|
епть. все осложняется еще и тем, что X5 групп от которой приходит этот пдф, конвертер который с коммандной строкой работает за пдф не принимает. какой то слегка свой формат.
Но ридер читает. |
|||
32
FN
24.08.11
✎
15:52
|
(31) давно уже решил такую проблему. только решение не со всеми файлами проходит.
скинь пример файла на почту или файлообменник |
|||
33
Злопчинский
24.08.11
✎
15:54
|
ну.. х5 с еди работает, вроде как там у них даже есть ответ по еди о приемке - тот самый акт...
|
|||
34
mishaPH
24.08.11
✎
15:55
|
(33) кстати. пойду с манагерами пообщаюсь
|
|||
35
mishaPH
24.08.11
✎
15:55
|
заказы получаем
|
|||
36
mishaPH
24.08.11
✎
15:57
|
через ЕДИ мы с ними не работаем. работаем с каким-то порталом от них а там только заказы.
|
|||
37
Torquader
24.08.11
✎
16:01
|
(31) В pdf хорошо кладутся отсканированные документы, в которых текста может и не быть - не ваш случай ?
|
|||
38
mishaPH
24.08.11
✎
16:02
|
(37) нет. это чисто текстовый пдф. прекрасно текст сохраняется даже адоб ридером
|
|||
39
FN
24.08.11
✎
16:04
|
Функция pdf_ПрочитатьСимвол(Знач Значение="0") Экспорт
Нотация=16; Значение=СокрЛП(Значение); Если Значение="0" Тогда Возврат(0) КонецЕсли; Результат=0; Длина=СтрДлина(Значение); Для Х=1 По Длина Цикл М=1; Для У=1 По Длина-х Цикл М=М*Нотация КонецЦикла; Результат=Результат+(Найти("0123456789ABCDEF",Сред(Значение,х,1))-1)*М; КонецЦикла; Если Результат>127 Тогда Результат=Результат+16; КонецЕсли; Возврат Окр(Результат); КонецФункции Функция pdf_ПеревестиСтроку(стр) новстрока=""; для х=1 по СтрДлина(стр) Цикл новстрока=новстрока+Симв(pdf_ПрочитатьСимвол(Сред(стр,х,2))); х=х+1; КонецЦикла; Возврат новстрока; КонецФункции Функция pdf_ПолучитьСмещение(знач стр) Поз=Найти(стр,"BT"); Поз2=Найти(стр,"Td"); Стр=Сред(стр,поз+3,поз2-5); Поз3=Найти(стр," "); Стр=Сред(стр,Поз3+1); Возврат Окр(Число(стр)); КонецФункции Функция ОтфильтроватьPDF(Файл) fso=СоздатьОбъект("Scripting.FileSystemObject"); ттт=""; Текст=СоздатьОбъект("Текст"); Если Найти(Файл,"""")<>0 Тогда Файл=СтрЗаменить(Файл,"""", """"""); ссылкаНаФайл=fso.GetFile(СокрЛП(Файл)).OpenAsTextStream(1); Сообщить("ОК"); ТемпФайл=fso.GetTempName(); ФС.КопироватьФайл(СокрЛП(Файл),КаталогВременныхФайлов()+ТемпФайл,0); Файл=КаталогВременныхФайлов()+ТемпФайл; КонецЕсли; ссылкаНаФайл=fso.GetFile(СокрЛП(Файл)).OpenAsTextStream(1); ПоследнаяяСтрока=-1; ТекстИнфо="Попытка распаковки файла PDF"; Форма.Обновить(0); Пока ссылкаНаФайл.AtEndOfStream=0 Цикл Буфер=Прав(Буфер+ссылкаНаФайл.Read(1),20); Если Прав(Буфер,1)<>"<" тогда Продолжить; КонецЕсли; //не наше... Буфер=Прав(Буфер+ссылкаНаФайл.Read(1),20); Если Прав(Буфер,2)="<<" Тогда //стандартный тег Продолжить; КонецЕсли; ТекСтрокаВерт=pdf_ПолучитьСмещение(Буфер); Буфер=Прав(Буфер,1); Пока ссылкаНаФайл.AtEndOfStream=0 Цикл СледСимв=ссылкаНаФайл.Read(1); Если Найти("0123456789ABCDEF",СледСимв)<>0 тогда Буфер=Буфер+СледСимв; Продолжить; ИначеЕсли СледСимв=">" Тогда Прервать; Иначе //какой-то мусор Буфер=""; Прервать; КонецЕсли; КонецЦикла; Если ПустоеЗначение(Буфер)=0 тогда Если ТекСтрокаВерт<>ПоследнаяяСтрока Тогда ПоследнаяяСтрока=ТекСтрокаВерт; Текст.ДобавитьСтроку(ттт); ттт=""; КонецЕсли; ттт=ттт+pdf_ПеревестиСтроку(Буфер); Буфер=""; КонецЕсли; КонецЦикла; Если ПустоеЗначение(ттт)=0 тогда Текст.ДобавитьСтроку(ттт); КонецЕсли; Возврат Текст; КонецФункции Процедура ЗагрузкаИзТекста(Источник,Разделитель="") спРазделителей=СоздатьОбъект("СписокЗначений"); Если ПустоеЗначение(Разделитель)=1 Тогда спРазделителей.ДобавитьЗначение(";"); спРазделителей.ДобавитьЗначение(СимволТабуляции); спРазделителей.ДобавитьЗначение("|"); Иначе спРазделителей.ДобавитьЗначение(Разделитель); КонецЕсли; текст=СоздатьОбъект("Текст"); спШирина=СоздатьОбъект("СписокЗначений"); Строк=Источник.КоличествоСтрок(); для х=1 по Строк Цикл Если х%10=0 тогда ТекстИнфо="Чтение файла: обработано "+х+" из "+Строк+" строк"; КонецЕсли; Форма.Обновить(0); ТекСтрока=Источник.ПолучитьСтроку(х); для ш=1 по спРазделителей.РазмерСписка() Цикл ТекСтрока=СтрЗаменить(ТекСтрока,спРазделителей.ПолучитьЗначение(ш),РазделительСтрок); КонецЦикла; текст.Очистить(); текст.ДобавитьСтроку(ТекСтрока); ТЗ.НоваяСтрока(); для ш=1 по текст.КоличествоСтрок() Цикл Если ш>ТЗ.КоличествоКолонок() Тогда ТЗ.НоваяКолонка(); спШирина.ДобавитьЗначение(1); КонецЕсли; ТекЗнач=текст.ПолучитьСтроку(ш); ТЗ.УстановитьЗначение(х,ш,ТекЗнач); Если Мин(СтрДлина(СокрЛП(Строка(ТекЗнач))),40)>спШирина.ПолучитьЗначение(ш) тогда спШирина.УстановитьЗначение(ш,Мин(СтрДлина(СокрЛП(Строка(ТекЗнач))),40)); КонецЕсли; КонецЦикла; КонецЦикла; для ш=1 по спШирина.РазмерСписка() Цикл ТЗ.УстановитьПараметрыКолонки(ш,,,,,спШирина.ПолучитьЗначение(ш)*1.25); КонецЦикла; КонецПроцедуры Процедура Загрузка() Текст=ОтфильтроватьPDF(файл); ЗагрузкаИзТекста(Текст); ... и тд |
|||
40
FN
24.08.11
✎
16:05
|
(39)+ пробуй сам, а я убежал
|
|||
41
mishaPH
24.08.11
✎
16:06
|
мерси
|
|||
42
andrewks
24.08.11
✎
16:28
|
(41) мне кажется, тебе стоит заменить конвертер на более вменяемый
ftp://ftp.foolabs.com/pub/xpdf/xpdfbin-win-3.03.zip |
|||
43
bw
24.08.11
✎
16:38
|
(36)Портал прекращает у х5 свою работу,идет запуск работы через операторов ЕДЕ.
|
|||
44
Сияющий Асинхраль
24.08.11
✎
16:42
|
Вот неплохая штука и бесплатная
http://text-mining-tool.com/ |
|||
45
Сияющий Асинхраль
24.08.11
✎
16:44
|
+(44) Заодно и в консоли работает, чтобы программно можно было файлы входящие и выходящие задавать...
|
|||
46
Mikeware
24.08.11
✎
16:53
|
(36)(43) И причемм датой полного перехода с портала на EDI объявлена эпическая 11.11.11
Начали с заказов, сейчас ввели подтверждение заказов и подтверждение приемки. |
|||
47
FN
24.08.11
✎
18:35
|
(41) получилось?
|
|||
48
mishaPH
24.08.11
✎
19:31
|
(43) Я в курсе. но у них ттарифы пипец. там за каждый док охрененных денег требуют. итак только за накладные 50 штук в месяц.
(42) попробую. (47) не завтра буду заниматься. (46) да я в курсе. Но на то есть руководство, дадут задачу сделаю. Пока задача освободить человека от проверок соответствия отгруженного с принятым. |
|||
49
mishaPH
24.08.11
✎
19:31
|
(44) мерси. посмотрю все
|
|||
50
ice777
24.08.11
✎
19:48
|
(0) эти сволочи просто поставили <хеззнаеткакой>pdf принтером и гонят туда печать, вместо того, чтоб мозгом подумать. не уважаю.)
|
|||
51
DJ Anthon
24.08.11
✎
20:00
|
ABBYY ;))))))))
|
|||
52
mishaPH
24.08.11
✎
20:02
|
(51) есть и даже куплен. но нет коммандной строки. и тормозной скатина.
|
|||
53
Smallrat
24.08.11
✎
20:06
|
Делал на УФ:
&НаКлиенте Процедура ВыбратьФайл(Команда) ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогОткрытияФайла.Фильтр = НСтр("ru = ""Текст""; en = ""Text""")+"(*.pdf)|*.pdf"; ДиалогОткрытияФайла.Заголовок = "Выберите файл"; ДиалогОткрытияФайла.ПроверятьСуществованиеФайла = Истина; Если Не ДиалогОткрытияФайла.Выбрать() Тогда Возврат; КонецЕсли; ФайлPDF = ДиалогОткрытияФайла.ПолноеИмяФайла; КаталогВременныхФайлов = КаталогВременныхФайлов(); ФайлУтилиты1 = Новый Файл(КаталогВременныхФайлов + "pdftotext.exe"); ФайлУтилиты2 = Новый Файл(КаталогВременныхФайлов + "hstart.exe"); ФайлУтилиты3 = Новый Файл(КаталогВременныхФайлов + "xpdfrc"); Если Не ФайлУтилиты1.Существует() Или Не ФайлУтилиты2.Существует() Или Не ФайлУтилиты3.Существует() Тогда Адрес = ПолучитьУтилиту(); ИмяZip = КаталогВременныхФайлов + "pdftotext.zip"; Описание = Новый ОписаниеПередаваемогоФайла(ИмяZip, Адрес); МассивОписаний = Новый Массив; МассивОписаний.Добавить(Описание); ПолучитьФайлы(МассивОписаний,,,Ложь); ЧтениеZip = Новый ЧтениеZipФайла(ИмяZip); ЧтениеZip.ИзвлечьВсе(КаталогВременныхФайлов, РежимВосстановленияПутейФайловZIP.Восстанавливать); ЧтениеZip.Закрыть(); КонецЕсли; ТекстКоманды = """" + КаталогВременныхФайлов + "hstart.exe"" /NOCONSOLE /WAIT ""pdftotext.exe -layout """ + ФайлPDF + """ """ + КаталогВременныхФайлов + "temp.txt"""""; WshShell = Новый COMОбъект("WScript.Shell"); WshShell.Run(ТекстКоманды, 5, 1); Текст = Новый ДвоичныеДанные(КаталогВременныхФайлов + "temp.txt");; УдалитьФайлы(КаталогВременныхФайлов + "temp.txt"); Адрес = ПоместитьВоВременноеХранилище(Текст, ЭтаФорма.УникальныйИдентификатор); ОбработатьТекст(Адрес); КонецПроцедуры &НаСервере Функция ОбработатьТекст(Адрес) Результат = Новый Массив; ФайлПриемник = ПолучитьИмяВременногоФайла("txt"); ДанныеХранилища = ПолучитьИзВременногоХранилища(Адрес); ДанныеХранилища.Записать(ФайлПриемник); Текст = Новый ТекстовыйДокумент; Текст.Прочитать(ФайлПриемник, "UTF-8"); //обрабатываем текст КонецФункции &НаСервере Функция ПолучитьУтилиту() Обработка = РеквизитФормыВЗначение("Объект"); МакетУтилиты = Обработка.ПолучитьМакет("УтилитаКонвертации"); Адрес = ПоместитьВоВременноеХранилище(МакетУтилиты, ЭтаФорма.УникальныйИдентификатор); Возврат Адрес; КонецФункции Если пригодится - я могу залить куда-нить zip с утилитками, который в макете обработки. |
|||
54
Smallrat
24.08.11
✎
20:12
|
Хотя кому-нить наверное да пригодится - так что вот архив:
http://narod.ru/disk/22805232001/УтилитаКонвертации.zip.html |
|||
55
Smallrat
24.08.11
✎
20:15
|
тьфу ты блин - щас только прочитал что 7.7, ну да вообщем сам механизм конвертации тот же .
|
|||
56
smaharbA
24.08.11
✎
20:30
|
ридер может работать с джабаскриптом и сам тебе распарсить
|
|||
57
mishaPH
24.08.11
✎
20:58
|
(56) адоб который стандартный?
а как сделать чтобы он захватил подсунутый файл и сохранил его в тексте. из него знаю можно. |
|||
58
smaharbA
24.08.11
✎
20:59
|
который ридер
|
|||
59
andrewks
24.08.11
✎
21:05
|
(53) "утилитка" в (42), это проект Xpdf.
и нахрена столько кода, непонятно. там всё в три строки можно сделать - вызов экзешника с параметрами |
|||
60
andrewks
24.08.11
✎
21:06
|
(56) я так понял, это в браузере. или нет?
|
|||
61
Smallrat
24.08.11
✎
21:09
|
(59) нуууу...
там треть кода это диалог открытия пдф треть - распаковка утилиты из макета и треть затрах с передачей между клиентом и сервером файлов и еще кусочек чтобы сделать так чтобы черных окошек не было и обработка не началась до того как файл сконвертится. |
|||
62
smaharbA
24.08.11
✎
21:10
|
(60) нет, в самом ридере, подсовывается обычный джабаскриптовый файлик куда надо и ридер сам открывает парсит и сохраняет
|
|||
63
smaharbA
24.08.11
✎
21:11
|
вариант джихостскрипта еще не предлагали ?
|
|||
64
andrewks
24.08.11
✎
21:11
|
(62) плагином подсунуть, что-ли? распиши по буквам, а то мы непонятливые :)
|
|||
65
andrewks
24.08.11
✎
21:15
|
(62) насколько я понял после прочтения доков от адобе, метод
SaveAs доступен только из API для плагинов. ни сообщениями, ни в активиксе он недоступен |
|||
66
smaharbA
24.08.11
✎
21:32
|
(64) нет в папку загляни
%appdata%\adobe\acrobat\X.X\JavaScript |
|||
67
mishaPH
24.08.11
✎
21:34
|
(66) там 2 скрипта мелких.
|
|||
68
mishaPH
24.08.11
✎
21:35
|
(64) да. пример в студию. Считай1 что мы тупые юзеры.
|
|||
69
mishaPH
25.08.11
✎
07:49
|
апнем что-ли. сегодня попробую кучу конвертеров.
(66) если есть решение которое позволит стандартным способом и с применением адобридера из 1с проделать это - рассказывай ;) |
|||
70
mishaPH
25.08.11
✎
08:38
|
В общем проверил все конвертеры присланные и ссылки указанные. эту пдф никто не конвертнул. либо очень коряво.
адоб ридер стандартный все корректно в текст сихраняет. |
|||
71
ДенисЧ
25.08.11
✎
08:39
|
(70) использовать ридера и sendkeys() не предлагать? :-)
|
|||
72
mishaPH
25.08.11
✎
08:40
|
(71) предлагай. как сделать
|
|||
73
mishaPH
25.08.11
✎
08:56
|
(22) скриптом не дает. ругается.
Говорит невозможно создание объекта контейнером активХ AcroExch.App |
|||
74
andrewks
25.08.11
✎
08:58
|
(73) дык это вроде объект "большого" акробата, не?
|
|||
75
mishaPH
25.08.11
✎
09:03
|
(39) @FN там у тебя в коде ТЗ брось структуру полей какие у тебя были. или там только ТЗ = СоздатьОбъект("ТаблицаЗначений")
|
|||
76
Ёпрст
25.08.11
✎
09:05
|
(70) PDFtransformer 2 или 3-ий Пробовал ?
|
|||
77
VladZ
25.08.11
✎
09:05
|
(0) Неужто нельзя договориться о другом формате?
|
|||
78
mishaPH
25.08.11
✎
09:09
|
(76) не помню. кучу перепробовал
(77) с кем договорится ? с Х5 ? это всеравно что ашану свои условия ставить. |
|||
79
mishaPH
25.08.11
✎
09:10
|
(76) если ты от абби то он у нас есть. но он 1. тормозной. 2. он не умеет работать без человека
|
|||
80
FN
25.08.11
✎
09:22
|
(75) Пустая ТЗ на форме
|
|||
81
mishaPH
25.08.11
✎
09:23
|
(80) ок
|
|||
82
smaharbA
25.08.11
✎
09:24
|
закинь
в [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Adobe\Acrobat Reader\9.0\FeatureLockDown\cDefaultExecMenuItems] tWhiteList=...|ADBE:SaveAsAccText|SelectAll|Copy к тому что уже есть и в папку усерских скриптов файлик с одной строкой app.setTimeOut('app.execMenuItem("SelectAll");app.execMenuItem("Copy");',3000); и открой какой нибудь пдф - увидишь эффект, далее думай |
|||
83
mishaPH
25.08.11
✎
09:28
|
В папке скриптов 2 файлика.
glob.js glob.settings.js создать новый со строкой app.setTimeOut('app.execMenuItem("SelectAll");app.execMenuItem("Copy");',3000); ? |
|||
84
smaharbA
25.08.11
✎
09:35
|
а просче джехостскрипт
|
|||
85
mishaPH
25.08.11
✎
09:36
|
(82) в реестр строку
|ADBE:SaveAsAccText|SelectAll|Copy добавил к имеющимся. теперь при старте пдфки помоему что-то промелькнуло. но эффекта не вижу |
|||
86
smaharbA
25.08.11
✎
09:36
|
Да
и просто открой какой нибудь пдф интерактивно (конечно содержащий текст, страниц 10 хотя бы) |
|||
87
mishaPH
25.08.11
✎
09:36
|
(84) ?
|
|||
88
smaharbA
25.08.11
✎
09:36
|
(85) посмотри в буфере обмена ))
|
|||
89
mishaPH
25.08.11
✎
09:36
|
(86) есть на 200 счет от билайна
|
|||
90
mishaPH
25.08.11
✎
09:45
|
(86) при открытии накладной эффекта нет кроме мелькающего окошка,
при открытии счета от билайна получается выделенным весь текст. но в буфер не копирует. app.setTimeOut('app.execMenuItem("SelectAll");app.execMenuItem("Copy");',3000); Это отдельным файликом скрипта или встроить в какой.или имя у него должно быть определенное |
|||
91
sttt
25.08.11
✎
10:10
|
может еще CuneiForm и openoffice. еще мс офис картинки распознавать умеет
|
|||
92
mishaPH
25.08.11
✎
10:11
|
(91) не нужны мне картинки.
|
|||
93
sttt
25.08.11
✎
10:13
|
(92) так если текст не получается получить, тогда в картинку а от туда текст
|
|||
94
FN
25.08.11
✎
10:16
|
(92) мой вариант уже испробовал?
|
|||
95
sttt
25.08.11
✎
10:16
|
||||
96
sttt
25.08.11
✎
10:16
|
вот расширение http://extensions.services.openoffice.org/project/pdfimport
|
|||
97
mishaPH
25.08.11
✎
10:20
|
(94) да такст какой-то мусор выдает и все.
|
|||
98
mishaPH
25.08.11
✎
10:21
|
(93) к гландам через жо..пу? без участвия человека заработает?
|
|||
99
sttt
25.08.11
✎
10:27
|
(98) ну думаю да, использовал как то утилиту пакетной конвертации из pdf (правда в изображениях был) в tiff а потом распознавал
|
|||
100
mishaPH
25.08.11
✎
10:29
|
(99) тогда нет 100% гарантии правильности цифр. жда и зачем такой гемор
|
|||
101
FN
25.08.11
✎
10:30
|
(97) скинь на почту один файлик - попробую под него код подогнать
|
|||
102
sttt
25.08.11
✎
10:32
|
вот тут смотрел wiki:Portable_Document_Format может что интересного.
(100) ну у тебя же текст и картинка будет чистая, думаю что гарантия 100% если парсить текст то тут тож нет гарантии, поставят какой символ и не сможешь как сейчас получить текст |
|||
103
sttt
25.08.11
✎
10:34
|
а что в заголовке pdf'ка пишет? если делают через doPdf то у меня так:
%PDF-1.5 %вгПУ 1 0 obj << /Type /Catalog /Pages 2 0 R /PageLayout /OneColumn /PageMode /UseNone /OCProperties << /D << /Order [] /AS [<< /Event /View /Category [/View ] |
|||
104
mishaPH
25.08.11
✎
10:35
|
(101) ушло
|
|||
105
mishaPH
25.08.11
✎
10:36
|
(103) у них вообще пишет версия пдф 1.6
|
|||
106
sttt
25.08.11
✎
10:38
|
||||
107
sttt
25.08.11
✎
10:41
|
вот посмотри http://pdftk4all.sourceforge.net/ вроде написано с открытыми исходниками и из командной строки работает
|
|||
108
mishaPH
25.08.11
✎
10:42
|
(106) этого барахла как грязи.
но зачем устраивать такие сложности. адоб ридер стандартный прекрасно открывает пдф и сохраняет текст там имеющийся в файл. на 100% точно. Все остальное какая-то хрень. особенно через распознавание текста как абби.скорость очень медленная. счет от билайна распознает 4 часа блин 120 станиц. |
|||
109
mishaPH
25.08.11
✎
10:42
|
(107) ок пасиб. посмотрю
|
|||
110
mishaPH
25.08.11
✎
10:44
|
+ 109 но оно судя по описанию просто для работы склеивания рдф и все
|
|||
111
sttt
25.08.11
✎
10:49
|
(110) еще сам смотрю ) тема самому интересна
|
|||
112
Господин ПЖ
25.08.11
✎
10:51
|
а чего, просто поставить акробат - не катит в итоге?
|
|||
113
mishaPH
25.08.11
✎
10:53
|
(112) ридер? да работает. но он открывает файлик а там далее надо нажать сохранить в тхт. а надо чтобы автоматом конвертировало.
|
|||
114
sttt
25.08.11
✎
11:24
|
попробуй эту ftp://ftp.foolabs.com/pub/xpdf/xpdfbin-win-3.03.zip там есть консольная pdftotext.exe
|
|||
115
sttt
25.08.11
✎
11:25
|
тебе ее и советовали в (42)
|
|||
116
mishaPH
25.08.11
✎
11:29
|
(115) пробовал
|
|||
117
mishaPH
25.08.11
✎
11:30
|
могу прислать эту пдф. попробуй ее в текст перегнать. если интересно
|
|||
118
sttt
25.08.11
✎
11:32
|
присылай st2009st соб qip.ru
вот еще утилита, проверил работает, только html http://sourceforge.net/projects/pdftohtml/files/Experimental%20Versions/pdftohtml%200.40/ |
|||
119
FN
25.08.11
✎
11:34
|
(104) с наскоку не получилось :(
пробуй конверторы |
|||
120
Господин ПЖ
25.08.11
✎
11:35
|
(113) не, полный
|
|||
121
smaharbA
25.08.11
✎
11:36
|
если лениво разбираться с джабойскрипт для ридера
качай это ftp://ftp.foolabs.com/pub/xpdf/xpdfbin-win-3.03.zip |
|||
122
smaharbA
25.08.11
✎
11:37
|
давно бы уже враппер прикрутил и нажал савеастекст
|
|||
123
mishaPH
25.08.11
✎
11:41
|
(121) не конвертирует он этот ПДФ. ну не конвертирует.
|
|||
124
mishaPH
25.08.11
✎
11:45
|
(122) что это за фигня.
|
|||
125
mishaPH
25.08.11
✎
11:46
|
(119) да вот же засада. 8 штук уже перепробовал
|
|||
126
sttt
25.08.11
✎
11:49
|
да уж! фигня какая то, у меня ничего не открывает этот документ из бесплатного. а последняя утилита только цифры получает.
|
|||
127
mishaPH
25.08.11
✎
11:51
|
(126) ага. а вот адоб ридер нормально 9й
|
|||
128
sttt
25.08.11
✎
11:53
|
посмотрел блокнотом там нашел следы вот этого Producer(Adobe PDF Library 8.0), нужно что то подправить
|
|||
129
mishaPH
25.08.11
✎
11:57
|
(128) да есть такое создан с помощью этого
|
|||
130
sttt
25.08.11
✎
12:02
|
вот этой штукой подправил http://www.pcvare.com/pdf-fixer.html просмотровщики стали открывать, но pdftohtml также бред выдает
|
|||
131
mishaPH
25.08.11
✎
12:08
|
там именно версия пдф 1.6 видимо конверторы не могут с ней работать даже внутреняя структура различается в отличии от 1.4 например который конвертируется нормально
|
|||
132
Smallrat
25.08.11
✎
12:20
|
(116) Там возможно надо настроить xpdfrc, когда я настраивал для своего конвертирования мне оказалось достаточно там строчки "textEncoding UTF-8"
И если конвертятся таблицы - то конвертить надо с ключом -layout |
|||
133
Smallrat
25.08.11
✎
12:20
|
+(132) Еще у них там валяется кириллический пакет, я правда не понял как его подключать, у меня так заработало, без него.
|
|||
134
sttt
25.08.11
✎
12:33
|
+(132) вроде действительно из за кодировок нормально не работает. восстановил файл с помощью pdftk4all и потом уже pdftohtml, в результате русский текст не получаем а только цифры и латинские символы
|
|||
135
sttt
25.08.11
✎
12:34
|
pdf-fixer не понадобился достаточно бесплатной pdftk4all
|
|||
136
mishaPH
25.08.11
✎
13:13
|
(132) гм. счас попробую.
|
|||
137
mishaPH
25.08.11
✎
13:21
|
-layout
помогло. стало подобие структуры. а вот букв нету. "textEncoding UTF-8" куда прописать. я смотрю это в файлике описано sample-xpdfrc |
|||
138
mishaPH
25.08.11
✎
13:24
|
# The Xpdf tools look for a config file in two places:
# 1. ~/.xpdfrc # 2. in a system-wide directory, typically /usr/local/etc/xpdfrc это где такое |
|||
139
sttt
25.08.11
✎
13:24
|
pdftotext -enc UTF-8 -layout n2.pdf
а потом c:\Temp\xpdfbin-win-3.03\bin32>iconv -c -f utf-8 -t cp1251 c:\Temp\xpdfbin-win-3 .03\bin32\n2.txt >c:\Temp\xpdfbin-win-3.03\bin32\n3.txt |
|||
140
sttt
25.08.11
✎
13:26
|
ура! все победили ))
|
|||
141
mishaPH
25.08.11
✎
13:26
|
так что-то получается
|
|||
142
mishaPH
25.08.11
✎
13:27
|
после pdftotext -enc UTF-8 -layout n2.pdf
текст кракозябры |
|||
143
sttt
25.08.11
✎
13:27
|
(141) да. потом скачай http://gnuwin32.sourceforge.net/packages/libiconv.htm
|
|||
144
sttt
25.08.11
✎
13:27
|
конвертнешь из одной кодировки в другую, строку команды выложил
|
|||
145
sttt
25.08.11
✎
13:30
|
может можно как то и через pdftotext сразу в нормальной кодировке получить но не нашел пока
|
|||
146
mishaPH
25.08.11
✎
13:35
|
ураааааа.
немного табличка хреново получилась. но распарсю думаю |
|||
147
sttt
25.08.11
✎
13:35
|
ну да ))
|
|||
148
sttt
25.08.11
✎
13:37
|
там я видел у них исходники вроде есть )
|
|||
149
mishaPH
25.08.11
✎
13:38
|
пля аминь. ветку наверное в БЗ
|
|||
150
mishaPH
25.08.11
✎
13:43
|
опс. а если не конвертируемый файл открыть виндовым нотепадом он его нормально показывает.
утф8 кодирвока винда. если поставить в просмоторщике тотала листере то русский текст нормальный. 1с то 77 поймет интересно правильно |
|||
151
sttt
25.08.11
✎
13:46
|
в эске вроде только вин1251 и дос, так что нужно конвертировать
|
|||
152
mishaPH
25.08.11
✎
13:47
|
(151) да 1с утф8 не понимает
|
|||
153
sttt
25.08.11
✎
13:48
|
восьмерка вроде понимает
|
|||
154
mishaPH
25.08.11
✎
13:48
|
но в оригинале табличка гладко стоит а конвертер зараза двигает пробелы. не смертельно но не удобно
|
|||
155
mishaPH
25.08.11
✎
13:48
|
(153) гм. а может какие вк есть к 7ке. счас порою кто-то с текстом работал
|
|||
156
sttt
25.08.11
✎
13:48
|
думаю справишься
|
|||
157
sttt
25.08.11
✎
13:49
|
может и есть, но экселевские причуды из восьмерки полученные без проблем не грузились в семерку
|
|||
158
sttt
25.08.11
✎
13:51
|
можно в экселе txt попробовать открыть и тогда можно перебором получить нормальный текст
|
|||
159
mishaPH
25.08.11
✎
13:51
|
ну пасибо всем. уже экономия бабла на хапугах ритейле от чего тортики не станут дороже.
|
|||
160
mishaPH
25.08.11
✎
13:51
|
(158) нафик. распарсю что есть
|
|||
161
sttt
25.08.11
✎
13:53
|
смотри сам, тут вариантов куча
|
|||
162
Smallrat
25.08.11
✎
13:55
|
если еще нужно )
(137) просто в файлике, который так и называется xpdfrc, такая строчка, у меня там в этом конфиге больше ничего нет - я выкладывал его в архиве. (138) лежать он должен прямо там где экзешник. |
|||
163
sttt
25.08.11
✎
13:56
|
(162) он и в командной строке нормально работает
pdftotext -enc UTF-8 -layout n2.pdf вот как получить в кодировке cp1251? |
|||
164
Smallrat
25.08.11
✎
14:10
|
(163) вот что написано в sample-xpdfrc
# Choose a text encoding for copy-and-paste and for pdftotext output. # The Latin1, ASCII7, and UTF-8 encodings are built into Xpdf. Other # encodings are available in the language support packages. #textEncoding UTF-8 на сайте лежит Xpdf: Cyrillic support package If this package includes CMap files, they contain their own copyright notices and distribution conditions. All other files in the package are Copyright 2002 Glyph & Cog, LLC, and are licensed under the GNU General Public License (GPL), version 2 or 3. This package provides support files needed to use the Xpdf tools with Cyrillic PDF files. Contents: - Bulgarian character names - KOI8-R encoding ftp://ftp.foolabs.com/pub/xpdf/xpdf-cyrillic.tar.gz то бишь будет KOI-8 как прикручивать там написано - надо внести строчки в xpdfrc |
|||
165
sttt
25.08.11
✎
14:13
|
(164) еще не смотрел, но качал этот файл. еще один момент хочу найти, как ему сказать чтоб собака поля таблицы нужным разделителем конвертировал ))
|
|||
166
Smallrat
25.08.11
✎
14:15
|
(165) было бы круто. но по-моему никак не скажешь - таблица в пдф это такая условная штука - текст просто стоит в разных местах а сверху нарисована графикой сетка.
|
|||
167
sttt
25.08.11
✎
14:17
|
(166) да он тупо пробелами заменяет, возни больше
|
|||
168
sttt
25.08.11
✎
14:18
|
причем если команду дать -raw то сжимает все пробелы до одного )
|
|||
169
sttt
25.08.11
✎
14:19
|
вот есть такая команда:
-fixed number Assume fixed-pitch (or tabular) text, with the specified charac- ter width (in points). This forces physical layout mode. |
|||
170
andrewks
25.08.11
✎
14:19
|
(163) на, лови.
у меня получилось сразу в 1251 конвертить, надо только таблицу соответствующую прикрутить |
|||
171
sttt
25.08.11
✎
14:22
|
где ловить?! ))
|
|||
172
andrewks
25.08.11
✎
14:22
|
кстати, заметил хрень.
иногда pdftotext.exe "проглатывает" часть текста. так что будь настороже |
|||
173
andrewks
25.08.11
✎
14:22
|
(171) :)))
http://zalil.ru/31605183 |
|||
174
sttt
25.08.11
✎
14:23
|
все получил
|
|||
175
sttt
25.08.11
✎
14:27
|
(173) с твоей кодировкой, таблица вообще... хрень полная ))
|
|||
176
sttt
25.08.11
✎
14:28
|
кажись понял как заставить конвертировать в нужные разделители )) в карте нужные символы на нужные поменять
|
|||
177
andrewks
25.08.11
✎
14:29
|
(175) где? выложи пдф-ку посмотреть
или на мыло мойник собака newmail тчк ru |
|||
178
Smallrat
25.08.11
✎
14:31
|
(176) Это какие на какие ? )))
А то я бы сильно упростил свой код парсинга - я там запарился колонки выделять, особенно если вдруг текст оказался в колонках близко он просто одинарным пробелом отделяет - попробуй тут разбери где какая колонка. |
|||
179
sttt
25.08.11
✎
14:36
|
(178) если бы знать, но те карты что скинули вообще таблицу изуродовали, вот мысль и пришла что наверное из карт все тянется
|
|||
180
mishaPH
25.08.11
✎
14:39
|
получилось
в (173) -layout забыли. табличка почти норм |
|||
181
andrewks
25.08.11
✎
14:40
|
(175) охренеть, но у меня адобе ридер при простом открытии, и потом сразу (ничего не делаюя) закрытии, твоего файлика, пишет: "Сохранить изменения в ** перед закрытием?"
напоминаю: Ридер! первый раз такое вижу |
|||
182
andrewks
25.08.11
✎
14:41
|
(175) предъява про порчу текста отклоняется
вот выход: http://zalil.ru/31605289 |
|||
183
sttt
25.08.11
✎
14:43
|
(182) да уже разобрались )) в (180)
|
|||
184
sttt
25.08.11
✎
14:44
|
блин, но табуляции нет ((
|
|||
185
andrewks
25.08.11
✎
14:45
|
(180) ничего я там не забыл. я для примера батник скинул, чтобы вы увидели, как таблицу кодировки подключить
|
|||
186
andrewks
25.08.11
✎
14:47
|
(184) возьми за отправную точку, что табуляция - это следующие друг за другом неразрывно пробелы в кол-ве не менее 5-ти штук
|
|||
187
sttt
25.08.11
✎
14:53
|
(186) в нашем случае не меньше трех
|
|||
188
sttt
25.08.11
✎
14:55
|
и есть одна позиция, она так вообще вылетает из строки, переноситься. количество вверху остальное внизу ))
|
|||
189
mishaPH
25.08.11
✎
14:56
|
(188) это итого помоему
|
|||
190
mishaPH
25.08.11
✎
14:56
|
(188) у меня все гладко теперь
|
|||
191
sttt
25.08.11
✎
14:57
|
не не итого:
2 1 11130 ОТ ПАЛЫЧА Торт ТВОРОЖНО-СЛИВОЧНЫЙ 800г ШТ 297,06297,06 18 53,47 350,53 |
|||
192
sttt
25.08.11
✎
14:57
|
но если -row установить тогда нормально
|
|||
193
mishaPH
25.08.11
✎
14:58
|
относительно. 1с понимает строку всеравно сбивает табличку. а бот нотепад показывает ровно. да фиг с ним. распарсим. там элементарно зацепится
|
|||
194
mishaPH
25.08.11
✎
14:58
|
(191) у меня норм
|
|||
195
sttt
25.08.11
✎
14:58
|
да, видимо раз на раз
|
|||
196
andrewks
25.08.11
✎
14:59
|
(191) ничё не выпадает. я тебе выход выслал, смотри ,всё норм
|
|||
197
andrewks
25.08.11
✎
15:00
|
и потом, файл вообще какой-то странный, см(181)
|
|||
198
sttt
25.08.11
✎
15:01
|
(197) да не странный, законный адобовский, возможно версия ридера старая
|
|||
199
andrewks
25.08.11
✎
15:01
|
хотя, иногда бывает на больших текстах, см.(172)
|
|||
200
sttt
25.08.11
✎
15:01
|
(196) я видимо с настройками намудрил
|
|||
201
mishaPH
25.08.11
✎
15:02
|
C:\tmp>c:\tmp\pdftotext.exe -cfg xpdfrc -enc CP-1251 -layout c:\tmp\111.pdf
Syntax Error: Couldn't read xref table Syntax Warning: PDF file is damaged - attempting to reconstruct xref table... Syntax Error: Unterminated hex string Syntax Error: End of file inside array Syntax Error: End of file inside dictionary кстати вот заметил на ругань. конвертит но ругается |
|||
202
sttt
25.08.11
✎
15:04
|
(201) 8( может вот эта таблица... и предупреждает что строка там не завершена
|
|||
203
andrewks
25.08.11
✎
15:04
|
(198) законный, говоришь? а ты когда-нибудь видел в ридере такое: http://savepic.org/2126677.png ?
а версия 1.6, нормальная |
|||
204
sttt
25.08.11
✎
15:05
|
(203) а какая у тебя версия? это вроде отношение имеет к формам, где то читал что с ними проблема
|
|||
205
andrewks
25.08.11
✎
15:07
|
(204)10.1.0.534
|
|||
206
andrewks
25.08.11
✎
15:07
|
кучу файлов уже этой версией пересмотрел, но такого не видел
|
|||
207
mishaPH
25.08.11
✎
15:09
|
(203) а у меня не ругается
|
|||
208
andrewks
25.08.11
✎
15:10
|
(207) какая версия?
|
|||
209
Smallrat
25.08.11
✎
15:11
|
(186) Если текст в колонках будет близко то пробел может оказаться всего один.
Ну и там вообще много приколов будет - особенно если в какой-то из строк будет многострочный текст. |
|||
210
andrewks
25.08.11
✎
15:12
|
(209) шо я могу на это сказать? не жрите кактус, и не организуйте эл.обмен информацией в pdf.
pdf совсем для другого придуман, вообще-то. pdf - это ДОКУМЕНТ. в коммерческом смысле |
|||
211
Smallrat
25.08.11
✎
15:18
|
(210) ага - я тоже это сказал своим и чтобы они позвонили тем кто нам такое присылает и попросили какой-нить другой формат. Они позвонили, те сказали - нам так программа выдает и всё, пришлось жрать кактус. (((
|
|||
212
andrewks
25.08.11
✎
15:20
|
(211) тогда жрите кактус, и не пищите ;-)
|
|||
213
mishaPH
25.08.11
✎
15:21
|
(208) 9я говорит
|
|||
214
mishaPH
25.08.11
✎
15:21
|
(212) не. просто тупо это включается в цену того, что вы окупаете в магазине.
|
|||
215
sttt
25.08.11
✎
15:27
|
да можно исходник на крайний случай перекопать )) если с картами не разобраться
|
|||
216
mishaPH
25.08.11
✎
15:35
|
что самое интересное. виндовый блокнот при открытии правильно расставляет все символы. как будто табличка сохранена.
|
|||
217
sttt
25.08.11
✎
15:37
|
(216) а табы?
|
|||
218
andrewks
25.08.11
✎
15:38
|
(216) подсказка: моноширинный шрифт
|
|||
219
sttt
25.08.11
✎
15:40
|
вот русификация https://translations.launchpad.net/xpdf-intl/trunk/+pots/xpdf
|
|||
220
sttt
25.08.11
✎
15:44
|
вот кусок карты составлять:
http://forum.rudtp.ru/showthread.php?t=36974&p=412925&viewfull=1#post412925 |
|||
221
smaharbA
25.08.11
✎
19:00
|
Надо еще ?
|
|||
222
mishaPH
25.08.11
✎
19:01
|
(221) В принципе решение найдено но если у тебя другой способ то выкладывай. может он проще
|
|||
223
smaharbA
25.08.11
✎
19:05
|
(222) уже писал в первой сотне, если нужно готовое - завтра, ибо лениво
(хотя уже был пост на мисте, по обычию всем интереснее как узнать Родителя) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |