|   |   | 
| 
 | 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) уже писал в первой сотне, если нужно готовое - завтра, ибо лениво
  (хотя уже был пост на мисте, по обычию всем интереснее как узнать Родителя) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |