Имя: Пароль:
1C
1C 7.7
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
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
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) уже писал в первой сотне, если нужно готовое - завтра, ибо лениво
(хотя уже был пост на мисте, по обычию всем интереснее как узнать Родителя)