生成和阅读条形码

26
我为一家有多个国家办事处的大公司建立了一个电子商务网站。 我想要做的是:
  1. 在将包裹发送到公司各国办事处之前,通过PHP生成条形码。
  2. 当物品到达国家办事处时,工作人员将登录他们的账户,通过包裹上的条形码扫描器扫描该条形码,网站将自动“批准”该物品已收到。
这是否仅通过Web界面实现?我的意思是没有任何本地应用程序。如何实现?请解释。

1
搜索“php条形码生成器”,并使用连接为HID的适当条形码阅读器(因此您只需要在网站上使用文本输入字段)。请参见https://dev59.com/Mk_Sa4cB1Zd3GeqP9RyF - sled
1
大多数条形码阅读器都有键盘仿真设置,其中条形码阅读器模拟了某人输入数字的过程。您需要在条形码阅读器上设置一个前缀(在条形码“输入”之前发送的魔术字符串),以选择您的输入字段,之后条形码将自动输入到您的条形码字段中。 - Johan
使用图像处理库,如GD或其他类似的库,看起来非常可行。 - Madara's Ghost
如何从读卡器设备读取条形码并自动将数据发送到Web表单?我如何访问HID设备? - heron
如果您能够使用QR代码,Google有一个API可供使用:http://code.google.com/apis/chart/infographics/docs/qr_codes.html - James
8个回答

27

以下是一个适合您的方法:

您需要在数据库中放置一条记录,例如:

package_id |    name      |   status

  1234        My Package      shipped
生成一个包含 package_id 的条形码,你需要决定使用什么样的条形码。你也可以使用数据矩阵。然后将条形码创建为图像,以便打印。数据矩阵非常适用于大量自定义数据。
一个 jQuery 条形码生成器: http://barcode-coder.com/en/barcode-online-generator-2.html 打印条形码,贴在你的包裹上。
包裹到达办公室,用户登录你的网站,点击“确认收到包裹”或其他选项。然后出现一个文本字段,他将焦点放在文本字段上,扫描条形码/数据矩阵,你的包裹 ID “1234” 将出现在文本字段中。
提交表单,查找数据库中的条目,并将其更改为:
 package_id |     name      |   status
  1234         My Package      delivered

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


1
你说对了!我在 eBay 上订购了一台价值 20 美元的条形码扫描器,它的效果还不错,所以并不算太贵。其他人提到的“键盘仿真”也是正确的。当扫描器扫描条形码(比如 1234)时,它就像你亲自在键盘上输入 1-2-3-4 一样。大多数扫描器还有一个设置,可以让你选择是否在输入后自动按下“回车”。因此,将鼠标放在文本框中,扫描代码,它将被输入到文本框中,并且表单可以自动提交。 - Sherwin Flight
例如,我有一个屏幕,可以查看某些物品的信息,所有关于它的详细信息。以前我需要在页面顶部的框中输入编号,然后按回车键,才能显示详细信息。现在我可以点击框,扫描代码,信息就在那里了。它可以在任何可以使用键盘的地方工作,所以你可以做各种各样的事情(不必要的,哈哈),比如编码网址、电子邮件地址,任何你想要的东西。 - Sherwin Flight
不错 :) $20 真的很便宜 - 也许我也会在我们的质量管理中使用条形码! - sled
你可能需要支付更多的费用,但它们仍然相对便宜。虽然手动输入信息会更加准确,但使用扫描仪会更值得。购买扫描仪时需要注意以下事项:
  • 输入类型:有些是USB接口,有些是PS/2接口(类似于鼠标),还有一些使用我从未使用过的端口(串行/并行?)
  • 键盘仿真:这意味着它与使用键盘输入文本相同,因此不需要任何特殊软件。
- Sherwin Flight
条形码格式:我之前并没有意识到有这么多种类。如果您使用现有的条形码,您的扫描仪需要能够读取它们,大多数扫描仪支持许多类型。如果您尚未使用条形码,这不是问题,因为您可以创建任何可与您的扫描仪配合使用的代码。扫描类型:您只需将代码放在扫描器下方进行读取,还是需要按下扳机进行扫描?每种方式都有其优缺点。手持式还是使用支架/底座?电缆长度:需要达到您需要达到的位置。这些都是一些有用的提示。 - Sherwin Flight

6

2

查看larsjung.de/qrcode/,这是一个JQuery插件,但也可以与PHP配合良好。

从我所了解的情况来看,您需要不仅仅是一维码,还需要QR码。

希望这能帮到您。


1
首先,你需要选择要生成的条形码类型。 有多种选择,1D或2D。1D条形码只能编码一小部分数据,非常简单。 2D条形码较大,可以编码更多的数据,而且它们也更美观 :) 如果你选择2D条形码,我建议使用QRCode或DataMatrix。如果需要将数据水平排列而不是正方形,PDF417也是一个可行的选择。 你可以在这里找到更多信息:http://www.barcodebakery.com/en/resources/guide/php/choosing-barcodes 一旦你找到了要编写的代码,你需要考虑购买哪款读取器。我目前拥有一款Metrologic Focus FirstFlash MS1690。它可以读取上述所有的条形码。再次提醒,这里又有多种选项,最简单的是购买一个USB条形码阅读器:当你扫描条形码时,它会将其直接显示在屏幕上,就好像有人在键盘上输入一样。

0
这可以仅使用PHP来实现。为此,您需要使用任何现成的PHP类来生成QR码或条形码。通过选择适当的条形码字体即可执行生成条形码的操作,因此,PHP将通过编码数字来替代书写数字。读取条形码的步骤如上所述。

0

我不确定我是否完全理解了你的问题,但如果你想要制作一个可以被打印成条形码的文件,你需要知道你的条形码打印机可以打印哪种类型的文件。

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


如何从读取设备读取条形码并自动将数据发送到网络表单?我如何访问HID设备? - heron
条形码在包装上。条形码扫描仪知道如何解析条形码。根据您存储在条形码中的信息,将有一个或多个字段。我建议您将其中一个条形码扫描到文本编辑器中。然后,您可以看到它的结构并确定如何最好地解析它。 - dnagirl
请告诉我确切的解决方案,真正有效的那种...我的意思是我需要购买哪种条形码阅读器?我需要通过PHP生成哪种类型的条形码? - heron
@DEVastator:阅读您扫描仪的文档。根据品牌,路由扫描的方式会有所不同。您应该能够从扫描仪生成POST或GET请求。 - dnagirl
@DEVastator:我不会提供购买建议。请联系您当地的扫描仪代表,并询问他们如何实现此功能。这是一个常见的问题。 - dnagirl

0

我正在研究Zend条形码来做类似的事情,但承认我刚刚开始。我渴望知道其他人是如何处理这个问题的。


0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接