Какие-нибудь хорошие ресурсы для начала работы с программированием штрих-кода? - PullRequest
20 голосов
/ 27 января 2009

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

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

Есть ли какие-нибудь полезные ресурсы, чтобы помочь кому-то начать программирование штрих-кода?

Ответы [ 9 ]

12 голосов
/ 27 января 2009

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

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

  2. Символы, как правило, определяются спотовыми требованиями, такими как стандарты клиентов, отраслевые стандарты и т. Д. Если это для внутреннего использования, Код 39 обычно считается хорошим значением по умолчанию.

  3. Для печати большинство требований можно решить с помощью лазерного принтера, специального набора этикеток и загружаемых шрифтов. Специальные принтеры также доступны из ряда источников, включая Zebra, Intermec и т.д .; но они стоят дороже, и вам нужно остерегаться фирменной (читай: дорогой) бумаги для печати. ​​

  4. шрифты. Google для «шрифтов штрих-кода» в целом, но удобной альтернативой является Генератор штрих-кода Postscript , который будет печатать практически любые символы в большинстве любых размеров на большинстве любых принтеров Postscript.

  5. Чтение штрих-кодов. Для считывания штрих-кодов с устройства ввода ПК, как правило, это реализуется либо с помощью драйвера устройства, обеспечивающего ваши обычные эквиваленты open / close / read / write / ioctl, либо в качестве суррогатной клавиатуры, встроенной в вашу фактическую клавиатуру, поэтому ввод отображается как нажатия клавиш (опционально с терминальной новой строкой.) Устройства без ПК, очевидно, имеют свои собственные требования к программированию.

5 голосов
/ 27 января 2009

Я проделал большую работу со штрих-кодом.

Есть две стороны, с которыми вам придется познакомиться.

Создание / печать штрих-кодов

Это будет включать использование определенного типа формата штрих-кода. Код 128 обычно самый распространенный, его легче читать для большинства форматов и он печатает самые маленькие штрих-коды. Для печати штрих-кодов формата Code 128 вам потребуется либо шрифт, библиотека, которую вы можете купить (idautomation и т. Д.), И т. Д., Которую вы будете интегрировать в свое программное обеспечение для печати штрих-кода. Код 39 также распространен (и обычно бесплатный). Он печатает действительно широкие штрих-коды, хотя по мере того, как ваши данные будут штрих-кодами, становится больше.

Если вы собираетесь печатать этикетки со штрих-кодами, вы можете заглянуть в принтеры Zebra. У них есть отличный встроенный язык программирования (ZPL), который позволяет вам генерировать все типы штрих-кодов без необходимости покупать шрифты или библиотеки.

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

Чтение / Использование штрих-кодов

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

Еще одна вещь, которую вы могли бы сделать, это купить мобильный сканер под управлением операционной системы Palm или Windows CE / Mobile, например, созданный Symbol, psion teklogix и т. Д. Они могут быть настроены для запуска части интегрированного программного обеспечения для получения и доставки систем. это будет управлять вашим рабочим процессом.

Я обнаружил, что жизнь намного проще, если не заново изобретать колесо. Я использовал все упомянутые выше продукты и обнаружил, что они хорошо интегрируются. Есть также несколько превосходных библиотек Java-штрих-кодов, которые бесплатны, я уверен, что вы найдете что-то и для .NET. Дайте мне знать, если у вас есть другие вопросы.

3 голосов
/ 27 января 2009

Если вы идете с дешевыми считывателями штрих-кода, используйте Code128 . Он может кодировать практически произвольные длины чисел и / или текста (числовой контент запрашивается только на 50% меньших штрих-кодов).

Если вы хотите использовать камеры / телефоны для декодирования штрих-кода, используйте datamatrix . Вы можете поместить около 1 КБ данных в штрих-код матрицы данных. (Правка 2015: кажется, что QR-код медленно убивает матрицу данных. Поэтому используйте QR-код вместо матрицы данных.)

В Википедии есть очень приличное освещение темы штрих-кодов .

Бесстыдный плагин: Если вас интересует способ кодирования и декодирования штрих-кодов, вы можете взглянуть на бесплатную библиотеку Python huBarcode , которая реализует наиболее распространенные схемы штрих-кодов в чистом Python. Опубликовано моей компанией.

Чтение штрих-кодов чрезвычайно просто, поскольку сканер имитирует клавиатуру. Так что вам просто нужно сканировать, а не печатать. У нас есть несколько внутренних веб-приложений, которые используются на ПК, оснащенных только сканерами и трекболом - без клавиатур. Для такой настройки специальных драйверов не требуется.

3 голосов
/ 27 января 2009

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

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

2 голосов
/ 08 мая 2009

Я разработал Wallet Zero для iPhone Wallet Zero Home Page , который генерирует штрих-коды, которые совпадают с кодами на картах лояльности. Работая над этим, я нашел несколько хороших ссылок и ресурсов (некоторые уже упоминались другими):

2 голосов
/ 27 января 2009

Существует множество различных форматов для штрих-кодов.

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

1 голос
/ 27 января 2009

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

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

0 голосов
/ 08 мая 2009

Вы должны проверить CueCat .
: -)

0 голосов
/ 27 января 2009

Поскольку вы не указали ни одного языка, вам следует взглянуть на главу 12 из Real World Haskell

Это может быть не совсем то, что вы хотите, но может быть интересно / полезно.

...