|
v7: Распарсить PDF в TXT | ☑ | ||
---|---|---|---|---|
0
mishaPH
24.08.11
✎
13:45
|
Коллеги, есть задачка.
приходят к нам от 7г континента акты о приеме товара в формате pdf. нужно их распарсить и сравнить с накладными отгрузок им. В общем есть некие конверторы с текстовой строкой чтобы его в текстовый файл затащить а далее обработать. А делал ли кто подобное в 7ке. может есть какая компонента чтобы из 7ки рулить или вообще сразу прочитать пдфку. пдф текстовый не картинка. |
|||
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) уже писал в первой сотне, если нужно готовое - завтра, ибо лениво
(хотя уже был пост на мисте, по обычию всем интереснее как узнать Родителя) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |