java сканер штрих кодов

Работа со сканером штрихкодов

Нужен код или название библиотеки, желательно бесплатной, для работы со штрих-кодом.

Есть USB Wi-fi сканер. Нужно как-то добавлять и удалять штрих код товара из БД в mySQL. БД уже есть.

Штрих-код планирую там хранить как VARCHAR(25). Ну это мелочи.

Еще надо генерировать штрих-код нового товара. Или новый штрих-код, не знаю как понятнее написать.

Он должен быть уникален для магазина, а вообще хотелось бы, что бы он был валидный на мировом рынке. Ну то есть если его, этот товар, потом отправить куда-то. То чтобы он был корректный на рынке. Там было распознана корректно информация о товаре, поставщике (ФОП «Бла-бла-бла» и др.).

Я понимаю, что можно же сгенерировть уникальный код для этого склада. Но штрих коды же уникальны на весь мир.

Только вот еще вопрос: я пишу сервер на java ee. Бизнес-логика тоже на ней.

Но. дело в том, что сам доступ к учету будет через сайт. Схема такая:

Поэтому нужно как-то, чтобы наверно нажатие сканера отлавливала отдельная утилита, на java ee. Или что-то такое крутилось на сервере. Я хочу просто как-то сделать все так, чтобы был сервер на java ee. И сайт. Доступный в мировой сети.

Сервер будет прямо на складе стоять.

Отдельных программ учета, работы со сканером, делать не хочется. То есть вся эта лабуда на java ee должна постоянно крутиться на сервере. И запускаться и останавливаться с его запуском. Можно как-то это сделать?

А на сайте будет возможность просматривать состояние склада.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Источник

Android SDK: создание сканера штрих-кода

В этом руководстве мы будем использовать библиотеку ZXing (Zebra Crossing) для сканирования штрих-кодов в приложении Android. Мы будем обращаться к ресурсам этой библиотеки с открытым исходным кодом в нашем приложении, получая и обрабатывая возвращенные результаты.

Премиум-вариант: QR-код и считыватель штрих-кодов

Если вы ищете ярлык, вы можете найти несколько готовых QR-кодов и считывателей штрих-кодов для приложений Android на Envato Market.

Например, QR-Code & Barcode Reader использует камеру мобильного устройства для считывания штрих-кодов и QR-кодов.

Программа автоматически распознает тип закодированных данных, обеспечивая приятный предварительный просмотр и различные параметры обмена. Он добавит новый контакт, если QR-код является визитной карточкой, или отправит SMS или позвонит кому-либо, в зависимости от закодированных данных. Выбор поисковой системы идеально подходит для поиска товаров в Интернете, сравнения цен и обзоров.

Функции автоматизации, такие как режим массового сканирования или автоматическое действие, открывают широкие возможности для интеграции предприятия. Для компиляции проекта требуется библиотека сканирования штрих-кодов с открытым исходным кодом zBar, которая, как утверждается, является самой быстрой среди других доступных на рынке и включена здесь.

Вы можете найти в Envato Market другие варианты, чтобы помочь вам, или получить приложение для Android, разработанное в Envato Studio. В противном случае, читайте подробные пошаговые инструкции по созданию считывателя штрих-кода самостоятельно.

1. Создайте новый проект Android

Шаг 1

В Eclipse создайте новый проект Android. Введите выбранное вами приложение, проект и имена пакетов. Позвольте Eclipse создать для вас пустое мероприятие с именем по вашему выбору как для занятия, так и для его макета.

java сканер штрих кодов

Шаг 2

После кнопки добавьте два текстовых представления, в которые мы выведем информацию о сканировании.

Добавьте текстовую строку кнопки в ваш XML-файл » res / values ​​/ strings «.

2. Добавьте ZXing к вашему проекту

Шаг 1

ZXing — это библиотека с открытым исходным кодом, которая предоставляет доступ к проверенному и функциональному сканированию штрих-кода на Android. Многие пользователи уже установили приложение на своих устройствах, поэтому вы можете просто запустить сканирование Intents и получить результаты. В этом уроке мы будем использовать метод « Сканирование через намерение», чтобы упростить сканирование. Этот метод включает импорт нескольких классов в ваше приложение и позволяет ZXing позаботиться о случаях, когда у пользователя не установлен сканер. Если у пользователя не установлен сканер штрих-кода, ему будет предложено загрузить его.

Совет: Поскольку ZXing является открытым исходным кодом, вы можете полностью импортировать исходный код в свои проекты. Тем не менее, это действительно целесообразно, только если вам нужно внести изменения в его функциональность. Вы также можете скомпилировать проект и включить его JAR-файл в свои собственные приложения, если хотите. В большинстве случаев использование сканирования через намерение — это надежный и простой в реализации вариант, плюс ваши пользователи будут иметь доступ к самой последней версии приложения ZXing.

В Eclipse добавьте новый пакет в свой проект, щелкнув правой кнопкой мыши папку « src », выбрав « Новый », затем « Пакет » и введя « com.google.zxing.integration.android » в качестве имени пакета.

java сканер штрих кодов

Шаг 2

Eclipse предлагает несколько способов импортировать существующий код в ваши проекты. Для целей данного руководства вам, вероятно, будет проще всего создать два обязательных класса и скопировать код из ZXing. Щелкните правой кнопкой мыши новый пакет, выберите « Новый », затем « Класс » и введите « IntentIntegrator » в качестве имени класса. Вы можете оставить другие настройки по умолчанию такими, какие они есть. Создав этот класс, сделайте то же самое для другого класса, который мы будем импортировать, указав ему « IntentResult » в качестве имени класса.

java сканер штрих кодов

Источник

Генерация штрих-кодов и QR-кодов на Java

В Java есть несколько библиотек, которые мы можем использовать для генерации штрих-кодов или QR-кодов. Здесь мы рассмотрим, как их использовать и интегрировать в веб-приложение.

1. Обзор

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

В этом уроке мы рассмотрим, как генерировать наиболее распространенные типы штрих-кодов в Java.

Во-первых, мы узнаем о внутреннем устройстве нескольких типов штрих-кодов. Далее мы рассмотрим наиболее популярные библиотеки Java для генерации штрих-кодов. Наконец, мы увидим, как интегрировать штрих-коды в наше приложение, обслуживая их из веб-службы с помощью Spring Boot.

2. Типы штрих-кодов

Штрих-коды кодируют такую информацию, как номера продуктов, серийные номера и номера партий. Кроме того, они позволяют таким сторонам, как розничные торговцы, производители и транспортные поставщики, отслеживать активы по всей цепочке поставок.

Мы можем сгруппировать множество различных символов штрих-кодов в две основные категории:

2.1. Коды UPC (Универсальный код продукта)

UPC-коды являются одними из наиболее часто используемых 1D-штрих-кодов, и мы в основном находим их в Соединенных Штатах.

UPC-A-это только цифровой код, содержащий 12 цифр : идентификационный номер производителя (6 цифр), номер изделия (5 цифр) и контрольную цифру. Существует также код UPC-E, который имеет только 8 цифр и используется для небольших пакетов.

2.2. Коды EAN

Код EAN-13 является наиболее часто используемым стандартом EAN и аналогичен коду UPC. Он состоит из 13 цифр — ведущего “0”, за которым следует UPC-код.

2.3. Код 128

Штрих-код Code 128-это компактный линейный код высокой плотности, используемый в логистической и транспортной отраслях для заказа и распределения. Он может кодировать все 128 символов ASCII , и его длина является переменной.

2.4. PDF417

PDF417-это сложенный линейный штрих-код, состоящий из нескольких 1D штрих-кодов, уложенных один на другой. Следовательно, он может использовать традиционный линейный сканер.

Мы можем ожидать, что найдем его в различных приложениях, таких как проездные (посадочные талоны), идентификационные карты и управление запасами.

PDF417 использует исправление ошибок Рида-Соломона вместо контрольных цифр. Это исправление ошибок позволяет символу выдержать некоторое повреждение, не вызывая потери данных. Однако он может быть большим по размеру – в 4 раза больше, чем другие 2D-штрих-коды, такие как Datamatrix и QR-коды.

2.5. QR-коды

QR-коды становятся наиболее широко признанными 2D-штрих-кодами во всем мире. Большое преимущество QR-кода заключается в том, что мы можем хранить большие объемы данных в ограниченном пространстве.

Они используют четыре стандартизированных режима кодирования для эффективного хранения данных:

Кроме того, они гибки по размеру и легко сканируются с помощью смартфона. Подобно PDF417, QR-код может выдержать некоторые повреждения, не вызывая потери данных.

3. Библиотеки штрих-кодов

Мы собираемся исследовать несколько библиотек:

Barcode4j также является библиотекой с открытым исходным кодом. Кроме того, он предлагает форматы 2D – штрих – кодов, такие как DataMatrix и PDF417, и другие форматы вывода. Формат PDF417 доступен в обеих библиотеках. Но, в отличие от Barcode4j, Барбекю считает его линейным штрих-кодом.

ZXing (“пересечение зебры”)-это многоформатная библиотека обработки изображений штрих-кодов с открытым исходным кодом 1D/2D, реализованная на Java, с портами на другие языки. Это основная библиотека , которая поддерживает QR-коды на Java.

Библиотека QRGen предлагает простой API генерации QR-кода, построенный поверх ZXing. Он предоставляет отдельные модули для Java и Android.

4. Генерация Линейных Штрих-Кодов

Давайте создадим генератор изображений штрих-кодов для каждой библиотеки и пары штрих-кодов. Мы получим изображение в формате PNG, но мы также можем использовать другие форматы, такие как GIF или JPEG.

4.1. Использование библиотеки Барбекю

Как мы увидим, барбекю предоставляет простейший API для генерации штрих-кодов. Нам нужно только предоставить текст штрих-кода в качестве минимального ввода. Но мы могли бы дополнительно установить шрифт и разрешение (точки на дюйм). Что касается шрифта, мы можем использовать его для отображения текста штрих-кода под изображением.

Во-первых, нам нужно добавить зависимость Барбекю Maven:

Давайте создадим генератор для штрих-кода EAN13:

Мы можем генерировать изображения для остальных типов линейных штрих-кодов аналогичным образом.

Следует отметить, что нам не нужно указывать цифру контрольной суммы для штрих-кодов EAN/UPC, так как она автоматически добавляется библиотекой.

4.2. Использование библиотеки штрих-кодов

Давайте начнем с добавления зависимости Barcode Maven:

Аналогично, давайте построим генератор для штрих-кода EAN13:

4.3. Использование библиотеки ZXing

Здесь нам нужно добавить две зависимости Maven: библиотеку core image/| и клиент Java :

Давайте создадим генератор EAN13:

Здесь нам нужно указать несколько параметров в качестве входных данных, таких как текст штрих-кода, формат штрих-кода и размеры штрих-кода. В отличие от двух других библиотек, мы также должны добавить цифру контрольной суммы для штрих-кодов EAN. Но для штрих-кодов UPC-A контрольная сумма необязательна.

Кроме того, эта библиотека не будет отображать текст штрих – кода под изображением.

5. Генерация 2D Штрих-Кодов

5.1. Использование библиотеки ZXing

Мы собираемся использовать эту библиотеку для создания QR-кода. API аналогичен API линейных штрих-кодов:

5.2. Использование библиотеки QRGen

Во-первых, нам нужно добавить репозиторий jetpack и зависимость QRGen в ваш pom.xml:

Давайте создадим метод, который генерирует QR-код:

6. Создание службы ОТДЫХА

Теперь у нас есть выбор библиотеки штрих-кодов для использования, давайте рассмотрим, как обслуживать штрих-коды из веб-службы Spring Boot.

Мы начнем с RestController :

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

6.1. Генерация штрих-кода UPC-A

Давайте вызовем UPC-веб-сервис, использующий библиотеку барбекю:

6.2. Создание штрих-кода EAN13

Аналогично, мы собираемся вызвать веб-службу EAN13:

А вот наш штрих-код:

6.3. Генерация штрих-кода Code128

В этом случае мы будем использовать метод POST. Давайте вызовем веб-службу Code 128, используя библиотеку барбекю:

Мы предоставим тело запроса, содержащее данные:

Давайте посмотрим на результат:

6.4. Создание штрих-кода PDF417

Здесь мы собираемся вызвать веб-службу PDF417, которая похожа на код 128:

Мы предоставим тело запроса, содержащее данные:

И вот полученный штрих-код:

6.5. Создание штрих-кода QR-кода

Давайте вызовем веб-сервис QR-кода с помощью библиотеки ZXing:

Мы предоставим тело запроса, содержащее данные:

Здесь мы видим силу QR-кодов для хранения больших объемов данных в ограниченном пространстве.

7. Заключение

В этой статье мы узнали, как генерировать наиболее распространенные типы штрих-кодов в Java.

Во-первых, мы изучили форматы нескольких типов линейных и 2D штрих-кодов. Затем мы изучили самые популярные библиотеки Java для их создания. Хотя мы попробовали несколько простых примеров, мы можем изучить библиотеки дальше для более индивидуальных реализаций.

Наконец, мы увидели, как интегрировать генераторы штрих-кодов в службу REST и как их протестировать.

Источник

Распознавание Barcode Android

В данной статье мы будем использовать ZXing (Zebra Crossing), чтобы расшифровать штрихкод в нашем Android приложении.

Используя ZXing, нам не нужно думать о том, что у пользователя нет сканера barcode, так как классы, предоставляемые библиотекой позаботятся об этом. Интегрируя ZXing в наше приложение мы можем предоставить пользователю более простую возможность сканировать шрихкоды, также это позволит нам сфокусироваться на разработке основной части приложения.

Создание нового проекта

Шаг 1

В Eclipse создайте новый Android проект. Введите имя приложения, проекта и название пакета.
java сканер штрих кодов

Шаг 2

Откройте основной шаблон. Eclipse должен был создать стандартный шаблон. Внутри него замените существующий контент на кнопку

После кнопки добавим два текстовых поля, которые будут отображать результаты отсканированной информации.

Добавьте к кнопке текст. Откройте файл res/values/strings

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

Интегрируем ZXing

Шаг 1

ZXing — библиотека с открытым исходным кодом, предоставляющая возможность распознавания штрихкодов на Android. Некоторые пользователи уже имеют установленное приложение ZXing, поэтому достаточно передать ему код и дождаться результатов. В данном приложении мы рассмотрим способ, вызывающий соответствующую функцию другого приложения. Если данное приложение отсутствует у пользователя, то будет выведено предложение скачать его.

В Eclipse добавим новый пакет в Ваш проект. Для этого кликнем правой кнопкой мыши по папке src и выберем «New»->«Package», а затем введем com.google.zxing.integration.android в качестве имени пакета.
java сканер штрих кодов

Шаг 2

Eclipse предлагает несколько способов импортирования существующего кода в проект. В данной статье самым простым методом будет создание двух классов, содержащий код из ZXing. Кликните правой кнопкой мыши по Вашему проекту, выберете «New»->«Class» и введите «IntentIntegrator» в качестве названия класса. Остальные параметры Вы можете не изменять. Как только Вы создали класс, проделайте тоже самое, но назовите класс «IntentResult».
java сканер штрих кодов

Скопируйте код из обоих классов библиотеки, а затем вставьте его в созданные классы.
java сканер штрих кодов

Теперь Вы можете подключить файлы в основной класс

Вернемся на минутку и также подключим следующие файлы. Обратите внимание, что Eclipse мог уже их подключить за Вас

Изучите содержание двух классов. Изучив их Вы обнаружите, что они не считывают код. Эти два класса являются просто интерфейсами, предоставляющими доступ к функционалу сканирования.

Сканируем

Шаг 1

Давайте реализуем сканирование, когда пользователь нажимает на нашу кнопку. В главном файле приложения существует метод onCreate, который должен выглядеть примерно так

Перед данной функцией создайте следующие переменные, которые будут хранить нашу кнопку и два текстовых поля, созданных в шаблоне

После существующего кода в onCreate добавьте строки, которые будут инициализировать переменные

Теперь, добавим обработчик нажатия

Расширим класс, чтобы объявить интерфейс OnClickListener

Шаг 2

Теперь, мы можем реагировать на нажатие кнопки началом процесса сканирования. Добавим метод onClick

Проверяем, была ли нажата именно кнопка сканирования

Внутри блока с условием создадим экземпляр класса IntentIntegrator, который мы импортировали

Сейчас, давайте вызовем процедуру, которая начнет сканирование

В данный момент должно начаться распознавание, но только, если у пользователя установлено необходимое приложение. Если его нет, то будет предложено начать загрузку. Результат сканирования будет возвращен приложению.

Обработка результатов сканирования

Шаг 1

Сканер будет запущен, когда нажата кнопка. Затем будет возвращен результат сканирования в метод onActivityResult. Добавим его в наш код

Внутри функции постараемся обработать результат

Шаг 2

Как и любые другие данные, полученные от другого приложения, было бы не плохо проверить, что результат не пуст. Продолжим мы только, если у нас есть правильный результат

Если мы не получили результат сканирования (например, пользователь отменил сканирование), то мы просто выведем сообщение

Вернемся в блок с условием, давайте разберемся с тем, что нам вернула библиотека. Объект Intent Result имеет метод, обеспечивающий получение результата сканирования. Получим результат сканирования, как строку

Также, получим вид barcode

Шаг 3

Теперь, наше приложение имеет всю необходимую для отображения информацию. В нашей статье мы просто отобразим ее пользователю.

Запустите наше приложение на реальном устройстве вместо эмулятора, чтобы увидеть, как работает функционал распознавания штрихкодов. Попробуйте просканировать штрихкод с какой-нибудь книги или любого другого товара.

Результаты сканирования
java сканер штрих кодов

Источник

Как создать приложение для считывания штрих-кода на андроид

[wpanchor этом уроке научимся создавать приложение для чтения штрих-кодов и QR-кодов с использованием стандартной библиотеки Mobile Vision API.

Еще с выпуском Google Play services версии 7.8 разработчики добавили интерфейсы Mobile Vision, которые обеспечивают API для обнаружения штрих-кода. Они считывают и декодируют множество различных типов штрих-кодов, быстро, легко и локально.

Тип Barcode представляет собой единый общепризнанный штрих-код и его значение. В случае 1D штрих-кодов, таких как коды UPC, это будет просто номер, который закодирован в штрих-коде. Его значение доступно в поле rawValue, в то время как тип штрих-кода (то есть его кодировку) можно найти в поле format.

Использование в приложении Mobile Vision API позволяет считывать штрих-коды в любом положении.

Важно отметить, что синтаксический разбор всех штрих-кодов выполняется локально, поэтому вам не нужно использовать соединение с сервером для чтения данных из кода. Например, при считывании линейного штрих-кода PDF-417, который может вместить до 1 КБ текста, можно сразу же получить всю закодированную в нем информацию.

Итак, для разработки приложения нам понадобится:

Создаем новый проект в Android Studio. При создании выбираем шаблон Empty Activity.

На следующем шаге нужно убедиться, что ваше приложение может использовать службы Google Play, в состав которых входит Mobile Vision API. Для этого нужно обновить файл build.gradle вашего проекта.

В секции зависимостей должны быть такие строки. Обновите Gradle при необходимости.

Службы Google Play часто обновляются, и чтобы получить последнюю версию, в Android Studio выберите инструменты > Android > SDK Manager.

Затем найдите строчку для сервисов Google Play и убедитесь, что у вас установлена версия 26 и выше. Если нет — установите компонент.

Теперь создадим пользовательский интерфейс.

В Android Studio выберите папку «res» и откройте ее вложенную папку «layout». Здесь вы увидите «activity_main.xml». Откройте его в редакторе макетов.

Вы можете видеть, что ваш макет содержит текстовое поле

. Нужно изменить макет, как показано ниже. Теперь здесь будет кроме текстового поля также кнопка и изображение. Для всех экранных компонентов прописываем идентификаторы, чтобы потом обращаться к ним в коде.

По нажатию на кнопку будет происходить загрузка и обработка изображения штрих-кода, которое будет отображаться в ImageView. После завершения обработки штрих-кода информация, считанная из него, будет отображаться в TextView.

Обычно приложения для считывания штрих-кодов получают изображение с камеры устройства, или обрабатывают превью камеры. Для реализации этого потребуется достаточно много кода, и в конце урока я покажу пример реализации такого приложения. Чтобы упростить этот пример, мы обработаем готовое изображение qr-кода, которое уже присутствует в вашем приложении.

Вот пример изображения qr-кода, которое вы можете скачать отсюда.

Назовите его qr.png и добавьте в папку проекта res/drawable.Android Studio обеспечит доступ к файлу в качестве ресурса с идентификатором: R.drawable.qr

Теперь перейдем к написанию кода приложения.

В файле MainActivity.java в методе onCreate добавьте следующий код.

Это настраивает обработчик событий (onClick), срабатывающий когда пользователь нажимает кнопку. Остальной код напишем в методе onClick.

Начнем с загрузки изображения штрих-кода. Сначала находим ImageView по идентификатору. Затем используется BitMapFactory для декодирования ресурса R.drawable.qr в растровое изображение. Полученное растровое изображение передаем ImageView.

Далее создаем экземпляр класса BarcodeDetector, используя Builder и настраиваем его на поиск QR-кодов и матрицы данных (есть много других типов штрих-кодов, которые он мог бы найти).

Вполне возможно, что первый раз наш детектор штрих-код сработает, когда служба Google Play еще не будет готова для обработки штрих-кодов. Поэтому мы должны проверить, что наш детектор работает, прежде чем использовать его. Если нет, нам придется ждать окончания загрузки или сообщить пользователям, что нужно найти подключение к Интернету или освободить место на устройстве. Прежде чем мы обратимся к текстовому полю, нужно объявить и найти его выше в методе onCreate.

Теперь допишем метод вывода сообщения.

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

Обратите внимание, что Mobile Vision API способен обнаруживать несколько штрих-кодов в одном кадре. В этом случае массив SparseArray будет заполнен несколькими записями.

Обычно на этом этапе нужно пробежать по массиву SparseArray и обработать каждый штрих-код отдельно. Нужно предусмотреть возможность, что штрих-кодов может быть несколько, или ни одного. В нашем случае мы знаем, что у нас есть только 1 штрих-код, и можем прописать жесткий код для него. Для этого мы берем штрих-код, называемый «thisCode», который будет первым элементом в массиве. Затем присваиваем значение его поля rawValue текстовому полю textView — и все.

Теперь все, что вам нужно сделать, это запустить приложение.

Запускать лучше на реальном устройстве. На эмуляторе работать не будет, потому что на эмуляторах по умолчанию отсутствует сервис Google Play.

Вот приложение запустилось на устройстве, жмем кнопку. Если вы используете изображение штрих-кода qr.png, вы увидите в текстовом поле данные, закодированные в QR-код — это адрес нашего сайта fandroid.info.

Это был простой пример приложения, демонстрирующий работу Mobile Vision API. Но полноценный сканер штрих-кодов должен получать изображение с камеры устройства, или обрабатывать превью камеры.

Разработчики подготовили пример такого приложения на Github, вы можете скачать его код по ссылке.

Клонируйте или скачайте проект, и откройте в Android Studio модуль barcode-reader.

При запуске приложения из этого проекта мы можем увидеть, как оно работает. Первоначально открывается стартовый экран, на котором можно включить автофокус или вспышку. Кнопка считывания штрих-кода запускает камеру. Приложение отслеживает появление штрих-кодов на превью и рисует рамки на обнаруженных штрих-кодах. При нажатии на область обнаруженного штрих-кода превью закрывается, передавая при этом данные обнаруженного штрих-кода в текстовое поле на стартовом экране. Подробнее смотрите в видео.

Это приложение также использует Mobile Vision API. Но при рассмотрении проекта в Android Studio можно увидеть, что кода здесь побольше, чем в нашем простом примере.

Приложение состоит из восьми классов. Три из них отвечают за интерфейс и работу с камерой.

Я не буду в рамках этого урока углубляться в более подробное объяснение кода от разработчиков, а оставлю это вам в качестве домашнего задания. Тем более что код прекрасно документирован, каждый класс и метод содержит комментарии на английском языке. Читать и разбираться в таком коде очень полезно, особенно начинающему разработчику.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *