【问题标题】:Generating and reading barcode生成和读取条形码
【发布时间】:2011-12-15 04:56:11
【问题描述】:

我为一家设有国家办事处的大公司建立了一个电子购物网站。

我想做的是以下

  1. 在将包裹发送到公司的国家办事处之前通过 PHP 生成条形码
  2. 当物品到达国家办事处时,工作人员将登录他们的帐户,通过条形码阅读器(位于包裹上)扫描此条形码,网站将自动“批准”收到的物品。

是否只能使用网络界面?我的意思是没有任何本地应用程序。怎么做?请解释一下。

【问题讨论】:

  • google 搜索“php 条形码生成器”,并使用适当的条形码阅读器作为 HID 连接(因此您只需要网站上的文本输入字段)请参阅 stackoverflow.com/questions/3262126/…
  • 大多数条码阅读器都有一个键盘模拟设置,条码阅读器会假装有人在输入数字。您需要在条形码阅读器上设置一个前缀(在“输入”条形码之前发送的一个魔术字符串),它将选择您的输入字段,之后条形码将自动输入到您的条形码字段中。
  • 用GD之类的图像处理库看起来很有可能。
  • 如何从阅读器设备读取条形码并将数据自动发送到网络表单?如何访问 HID 设备?
  • 如果您能够使用二维码,Google 有一个 API:code.google.com/apis/chart/infographics/docs/qr_codes.html

标签: php mysql database web barcode


【解决方案1】:

关于 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”作为条形码类型。您可以根据需要更改条码/二维码的类型。

【讨论】:

    【解决方案2】:

    首先,您需要选择要生成的条形码类型。 有多个需要考虑,一维或二维。一维条码很简单,只对少量数据进行编码。 二维条码更大,可以编码更多数据,它们也更美观:) 如果您选择二维条码,我会推荐 QRCode 或 DataMatrix。如果您需要更水平地而不是平方地放置数据,PDF417 是一个可行的选择。 你可以在这里找到更多信息:http://www.barcodebakery.com/en/resources/guide/php/choosing-barcodes

    一旦您找到要编写的代码,您就会考虑使用哪个阅读器。我目前拥有 Metrologic Focus FirstFlash MS1690。它读取上面提到的所有条形码。它们在这里又是多种选择,最简单的是获得 USB 条形码阅读器:当您扫描条形码时,它会在有人在键盘上键入时将其写入屏幕。

    【讨论】:

      【解决方案3】:

      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');
      

      【讨论】:

        【解决方案4】:

        检查larsjung.de/qrcode/

        它是 JQuery 插件,但与 PHP 配合得很好。

        正如我看到的那样,您需要的不仅仅是一维条码。您需要二维码。

        希望这会有所帮助。

        【讨论】:

          【解决方案5】:

          这只能使用 php 来实现。为此,您需要使用任何现成的 php 类来生成二维码或条形码。生成条形码可以通过选择适当的条形码字体来执行,因此,php 将不写数字,而是用条形码数字写。条码读取如前所述。

          【讨论】:

            【解决方案6】:

            我正在寻找Zend barcode 做类似的事情,但我承认我才刚刚开始。我很想知道其他人是如何处理这个问题的。

            【讨论】:

              【解决方案7】:

              所以这里有一个适合你的方法:

              您需要将记录放入数据库中,例如:

              package_id |    name      |   status
              
                1234        My Package      shipped
              

              生成包含 package_id 的条形码,您必须决定要使用哪种条形码。您也可以使用数据矩阵。然后,您将条形码创建为图像,以便您可以打印它。 Data Matrix 非常适合大型自定义数据。

              打印条形码,放在包裹上

              包裹到达办公室,用户登录您的网站,单击“确认包裹已收到”或其他任何内容。然后是一个文本字段,他聚焦文本字段,扫描条形码/数据矩阵,您的包裹 ID“1234”将出现在文本字段中

              提交表单,在数据库中查找条目,将其更改为:

               package_id |     name      |   status
                1234         My Package      delivered
              

              提示如果您使用QR Code,它可以被许多手机读取,因此您不需要真正的条形码扫描仪。您可以编写一个读取条形码并将 package_id 发送到您的服务器的应用程序。

              【讨论】:

              • 你明白了!我以 20 美元的价格从 ebay 订购了一个条码扫描仪,效果还不错,所以并没有那么贵。其他人所说的“键盘仿真”是正确的。当扫描仪扫描条形码时,比如 1234,它与您坐在那里输入 1-2-3-4 完全相同。而且大多数都有一个设置,可以让你选择它是否也会自动为你按下“输入”。所以把鼠标放在你的文本框上,扫码,就会进入到文本框中,自动提交表单。
              • 例如,我有一个屏幕,我可以在其中查看某些项目的信息、所有详细信息和有关它的信息。要使用它,我以前必须在页面顶部的框中输入数字,然后按 Enter,然后会显示详细信息。现在我可以点击框,扫描代码,信息就在那里。它可以在任何你可以使用键盘的地方工作,所以你可以用它做各种各样的事情(不必要,哈哈)比如编码网址、电子邮件地址,任何你想要的东西。
              • nice :) 20 美元真的很便宜 - 也许我也会使用条形码进行质量管理!
              • 您可能会多付一点钱,但它们仍然相对便宜。不过,这将比手动输入信息准确得多,因此值得。购买扫描仪时需要注意的事项: - 输入类型:有些是 USB,有些是 PS/2(如鼠标),有些使用我以前从未使用过的端口(串行/并行?) - 键盘仿真:这意味着它的工作原理与使用键盘输入文本相同,因此不需要任何特殊软件。
              • - 条形码格式:我没有意识到有这么多。如果您使用现有的条形码,您的扫描仪需要能够读取它们,大多数扫描仪支持多种类型。如果您还没有使用条形码,这不是问题,因为您可以使用扫描仪制作任何代码。 - 扫描类型:您只是通过扫描仪下方的代码来读取它,还是扣动扳机进行扫描?每个都有优点和缺点。 - 它是手持的,还是使用支架/支架? - 电缆长度:需要到达您需要到达的地方。只是一些有用的提示。
              【解决方案8】:

              我不确定我是否完全理解您的问题,但如果您正在寻找可以打印作为条形码的文件,您需要知道您的条形码是什么类型的文件打印机可以打印。

              如果您希望使用扫描仪将条形码读取到网络表单中,则扫描仪需要识别条形码类型。扫描仪将条形码值输入网络表单(或任何其他接受文本的程序)。网络表单与识别条形码无关。

              【讨论】:

              • 如何从阅读器设备读取条形码并将数据自动发送到网络表单?如何访问 HID 设备?
              • 包装上有条形码。条码扫描器知道如何解析条码。根据您存储在条形码中的信息,将有一个或多个字段。我建议您将其中一个条形码扫描到文本编辑器中。然后您可以查看它的结构并确定如何最好地解析它。
              • 请告诉我真正有效的确切解决方案。我的意思是我需要购买哪种条形码阅读器?我需要通过 php 生成哪种类型的条形码?
              • @DEVastator:阅读您的扫描仪的文档。根据品牌,将有不同的路由扫描方式。您应该能够从扫描仪生成 POST 或 GET 请求。
              • @DEVastator:我不提出购买建议。请联系您当地的扫描仪代表并询问他们如何实施此操作。这是一个常见的问题。
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2012-01-27
              • 2021-10-27
              • 1970-01-01
              • 2020-01-27
              • 2011-06-16
              • 1970-01-01
              • 2014-04-17
              相关资源
              最近更新 更多