Генерация и считывание штрих-кода

Я создал интернет-магазин для крупной компании, у которой есть офисы в разных странах.

Я хочу сделать следующее

  1. Сгенерируйте штрих-код через PHP перед отправкой посылки в офисы компании в стране
  2. Когда товар будет доставлен в офис страны, работники войдут в свою учетную запись, отсканируют этот штрих-код с помощью считывателя штрих-кода (который находится на упаковке), и веб-сайт автоматически «одобрит» полученный товар.

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


person heron    schedule 25.10.2011    source источник
comment
google для генератора штрих-кода php и используйте соответствующий считыватель штрих-кода, который подключается как HID (поэтому вам нужно только поле ввода текста на вашем веб-сайте), см. stackoverflow.com/questions/3262126/   -  person sled    schedule 25.10.2011
comment
Большинство считывателей штрих-кода имеют настройку эмуляции клавиатуры, при которой считыватель штрих-кода имитирует ввод цифр. Вам нужно установить префикс на считывателе штрих-кода (волшебная строка, которая отправляется до того, как штрих-код будет «введен»), который выберет ваше поле ввода, после чего штрих-код будет автоматически введен в ваше поле штрих-кода.   -  person Johan    schedule 25.10.2011
comment
Выглядит вполне возможно с библиотекой обработки изображений, такой как GD или что-то в этом роде.   -  person Madara's Ghost    schedule 25.10.2011
comment
как читать штрих-код со считывающего устройства и автоматически отправлять данные в веб-форму? Как я могу получить доступ к HID-устройству?   -  person heron    schedule 25.10.2011
comment
Если вы можете работать с QR-кодами, у Google есть для этого API: code.google.com/apis/chart/infographics/docs/qr_codes.html   -  person James    schedule 25.10.2011


Ответы (8)


Итак, вот подход, который может сработать для вас:

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

package_id |    name      |   status

  1234        My Package      shipped

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

Распечатайте штрих-код, поместите его на посылку

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

Отправьте форму, найдите запись в базе данных, измените ее на:

 package_id |     name      |   status
  1234         My Package      delivered

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

person sled    schedule 25.10.2011
comment
Ты получил это! Я заказал сканер штрих-кода на ebay за 20 долларов, который работает нормально, так что не так уж и дорого. И то, что другие люди говорили об «эмуляции клавиатуры», верно. Когда сканер сканирует штрих-код, скажем 1234, это точно так же, как если бы вы сидели и набирали 1-2-3-4. И у большинства есть настройка, которая позволяет вам выбрать, будет ли он автоматически нажимать «ввод» для вас после этого. Так что поместите мышь в текстовое поле, отсканируйте код, и он будет введен в поле, и форма может быть отправлена ​​​​автоматически. - person Sherwin Flight; 03.11.2011
comment
Например, у меня есть экран, где я могу проверить информацию об определенных предметах, все подробности и информацию о нем. Чтобы использовать его, мне приходилось вводить номер в поле вверху страницы и нажимать клавишу ввода, и отображались подробности. Теперь я могу щелкнуть поле, отсканировать код, и информация просто там. он работает везде, где вы можете использовать клавиатуру, поэтому вы можете делать с ним всевозможные вещи (без необходимости, ха-ха), например, кодировать веб-адреса, адреса электронной почты, все, что вы действительно хотите. - person Sherwin Flight; 03.11.2011
comment
приятно :) 20 долларов - это действительно дешево - может быть, я тоже буду использовать штрих-коды для нашего управления качеством! - person sled; 03.11.2011
comment
Вы, вероятно, заплатите немного больше, но они все еще относительно дешевы. Это было бы намного точнее, чем ввод информации вручную, так что оно того стоило. На что следует обратить внимание при покупке сканера: - Тип входа: некоторые из них - USB, некоторые - PS/2 (например, мышь), а некоторые используют порты, которые я никогда раньше не использовал (последовательный/параллельный?) - Клавиатура эмуляция: это означает, что он работает так же, как ввод текста с клавиатуры, поэтому не требует специального программного обеспечения. - person Sherwin Flight; 03.11.2011
comment
- формат штрих-кода: я не знал, что их так много. Если вы используете существующие штрих-коды, ваш сканер должен уметь их считывать, большинство сканеров поддерживают множество типов. Если вы еще не используете штрих-коды, это не проблема, потому что вы можете заставить любые коды работать со своим сканером. - Тип сканирования: вы просто пропускаете код под сканером, чтобы прочитать его, или нажимаете на курок для сканирования? У каждого есть плюсы и минусы. - Он ручной или использует подставку/держатель? - длина кабеля: должен быть доставлен туда, куда вам нужно. Просто полезные советы. - person Sherwin Flight; 03.11.2011

Tcpdf имеет несколько классов для генерации штрих-кодов:

http://www.tcpdf.org/doc/code/classTCPDFBarcode.html

С хорошими примерами:

http://www.tcpdf.org/examples.php

Например первый:

// set the barcode content and type
$barcodeobj = new TCPDFBarcode('http://www.tcpdf.org', 'C128');

// output the barcode as HTML object
echo $barcodeobj->getBarcodeHTML(2, 30, 'black');
person Lajos Veres    schedule 19.06.2014

Проверьте larsjung.de/qrcode/

Это плагин JQuery, но он хорошо работает с PHP.

Как я вижу ваш сценарий, вам нужно больше, чем просто 1D штрих-код. Вам нужен QR-код.

Надеюсь это поможет.

person JMS786    schedule 02.10.2013

Во-первых, вам нужно выбрать тип штрих-кода, который вы хотите сгенерировать. Есть несколько вариантов для рассмотрения, 1D или 2D. Одномерные штрих-коды просты, кодируют лишь небольшой объем данных. 2D-штрих-коды больше и могут кодировать больше данных, они также немного более эстетичны :) Если вы предпочитаете 2D-штрих-коды, я бы порекомендовал QRCode или DataMatrix. PDF417 является жизнеспособным вариантом, если вам нужно разместить данные более горизонтально, а не в квадрате. Дополнительную информацию можно найти здесь: http://www.barcodebakery.com/en/resources/guide/php/choosing-barcodes

Как только вы нашли свой код для написания, вы решаете, какой ридер выбрать. В настоящее время у меня есть Metrologic Focus FirstFlash MS1690. Он читает все штрих-коды, упомянутые выше. Здесь снова несколько вариантов, самый простой — получить USB-считыватель штрих-кода: когда вы сканируете штрих-код, он просто записывает его на экран, когда кто-то печатает его на клавиатуре.

person jsgoupil    schedule 26.10.2011

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

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

person dnagirl    schedule 25.10.2011
comment
как читать штрих-код со считывающего устройства и автоматически отправлять данные в веб-форму? Как я могу получить доступ к HID-устройству? - person heron; 25.10.2011
comment
Штрих-код находится на упаковке. Сканер штрих-кода умеет анализировать штрих-код. В зависимости от информации, которую вы храните в штрих-коде, будет одно или несколько полей. Я предлагаю вам отсканировать один из ваших штрих-кодов в текстовом редакторе. Затем вы можете увидеть его структуру и определить, как лучше всего его анализировать. - person dnagirl; 25.10.2011
comment
пожалуйста, скажите мне точное решение, которое действительно работает .. Я имею в виду, какой считыватель штрих-кода мне нужно купить? какой тип штрих-кода мне нужно сгенерировать через php? - person heron; 25.10.2011
comment
@DEVastator: прочтите документацию к вашему сканеру. В зависимости от марки будут разные способы маршрутизации сканирования. Вы должны иметь возможность генерировать запрос POST или GET со своего сканера. - person dnagirl; 25.10.2011
comment
@DEVastator: я не даю рекомендаций по покупке. Свяжитесь с местными представителями сканеров и узнайте, как они это реализуют. Это общая проблема. - person dnagirl; 25.10.2011

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

person dkinzer    schedule 03.11.2011

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

person user2826831    schedule 28.09.2013

Важное примечание о библиотеке TCPDF:

Новая версия этой библиотеки находится в разработке по адресу https://github.com/tecnickcom/tc-lib-pdf и, как следствие, эта версия не получит никакой дополнительной разработки или поддержки. Эту версию следует считать устаревшей, новые проекты должны использовать новую версию, как только она станет стабильной.

Для генерации линейных и двумерных штрихкодов есть отдельная библиотека: https://github.com/tecnickcom/tc-lib-barcode

Чтобы сгенерировать штрих-код с помощью библиотеки tc-lib-barcode:

$bobj = $barcode->getBarcodeObj('CODABAR', '123456', -3, -30, 'black', array(0, 0, 0, 0));

// output the barcode as HTML div (see other output formats in the documentation and examples)
echo $bobj->getHtmlDiv();
echo "</br>";

//Output as png image
echo "<p><img alt=\"Embedded Image\" src=\"data:image/png;base64,".base64_encode($bobj->getPngData())."\" /></p>";

//Save image to folder
$destination_folder = "uploads/barcode.png";
file_put_contents($destination_folder, $bobj->getPngData());

Примечание. В качестве типа штрих-кода я использовал «CODABAR». Вы можете изменить тип штрих-кода/QR-кода в соответствии с вашими потребностями.

person Manish Pareek    schedule 26.08.2020