2010-03-20 1 views
13

Этот вопрос не касается рекомендаций 'best' barcode, мы используем различные продукты на разных платформах и нуждаемся в простом способе проверки правильности заданного штрих-кода (в соответствии с его спецификацией).Где я могу найти «справочные штрих-коды» для проверки вывода библиотеки штрих-кода?

Мы обнаружили случаи, когда штрих-код визуализируется по-разному различными библиотеками штрих-кодов и free online barcode generators в Интернете. Например, новая версия библиотеки отчетов Delphi выводит нечисловые символы в Code128 как «0» или просто пропускает их в текстовой области. Прежде чем мы перейдем к миграции, мы хотим проверить, вызваны ли эти изменения сломанной реализацией в новой библиотеке, поэтому мы можем сообщить об этом как об ошибке для автора.

Нам нужны в основном Code128 и UCC/EAN-128 с подкодами A/B/C.

Интернет-ресурсы я проверил до сих пор являются:

Они также показывают разные результаты, например e в поддержку символов, таких как знаки запятой или плюс, по крайней мере, в человеко-читаемом тексте.

+0

Существуют различные инструменты, которые генерируют штрих-коды для вас; не хватает ли их? – Joey

+1

Мы обнаружили, что они генерируют различные изображения штрих-кода для одного и того же входного значения и того же типа штрих-кода - и не знают, какой из них правильный. – mjn

+0

Можете ли вы перечислить некоторые из этих несоответствий, которые вы нашли? Я не сомневаюсь в вашем нахождении вообще, но это помогает иметь что-то конкретное для анализа. – polygenelubricants

ответ

11

Для Code128 нет ни одного правильного ответа. Если вы используете Code128-A, вы можете получить другой результат, чем Code128-C. В результате я имею в виду, как это выглядит. Например, возьмите «803150». В Code128-A вам понадобится 6 символов (+ start, контрольная сумма, стоп) для представления этого номера. Code128-C состоит только из чисел, поэтому вы можете сжать две цифры в один символ. Следовательно, вам нужно будет всего 3 символа (+ старт, контрольная сумма, стоп) для представления того же номера. Штрих-код будет выглядеть по-другому (A в этом случае длиннее), но если вы их сканируете, то оба будут давать правильный номер.

Кроме того, Code128 не обязательно должен быть просто A, B или C. Фактически вы можете комбинировать разные подмножества. Это распространено для таких случаев, как «US123457890», где Code128-A или B используется для «US», а Code128-C используется для оставшихся цифр. Это когда-то называется Code-128 Auto или просто Code-128. Результатом является «сжатый» штрих-код по ширине. Вы можете представить те же данные с помощью A/B, но снова, что даст вам более длинный штрих-код.

Берут два онлайн-генераторы:

Я рекомендую первый, где вы можете выбрать между Auto/A/B/C. Ниже приведен пример, иллюстрирующий изображение различия:

alt text http://i41.tinypic.com/17bwh3.gif

На IDAutomation, Авто по умолчанию, а А по умолчанию на штрих-кодов-Inc. Оба правильные, вам просто нужно быть осторожным, какое подмножество вы выбрали при сравнении вывода. Я также рекомендую считыватель штрих-кода для использования в разработке для тестирования вывода. Также см. this page для сравнения разных подмножеств с значениями ASCII. Я также нашел grandzebu.net полезным, у которого есть бесплатный шрифт Code128, который вы можете использовать.

Похоже, что ваша библиотека Delphi всегда использует Code128-C, поскольку в этом подмножестве можно представлять числа.

+0

IDAutomation и Barcodesinc показывают разные результаты: например, Barcodesinc не принимает запятую в Code128, тогда как IDAutomation. http://en.wikipedia.org/wiki/Code_128 говорит, что запятая поддерживается в Code128. – mjn

+0

Правда, похоже на ошибку на BarcodesInc. –

0

Почему бы просто не просмотреть их и не увидеть, что возвращается?

+0

Это добавляет больше «переменных»: у сканеров могут быть разные (неверные) конфигурации, например, автоматическое добавление/удаление ведущих/завершающих символов. – mjn