Конвертирование PDF с этикетками Datamatrix от ЦРПТ

0. 2756 15.10.20 11:30 Сейчас в теме
Обработка для конвертирования файлов PDF с этикетками, которые генерирует личный кабинет Честного Знака ЦРПТ для маркировки товаров, в текстовый файл с кодами. Префикс не сохраняется, разделители сохраняются.
UPD 06.11.2020. Добавлены настройки для более сложных этикеток. Добавлена предустановка для обычной этикетки для категории Обувь.
UPD 10.11.2020. Исправлена ошибка для pdf с полями.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Rustig 1609 15.10.20 12:11 Сейчас в теме
(0) интересно конечно придумано, но еще более интересно "для каких задач пригодится" - какие сценарии работы?
2. anig99 2756 16.10.20 09:21 Сейчас в теме
(1) ЦРПТ убирает получение кодов для этикеток в формате csv. Остается только или API, или PDF, или задание на печать. Пригодится только тем, кто экономит и у них нет софта, который умеет работать с API через ЦРПТ. В специализированных чатах иногда проскакивают запросы на такую штуку. С отменой csv такие запросы посыплются пачками.
3. Rustig 1609 16.10.20 11:03 Сейчас в теме
(2) зачем отменять цсв?
я бы закинул запрос в ЦРПТ , чтобы разрешили получать коды повторно в любом формате - думаю танцев с бубном станет меньше.
4. anig99 2756 22.10.20 11:37 Сейчас в теме
(3) Фиг знает. Это их решение. Им по поводу этого уже писали, но они не поменяли планов.
5. Rustig 1609 22.10.20 11:43 Сейчас в теме
(4) значит самый гибкий формат - это джейсон и цсв - в них и надо выгружать коды марок, потом делай с ними что хочешь опять-таки без танцев с бубнами
я к примеру, это сразу понял, и только цсв выгружаю, а вот поставщики обратились к айтишникам на аутсорсе, которым это фиолетово, и продолжают в пдф выгружать марки
6. anig99 2756 22.10.20 14:42 Сейчас в теме
(5) ЦРПТ хочет заменить csv на api.
7. Rustig 1609 22.10.20 15:02 Сейчас в теме
(6) вот это новость! а есть детали? когда например? и для какой торговой группы?
8. anig99 2756 23.10.20 10:36 Сейчас в теме
(7) Письмо было от ЦРПТ ещё 25 августа.
Прикрепленные файлы:
user635667; Rustig; +2 Ответить
9. Rustig 1609 23.10.20 11:14 Сейчас в теме
10. user739170 05.11.20 23:20 Сейчас в теме
Здравствуйте, скачал обработку, но никак не могу настроить считывание кодов. Система всегда выдает - Ошибка: Не найден ШК. Понимаю, что не верно настроил параметры этикетки. Поэтому вопросы: Этикетки в один столбец в 6 строк. как указать ширину этикетки? Ширину и высоту надо указывать до левого верхнего края этикетки (рамки) или самого ШК в этикетке?
14. anig99 2756 07.11.20 11:02 Сейчас в теме
(10) обновил обработку для более сложных случаев, когда ДМ не по середине. Инструкция в описании обработки и в публикации. Если что непонятно или не получается, то напишите в личку.
11. dve_utki 06.11.20 13:57 Сейчас в теме
Java обязательно нужно ставить? совсем никак без нее? сил уже нет
12. anig99 2756 06.11.20 14:05 Сейчас в теме
(11) Да. Обязательно. Бесплатные утилиты для работы с pdf и DM написаны авторами на javascript.
13. user739170 06.11.20 14:51 Сейчас в теме
(12)

Вы не могли бы ответить мне на вопросы? Очень нужно.
16. user604151_5107020 09.11.20 13:37 Сейчас в теме
(13) У меня ровно то же самое, как на изгалялся - пишет ШК не обнаружен
17. anig99 2756 09.11.20 21:44 Сейчас в теме
(16) написал в личном сообщении почту, на которую можете прислать образец pdf. Подберу параметры для распознавания.
19. M_W_W 13 10.11.20 18:56 Сейчас в теме
Добрый день!
Проблемы аналогичные...
Тоже "белые тапочки", будь они не ладны...

По вопросу - "зачем - ?" могу прояснить... Клиенты не далекого ума, скачали PDF-ки для маркировки остатков, еще в начале марта, когда можно было скачать и нормальные файлы. Ну, с дуру показалось им - "если файл зрительно похож на то, что надо напечатать - значит он и нужен"... Напечатай, говорят... А то, что файл в PDF, отдельными страницами, где на каждой в одну колонку 6 этикеток, им и не вдомек... И крутись как хочешь. В каждом файле - 500 этикеток. Таких файлов куча.
Учитывая, что у клиента только обычная термо-Зебра, печатать на нее смысла не вижу - выгорит до не читаемого состояния за пару месяцев... Да и эти PDF-ки на нее не пошлешь, тоже без преобразования не обойтись. Решил, что проще всего печатать на самоклеющиеся этикетки формата А4, под обычный лазерный принтер. Там надо три колонки по 7 строк, 21 этикетка на странице.
Ну, один файл я конечно в Акробате привел в порядок, копипастами и удалением лишних страниц, минут 40 наверное, не засек... Но, их куча... Обезьянья работа. Поэтому, если будет возможность получить строками ШК, то элементарно написать обработку для печати этикеток(в принципе - и готовые есть), в которой можно будет задать нужное количество строк/колонок...
Теоретически, скорее всего, можно что-то типа макроса написать, для форматирования этих файлов в нужное количество строк/колонок... Но, я этого не умею, хоть в Акробате, хоть в Екселе, это не 1С...

Проблема с сабжевой обработкой - PDF-ки конвертирует в JPG нормально, настраиваю все размеры/координаты как описано(может и ошибаюсь, х.з.???), а дальше - ничего не происходит, долго моргают cmd окошки, и в табло пишет ШтрихКод не найден...
Один в один как в (16), (17)... Видимо и файлы у нас одинаковые.
Напишите почту в личку, вышлю JPG... Если сможете сделать настройки под такие файлы - думаю многим пригодится...
21. anig99 2756 10.11.20 22:14 Сейчас в теме
(19) Попробуйте эти. Только количество строк на 6 исправьте.
Прикрепленные файлы:
20. M_W_W 13 10.11.20 19:42 Сейчас в теме
22. M_W_W 13 10.11.20 23:47 Сейчас в теме
(21) Да, все отлично работает. Супер, то, что нужно!
Спасибо!
25. dplsoft 11.11.20 02:25 Сейчас в теме
исправил, и структурировал для тех, кто хочет запускать в консоли:

(в исходном описании аргументы для запуска из командной строки указаны не верно.(нет библиотеки core,jar в параметрах, порядок аргументов скорее всего не верен (URI до файла должен идти в начале (кажется)) + нет описания аргументов для --crop параметра. нет аргументов для путей до джавы.)

и еще: это скрипт который позволяет разобрать один штрихкод в одном pdf-файле, в заданной позиции.
используйте этот скрипт для понимания того, что и как происходит в консоли при запуске java


rem ---[ общие настройки джавы ]------------------------------------------------------------------------------------------------------
rem исправьте на пути до вашей джавы. можно не исправлять и не устаналивать, если у вас эти пути прописаны в путях.
set JAVA_HOME=D:\_bin\OpenJDK\java-se-8u41-ri
set JRE_HOME=D:\_bin\OpenJDK\java-se-8u41-ri

rem ---[ шаг 1 ]------------------------------------------------------------------------------------------------------
rem исправьте на путь до каталога с pdf
set wrkdir=D:\path1\to\work
set jarlibsdir=D:/path2/to/jars/

cmd /C java -jar %jarlibsdir%\pdfbox-app-2.0.21.jar PDFToImage -dpi 200 %wrkdir%\file.pdf || pause

rem ---[ шаг 2 ]------------------------------------------------------------------------------------------------------
set jarlibs=%jarlibsdir%/javase-3.4.1.jar;%jarlibsdir%/jcommander-1.78.jar;%jarlibsdir%/core-3.4.1.jar 

rem исправьте файл на тот который вы получили на шаге 1
set jpgfileuri=file:///%wrkdir%/file.jpg

rem                left top width height - позиция баркода который надо распознавать
set barcodePosition=259 27 182 182

cmd /C java -cp %jarlibs% com.google.zxing.client.j2se.CommandLineRunner %jpgfileuri% --dump_results --possible_formats DATA_MATRIX --try_harder --crop %barcodePosition% || pause


Показать
26. anig99 2756 11.11.20 07:19 Сейчас в теме
(25) странный комментарий. Или всё, что написано курсивом - это к исходнику скрипта ниже, а не к моим строчкам вызова? Приведенный скрипт, как по мне, избыточен для отладки и недостаточен для боевого применения. Но комментарии в коде полезны.
29. dplsoft 11.11.20 18:38 Сейчас в теме
мой пост это относится к командам запуска jar без 1с.
приводимые в тексте публикации команды консоли не позволяют запустить jar-файлы.

в частности, все что я описал - это исправление и разжевывание команды из текста публикации .
(проверил - сейчас вижу все 3 библиотеки в -cp аргументе. странно. беру сои слова про нерабочесть команды обратно. виноват, ошибся. )

Так же - для консольных команд вы нигде не приводите аргументы для параметра --crop, что может несколько путать тех, кто хочет разобраться.

Мой код можно использвоать для диагностики, что у человека вообще все настроено корреткно, есть джава, и он правильно понимает что надо и где извлекать из картинки; так -же это пример для разработчиков java , и пользователей zxing если таковые на данный пост наткнутся.

внутри же самой 1с-обработки (как минимум в версии 1.0.0 ) у вас порядок аргументов указан более-менее верно, насколько я могу судить.

из будущих доработок я бы преложил добавить в меню обработки возможность ввести пути расположения java (вернее содержимое переменных JAVA_PATH и JRE_HOME) и пути до jar файлов (у вас оно кажется было захардкожено).

пути java надо явно указывать, или хотя бы проверять что у вас есть оба эти значения потому что после установки OpenJDK например эти переменные самостоятельно не устанавливаются, и у тех, кто "вроде установил" java - оно работать не будет.

а пути до jar файлов нужны что бы не править обработку если на системе нет возможности создать захардкоженные каталоги - например потому что нет диска С.
31. anig99 2756 12.11.20 07:25 Сейчас в теме
27. user635667 107 11.11.20 07:33 Сейчас в теме
Здравствуйте. Удивился я конечно что убирают CSV. Я зашел на ЧЗ и заказал марки для одежды. И у меня выскачило уведомление (см. картинку). Прочитав его, я понял что для "Маркировки остатков" оставляют формат CSV. Правильно я понял???
У меня есть публикация https://infostart.ru/public/1179241/ в которой я как раз печатаю марки из csv и txt.
Прикрепленные файлы:
28. anig99 2756 11.11.20 08:43 Сейчас в теме
(27) Получается, что на остатки не убирают. Но потребность в перегоне pdf в csv всё же возникает.
30. M_W_W 13 11.11.20 19:22 Сейчас в теме
Может кому понадобится...
Обработка, правда под 7.7, печатает по текстовому файлу сабжевой обработки, с помощью OcVita, на лист А4, в три колонки по 7 строк.
Делал под обычный лазерный принтер и вот такие наклейки: https://www.citilink.ru/catalog/furniture/izdeliya_iz_bumagi/etiketki_universalny­e/1098857/?utm_medium=cpc&utm_campaign=cities-srch-cat-nz-all_tovary_11&utm_source=yandex&utm_content=|c:55265123|g:4317203181|b:9676951931|k:22531154544|st:search|a:no|s:none|t:premium|p:4|r:|dev:desktop&utm_param1=all_tovary&yclid=6719577134415248054
По любому, лучше чем на термопринтер(термотрансферные далеко не у всех есть). Вполне себе выход из положения.
Прикрепленные файлы:
ПечатьЭтикетокОстатковОбуви.ert
32. M_W_W 13 14.11.20 11:58 Сейчас в теме
Хм... Почему-то с ошибками распознает некоторые ШК...
Вот например:

010290000000053721BuV,qc8iPnadT91802992d96mX88nShRgK6WKz1GsTSpQUE5JTIMvY0QxSqIRK­fxT1z2TZ6C6HXRHDLnPlT3zteNmXms5JhaxbdjRervkpA==

010290000000053721BuV?qc8iPnadT91802992d96mX88nShRgK6WKz1GsTSpQUE5JTIMvY0QxSqIRK­fxT1z2TZ6C6HXRHDLnPlT3zteNmXms5JhaxbdjRervkpA==

Первая строка - то, что распознано из обработки, вторая - то, что со сканера прилетело...
Почти все идеально, отличия только в 22-ом символе - распознан "," со сканера "?" Остальное, все символ в символ совпадает. И таких строк не одна, к сожалению...

Где правда? Сканер Datalogic GD4400, включен в режиме эмуляции COM-порта, так, что раскладки клавы и прочее влиять не должны... Да и вообще, вроде как он правильно работает, у меня нет оснований не доверять ему. В чем может быть проблема? Может DPI больше поставить?
Вообще, обработка похоже "," распознала как русский символ почему-то... Символ "?" находится на той-же клавише клавиатуры, только на латинице. Сканер похоже правильно его прочитал.
Может какой-то параметр надо задать в распознавание, что символы только латинские?
33. M_W_W 13 14.11.20 13:04 Сейчас в теме
Нет, DPI увеличил до 300, ничего не дает.

Похоже, всетаки это сканер неправильно код распознает... Потому как, на печатной форме в PDF-файле, тоже ","... Откуда он "?" берет, х.з.... Видимо, что-то в настройках. Сейчас посмотрел, практически везде "," на "?" заменяет... Фигня какая-то.

Я понимаю, что это к сабжевой обработке уже не относится, но может кто-то подскажет, что это за настройка?
Попробовать другой сканер? Есть несколько похожих Datalogic, только 2430...
34. M_W_W 13 14.11.20 13:26 Сейчас в теме
Попробовал... 2430, точно так-же "?" вместо "," передает...Ерунда какая-то :-(
35. M_W_W 13 14.11.20 14:03 Сейчас в теме
Кстати, сканировал телефоном в приложении честного знака, все правильно сканируется, с ",", никакого "?", и проверку в ЧЗ проходит. Так, что к распознаванию - вопросов нет, все правильно работает.
Однозначно "дурит" сканер... Куда копать? Настройки? Прошивки?
36. anig99 2756 14.11.20 15:51 Сейчас в теме
(35) А в какой софт сканируете? Punto Switcher не стоит? При сканировании какой язык стоит? Основную локаль ОС пробовали на англ менять? Обратиться к производителю сканера можно ещё.
37. M_W_W 13 14.11.20 16:50 Сейчас в теме
Все, разобрался, отбой... Всем пардон, за то, что в заблуждение ввел. Там просто запятая видимо русская, а у меня, в 1С, в той обработке, где я ловил этот считанный ШК "на посмотреть", была функция "ЗаменитьРусскиеБуквыНаАнглийские(ШкАМ)" прежде чем вывести считанный ШК в поле, где я его смотрел... Соответственно, она русскую запятую преобразовывала в знак вопроса...
Я уже не помню, для чего я делал эту функцию, но, скорее всего для возможности считать алкогольную акцизку клавиатурным сканером, не переключая раскладку клавиатуры. Это обработка получения АлкоКода из ШтрихКода старой акцизки, в данном случае я ее использовал просто для просмотра того, что со сканера в СОМ-порт прилетает, лень что-то специально писать было... Вот эта функция и сыграла злую шутку, я про нее забыл и думал, что она просто выводит отсканированный код в поле, а она зараза, преобразовывала его, прежде чем показать...
38. user1470473 18.11.20 11:57 Сейчас в теме
ПИшет ШК не обнаружен, помогите с параметрами?
Перепробовал разные размеры((
Оставьте свое сообщение
Вопросы с вознаграждением