4

我要求在 PDF 文档中提供 CASS 认证地址。这涉及使用经过认证的邮寄地址,并且需要使用条形码打印。

我怎样才能生成这样的条形码?可能存在已经这样做的 PHP 库吗?

4

4 回答 4

5

要记住的一件事是,CASS 认证地址的认证将在 95 天后过期。这意味着您需要至少每三个月重新认证您(或您客户的)数据库。没有它,您将无法生成 IMB(智能邮件条码),因为 IMB 由许多元素组成,包括 12 位投递点条码。

我想你已经有一个地方可以证明你的地址,但是对于那些阅读了这个 Stack Overflow 问题并且没有经过认证和标准化的地址的人,你可以进行谷歌搜索并找到一些提供商。

为了全面披露,我是 SmartyStreets 的创始人。我们提供地址验证和验证,它会返回 12 位交付点条形码,IMB 是从中派生的。我很乐意亲自回答您与地址验证和标准化相关的任何其他代码。

于 2011-10-13T01:19:25.297 回答
5

tc-lib-barcode ( https://github.com/tecnickcom/tc-lib-barcode ) PHP 软件库允许您生成“IMB - 智能邮件条码 - Onecode - USPS-B-3200”条码。

源代码完全符合 PSR-2 标准,可以使用Composer轻松添加到您的 PHP 项目中。

原始代码已从TCPDF移植和重构,并已在数十亿文档中使用。

于 2015-06-30T07:43:27.707 回答
3

USPS 有库和帮助代码,您可以为所有主要平台下载。他们没有 PHP 类,但您可以execsystem向操作系统生成代码。

于 2011-02-25T12:26:47.373 回答
0

我从这里的其他一些答案中尝试了几种方法,但它们对我不起作用:

  1. USPS 的官方库和帮助代码不是很清楚。它们还依赖于平台,如果您打算在 Excel 或其他一些桌面应用程序中进行邮件合并,它们似乎最有用。如果您正在尝试与 PHP Web 应用程序集成,我不确定这是一条非常好的途径。

  2. tc-lib-barcode似乎没有使用官方的 USPS 字体。并排比较时看起来不正确,当我尝试使用此工具验证条形码时,它失败了。

我最终改用了这个 IMB Converter 类。您可以下载USPS 官方字体 USPSIMBStandard,然后使用该字体显示您的条形码哈希(它应该在 fonts/scalable/trueType 文件夹中)。要生成条形码哈希,您首先需要生成一个代码。USPS 的此 PDF第 2 页对此进行了概述。一旦你有一个代码(例如 0027012345678955555590210),你可以通过转换器类运行它:

$barcode = IMB::Convert('0027012345678955555590210');

这将返回 TFDAAFAADDTDDFDFDATADDDATDAFAFDATADADADFATAFAFAFDADATFTFDAFDTADDT。然后,您可以使用 USPSIMBStandard 字体将其直接注入 PDF,或以 HTML 显示。

<p style="font-family:'USPSIMBStandard'; color:#000; font-size: 100px;"><?php echo $barcode; ?></p>

USPS 条形码示例

在生成条形码哈希时,与官方 USPS 编码器相比,IMB::Convert 的准确度尚不清楚。我测试了一些组合,它们似乎都匹配。如果你确实想使用官方的 USPS 编码器,你可以像这样在命令行上运行它:

$ IMBshell 0027012345678955555590210
于 2019-01-06T21:54:11.180 回答