Структура данных на datamatrix коде. Генерируем QR и DataMatrix штрих-коды на Web-страницах средствами JavaScript. Закругляемся, точнее заквадрачиваемся

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



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

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

Обзор технологии

Выбор маркитатора – ключевой момент для всей упаковочной линии. Неправильно подобранное оборудование существенно снизит общую производительность и эффективность всего процесса. Существует 2 основные технологии, которые наиболее подходят для промышленной маркировки: термоструйная и лазерная печать. С их помощью можно осуществлять многострочную печать высокого разрешения с возможностью нанесения кодов Data Matrix.

Краткая таблица особенностей каждой технологии маркировки

Термоструйная маркировка Лазерная маркировка
Материал Пористые материалы без водостойкого покрытия Пластик, металл, стекло, картон, фольга, любой вид бумаги
Преимущества - Скорость печати не зависит от сложности маркировки
- Легкое внедрение в готовую производственную линию
- Стоимость оборудования и расходных материалов
- Высокая надежность
- Нанесение печати на упаковку разных форм
- Широкий спектр материалов для печати
- Возможность нанесения печати на неподвижный материал
- Высокая стойкость маркировки
- Высокая контрастность изображения
Недостатки - Особые требования к материалу
- Вероятность "смазывания" маркировки при неправильной организации упаковочно-маркировочной линии
- Для нанесения печати на неподвижную упаковку, требует установка доп. оборудования (направляющих)
- Скорость работы зависит от размера окна печати, сложности маркировки
- Особые требования при установке
- Обязательная установка заграждения для обеспечения безопасности сотрудников
Печать высокого разрешения (включая Data Matrix коды) Да Да
Способы печати - Непрерывная (гофротара, использование web-интерфейса)
- Старт-стопная (бутылки, блистеры, мягкая упаковка)

Во время термоструйной печати изображение формируется мелкими каплями чернил. В основе технологии – нагревание части чернил с помощью резисторов, расположенных под каждым соплом. В случае с «пузырьковой» термоструйной печатью Bubble Jet , в результате образуется пузырек, и капельки чернил «выталкиваются» под воздействием избыточного давления. Краска попадает на материал из картриджа или печатающей головки.

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

Выбирая технологию маркировки необходимо учесть несколько моментов:

  • скорость печати;
  • способ движения упаковки на линии;
  • материал упаковки

Особенности материала для маркировки

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

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

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

В процессе лазерной печати углекислотные или оптоволоконные лазеры выжигают поверхность материала перед нанесением маркировки. При выборе этого вида печати нужно учитывать различные особенности материала:

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

Скорость маркировки

Факторы, влияющие на скорость работы линии термоструйной печати:

  • Разрешение печати (в направлении движения материала)
  • Частота срабатывания (частота включения и отключения резисторов)

Сложность печати и размер кода Data Matrix, напротив, не оказывает никакого влияния на скорость термоструйной маркировки – все сопла работают одновременно, что исключает разницу между нанесением двух или четырех строчек текста. Кстати, эта особенность является одним из преимуществ термоструйной технологии печати. Следовательно, скорость нанесения кода Data Matrix будет точно такой же, как при нанесении, скажем, даты производства или стандартного двухстрочного штрих-кода. Этот момент очень важен, если Вы планируете увеличить объемы производства, сохранив скорость работы маркировочной линии.

  • Особенности материала. Необходимо выяснить, сколько времени (или энергии) потребуется лазеру, чтобы снять верхний слой
  • Размер области печати – важно определить, через какое время лазер начнет взаимодействовать непосредственно с поверхностью упаковки
  • Сложность печати: зависит от размера изображения и скорости его нанесения лазером
  • Частота подачи: в этом случае оценивается расстояние между маркируемыми товарами на линии, время перехода к следующему товару для нанесения изображения.

Фарм производители, как правило, используют два типа лазеров для маркировки: углекислотные (30 Вт) или оптоволоконные (20Вт). Они обеспечивают более высокую скорость печати, по сравнению с термоструйными маркитаторами.

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

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

Подача и перемещение упаковки на линии

И лазерная, и термоструйная технология маркировки подходят для печати высокого разрешения.

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

Использование:

  • Непрерывная печать: маркировка гофротары.
  • Непрерывная печать: маркировка с использованием веб-интерфейса.
  • Старт-стопная маркировка: маркировка бутылок.
  • Старт-стопная маркировка: маркировка мягкой упаковки и блистеров.

Особенности установки на линию

Термоструйная печать

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

Лазерная печать

При установке лазерного принтера на упаковочной линии важно соблюсти несколько правил.

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

Обеспечения безопасности при лазерной маркировке

При выборе системы лазерной маркировки важно учесть такие факторы, как отвод дыма и ограждение области печати. Чтобы обеспечить безопасность персонала, вокруг принтера устанавливают ограждение. Как правило, оно оборудуется закрывающимися дверцами и снабжается предупреждающими знаками. Если же закрытую зону вокруг лазерной установки создать не получается, ее можно оградить специальными защитными экранами. В случае использования углекислотного лазера, применяются панели из акрила или поликарбоната. При использовании оптоволоконных лазеров или лазеров Nd-YAG для защиты применяются панели из листового металла (см. стандарт ANSI Z16.1).

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

Такие вентиляционные системы обеспечивают 3 этапа фильтрации:

  • С помощью грубых фильтров удаляются крупные частицы материала;
  • С помощью воздушных фильтров высоко эффективности НЕРА осуществляется более тонкая фильтрация;
  • Специальный химический фильтр нейтрализует токсичные газы и неприятный запах, выделяемые при маркировке лазером.

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

Существует множество сайтов для создания таких кодов, но мне всегда было интересно, каким же образом текст превращается в набор черных и белых квадратиков? Должен же быть какой-то алгоритм?

При создании Data Matrix нам понадобится обратиться к арифметике полей Галуа и кодам Рида-Соломона. Рассмотрим этот процесс на простом примере.

Прежде всего, посмотрим на структуру матрицы:

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

Возьмем какое-нибудь короткое слово, например, “Habr” (без кавычек) и создадим для него Data Matrix. Процесс состоит из двух этапов: на этапе высокоуровневого кодирования нужно получить последовательность кодов данных и кодов коррекции ошибок, а на этапе низкоуровневого кодирования – изобразить в матрице двоичное представление этих кодов.

Высокоуровневое кодирование


В Data Matrix, как и в QR-коде, используются коды Рида-Соломона над полем Галуа (число 8 выбрано, поскольку каждое кодовое слово занимает в матрице 8 бит). Существует несколько неприводимых многочленов, позволяющих сгенерировать такое поле. Среди них (в десятичном представлении 285, используется для QR-кодов) и (301, используется в Data Matrix).

Для расчетов нам понадобится таблица степеней двойки для каждого элемента поля. Создается эта таблица довольно просто: если показатель степени , то возведение в степень выполняется как обычно. В противном случае , после чего производится побитовое сложение по модулю 2 с десятичным представлением взятого неприводимого многочлена, если . Например, , и т. д.

Необходимо получить кодовое слово

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

Создадим для начала информационный многочлен. Для этого нам понадобится знать, какого размера должна быть матрица, чтобы можно было разместить все информационные коды:


Из таблицы видно, что для кодирования строки из 4х элементов нужно взять матрицу размером 12x12 («полезная» область – 10x10), в которую помещаются 5 кодов данных и 7 кодов коррекции.

Для символов таблицы ASCII код получается следующим образом: C=ASCII value+1. Например, для символа ‘H’ C=72+1=73.

Подряд идущие цифры объединяются в пары, и для них C=N+130, где N – число, полученное в результате группировки. Например, если рядом стоят цифры 2 и 5, то C=25+130=155.

Поскольку элементов у нас меньше, чем должно быть (вместо пяти только четыре), необходимо добавить специальные коды отступа. Первым таким кодом всегда является 129. Последующие коды отступа, до первого кода коррекции ошибок, вычисляются так:

Где
– псевдослучайное число, – номер элемента.

Для слова “Habr” получаем следующую последовательность кодов: 73, 98, 99, 115, 129.

Теперь мы можем записать информационный многочлен:

И домножить его на ( – число кодов коррекции):

Перейдем к созданию порождающего многочлена. Вычисляется он по следующей формуле:

Начинаем перемножать скобки:

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

После перемножения всех скобок и возведения в степень получим:

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

Выполняется деление многочленов в столбик, но с учетом того, что вычитание, определенное точно так же, как и сложение, и умножение выполняются в поле Галуа.

Теперь мы можем записать кодовое слово полностью:

Низкоуровневое кодирование


Каждый из полученных выше кодов представляется в Data Matrix в виде квадрата размером 3х3 ячейки без правого верхнего уголка. 1 здесь соответствует старшему биту, 8 – младшему. Нужно заполнить такими элементами всю матрицу.

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

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

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

Если , то в правом нижнем углу остается «лишний» квадратик размером 2х2, который заполняется так:

Если или , то следует обратить внимание на левый нижний и правый верхний угол, особенно на нумерацию битов.

Код стандарта Data Matrix представляет собой двухмерный матричный код, с помощью которого можно кодировать очень большие объемы данных в компактном пространстве. Его используют в различных целях, в том числе в аэрокосмической промышленности, для маркировки компонентов, в оборонной промышленности, для почтовых отправлений и печатных СМИ.

Спецификации: В коде стандарта Data Matrix можно кодировать до 2335 буквенно-цифровых символов либо — до 3116 числовых. Код состоит из нескольких блоков черных и белых клеток, которые представлены в форме либо квадратного, либо прямоугольного образа. Кроме того, каждый код стандарта Data Matrix имеет как код поиска по периметру, так и образ синхронизации. В коде также можно кодировать символы больших и малых размеров. По краям каждого кода стандарта Data Matrix находится белое поле.

Преимущества: Код стандарта Data Matrix можно считывать даже при его частичном повреждении до 40 % благодаря встроенной системе коррекции ошибок. Также возможно кодировать буквы, числовые данные и другие символы ASCII.

Недостатки: Даже при наличии возможности кодировать множество символов, гораздо больше, чем в большинстве одномерных штрихкодах, код стандарта Data Matrix по-прежнему имеет общее ограничение по количеству символов, и поэтому непрактичен для передачи длинных сообщений.

Похожие штрихкоды:
QR-код — также состоит из блоков черных и белых клеток наряду с образами поиска.

Online Data Matrix Generator is developed based on OnBarcode Barcode Generator for .NET .

OnBarcode also provides the following libraries and components for generating, printing, scanning, and reading Data Matrix barcodes.

Barcode Software & Libraries

OnBarcode provides professional barcode software and libraries for you.

  • Generate Barcode Reporting Services - creating barcodes in SSRS reports with data from database.
  • Generate Barcode Java - generating linear, matrix barcodes in Java class, iReport and other applications.
  • Read Barcode Java - reading barcodes in Java applications using Java class library.
  • Read Barcode .NET - scanning, reading barcodes in .NET WinForms, ASP.NET, C# and VB.NET projects.
  • Read Barcode .NET Samples - tutorial for reading barcodes in .NET applications using C# / VB.NET.
  • Generate Barcode .NET - generate, create barcodes in various .NET projects with barcode control library.
  • Generate Barcode .NET Samples - tutorial for creating barcodes in .NET applications with VB.NET & C# sample codes.
  • Generate Barcode ASP.NET - create, generate barcodes in ASP.NET web form/ website, or add barcodes in aspx/html pages.
  • Generate Barcode ASP.NET Samples - barcode tutorial to create barcodes in ASP.NET web applications with examples.
  • Generate Barcode .NET WinForms Samples - tutorial to generate barcodes in .NET C# or VB.NET windows forms.
  • Generate Barcode C# Samples - tutorial to generate barcodes in .NET projects using Visual C# demo codes.
  • Generate Barcode VB.NET Samples - barcode tutorial to create barcodes in .NET using Visual Basic .NET example codings.

QR Code Software & DLLs

OnBarcode provides reliable & mature QR Code software and dlls for you.

  • QR Code in BIRT - creating, printing QR Code 2D barcode images and resize in Eclipse BIRT Report.
  • Read QR Code in .NET - reading, scanning QR Code bar codes in .NET projects using C# / VB.NET sample code.
  • QR Code in .NET - generating, creating QR Code matrix barcode images in .NET programs easily.
  • QR Code in C# - generating, printing QR Code barcodes in Visual C#.NET applications.
  • QR Code in VB.NET - creating, printing QR Code images in Visual Basic with VB.NET sample codes.

Последнее обновление: 12/06/2011

Штрихкод совершенствовался многократно. Основной задачей модификаций является увеличение объёма шифруемой информации с уменьшением площади самого кода. Если полосковый штрихкод использует одномерную систему кодирования, то двухмерный расшифровывается в по горизонтали и по вертикали. Перед обычным штрихкодом, у двухмерного есть пара весомых преимуществ: существенно больший объём хранимой информации и возможность восстановления до 30% повреждённых данных.

Наибольшее распространение в настоящее время получили стандарты DataMatrix, изобретённый в 1989 году, и QR-код («QuickResponse», т.е. «Быстрый отклик»),разработанный в 1994 году Японской компанией Denso Wave Inc. Ключевое отличие QR над Data Matrix - умение работать с кана символами японского языка.
Двухмерный код может быть нанесен различными способами - струйной печатью, гравировкой, лазером, электролитическими способами и т.д. В зависимости от метода нанесения, код может оставаться на элементе на протяжении всего его цикла использования.


QR-код

QR код - это разновидность матричного кода (2D-barcode), созданная Японской корпорацией Denso-Wave в 1994 году. "QR" - это сокращение от"Quick Response", "Быстрый отклик", этим названием создатели хотели показать, что QR-код позволяет быстро доносить свое содержание до пользователя. QR коды очень распространены в Японии, там они являются самым популярным видом 2D-кодов.
Уже в начале 2000 года QR-коды получили широкое распространение в Японии и других азиатских странах. Вы можете найти их на визитках,журналах, газетах, листовках, плакатах, досках объявлений, продуктах питания, сайтах и т. д. В Европе и Америке тоже стараются не отставать.

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

Емкость QR-кода

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

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

Коррекция ошибок в QR кодах

QR коды используют алгоритм Рида-Соломона(Reed-Solomon) для коррекции ошибок. Это позволяет без проблем считывать коды, которые каким-то образом повреждены - затерты, перечеркнуты, и т.п. QR коды имеют 4 уровня коррекции ошибок, которые отличаются количеством информации для восстановления и соответственно количеством полезной информации,которую можно восстановить при повреждении кода. Уровни коррекции и соответствующие проценты информации, которые возможно восстановить,следующие:

L 7%
M 15%
Q 25%
H 30%

DataMatrix код

Штрихкод DataMatrix, в свою очередь, на 30-60% меньше по площади, чемQR, содержащий идентичные данные.

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

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

Особенности DataMatrix кода:

  • Стандартизация (принят международный стандарт ISO/IES16022, готовится российский стандарт)
  • Большая информационная емкость (более 2000 букв или 3000цифр)
  • Высокая скорость распознавания и декодирования
  • Низкие требования к качеству поверхности, на которуюнаносится метка
  • Распознавание не зависит от фона изображения
  • У символа допускается две формы - квадрат и прямоугольник,это облегчает вписывание метки в имеющееся на изделии пространство

Наиболее распространенное применение DataMatrix - это маркировка небольших объектов, например микросхем, поскольку DataMatrix позволяет закодировать 50 символов в изображении размером 2-3 мм2, который может быть считан без проблем. В общем-то размер кода ограничен только технологически, как и в случае любого другого 2D кода, но поскольку DataMatrix - это открытый стандартизованный код, многие компании его используют для своих целей. Этим можно объяснить его широкое распространение.

Коды DataMatrix состоят из модулей, состыкованных друг с другом. Всегос использованием DataMatrix можно закодировать до 3116 символов ASCII.Коды должны содержать четное количество модулей по вертикали и горизонтали. Большинство DataMatrix-ов квадратные, но в целом можно использовать и прямоугольные коды. Все коды используют коррекцию ошибок стандарта ECC200, который, в свою очередь, использует алгоритм Рида-Соломона(Reed-Solomon) для кодирования/декодирования данных. Это позволяет восстановить в случае повреждения кода до 30% полезной информации. DataMatrix коды постепенно становятся привычным явлением на конвертах и посылках. Код может быть быстро прочитан сканером, что позволяет отслеживать корреспонденцию довольно эффективно

В промышленности DataMatrix применяют для маркировки различных элементов.

Microsoft Tag

Microsoft Tag представляет собой двухмерный цветной штрихкод (High Capacity Color Barcode). В отличии от QR и DataMatrix-кодов, этот тип гораздо лучше распознается. Даже расфокусированный код (часто камеры мобильных телефонов без автофокуса) можно прочесть.

Microsoft Tag хранит собственный номер длиной 13 байт + 1 контрольный бит. Программа распознавания отправляет этот номер на сервер, которые выдает хранимую в этом коде информацию.

Плюсы Microsoft Tag, по сравнению с QR и DataMatrix-кодами

  • Хранят больше информации на том же физическом размере
  • Информацию содержат только небольшие кружочки в центрах треугольников и концы синхронизационных линий. Поэтому возможны Microsoft Tag и с рисунками.
  • Можно проследить сколько пользователей "прочли" код (благодаря статистике Live)

Минусы Microsoft Tag, по сравнению с QR и DataMatrix-кодами

  • Требуется подключение к интернету (т.к вся информация, зашифрованная в коде, находится на серверах Microsoft Tag)
  • Необходимо цветное печатающее устройство (хотя возможно создать и черно-белый код)

Создание своего кода доступно (необходима учетная запись Windows Live).

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

Создание своего кода

Создать QR-код с любой текстовой информацией можно несколькими способами:

1) Через онлайн-сервисы

Наиболее простой и удобный способ. Просто заходите на специальный сайт, выбираете тип кода (QR или DataMatrix), выбираете,что будет содержать код (просто текст, адрес интернета, адрес e-mail, визитную карточку, размер кода).

Чтение кода

Расшифровать двухмерный код можно:

1) Через мобильный телефон

Для платформы Symbian 9.x (.sis приложения):

NokiaBarCode Reader (Nokia N79, N82, N93, N93i, N95, E66, E71,E90, 6220 Classic, Nokia N78, 6210 Navigator, N96 и другие)