Как создать Intelligent Mail® Barcode (OneCode) через PHP - PullRequest
2 голосов
/ 23 февраля 2011

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

Как я могу создать такой штрих-код?Могут ли существовать библиотеки PHP, которые уже это делают?

Ответы [ 4 ]

5 голосов
/ 13 октября 2011

Следует помнить, что срок действия сертификата CASS-сертифицированного адреса истекает через 95 дней.Это означает, что вам необходимо будет проходить повторную сертификацию базы данных (или базы данных вашего клиента) как минимум каждые три месяца.Без этого вы не сможете сгенерировать IMB (интеллектуальный почтовый штрих-код), потому что IMB состоит из ряда элементов, включая 12-значный штрих-код точки доставки.

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

В целях полного раскрытия яЯ основатель SmartyStreets.Мы предлагаем подтверждение и подтверждение адреса , которое возвращает 12-значный штрих-код пункта доставки, из которого получен IMB.Буду рад лично ответить на любые дополнительные коды, которые у вас есть, связанные с проверкой и стандартизацией адреса.

5 голосов
/ 30 июня 2015

Программная библиотека tc-lib-barcode (https://github.com/tecnickcom/tc-lib-barcode) PHP) позволяет создавать штрих-коды «IMB - Intelligent Mail Barcode - Onecode - USPS-B-3200».

Исходный код полностью соответствует PSR-2 и может быть легко добавлен в ваши проекты PHP с помощью Composer .

Исходный код был портирован и подвергнут рефакторингу из TCPDF и уже используется в миллиардах документов.

3 голосов
/ 25 февраля 2011

USPS имеет библиотеки и вспомогательный код , которые можно загрузить для всех основных платформ. У них нет класса PHP, но вы можете exec или system выйти в ОС для генерации кода.

0 голосов
/ 07 января 2019

Я попробовал пару подходов из некоторых других ответов здесь, и они не работали для меня:

  1. Официальные библиотеки и вспомогательный код из USPS не очень понятны. Они также зависят от платформы и, по-видимому, наиболее полезны, если вы планируете выполнять слияние почты в Excel или другом настольном приложении. Если вы пытаетесь интегрироваться с веб-приложением PHP, я не уверен, что это очень хороший путь.

  2. Похоже, tc-lib-barcode не использует официальный шрифт USPS. Это не выглядит правильно, если сравнивать бок о бок, и когда я пытался проверить штрих-код, используя этот инструмент , это не удалось.

В итоге я использовал этот класс конвертера IMB . Вы можете загрузить официальный шрифт USPS USPSIMBStandard , а затем отобразить хэш-код штрих-кода, используя шрифт (он должен находиться в папке fonts / scalable / trueType). Чтобы сгенерировать хеш-код штрих-кода, сначала необходимо сгенерировать код. Это описано на стр. 2 этого PDF из USPS . Если у вас есть код (например, 0027012345678955555590210), вы можете запустить его через класс преобразователя:

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

Возвращает TFDAAFAADDTDDFDFDATADDDATDAFAFDATADADADFATAFAFAFDADATFTFDAFDTADDT. Затем вы можете вставить это непосредственно в PDF-файл, используя стандартный шрифт USPSIMBS, или отобразить его в формате HTML.

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

USPS Bar Code Example

При создании хэшей штрих-кода неясно, насколько точен IMB :: Convert по сравнению с официальным кодировщиком USPS. Я протестировал несколько комбинаций, и все они, кажется, совпадают. Если вы хотите использовать официальный кодер USPS, вы можете запустить его в командной строке следующим образом:

$ IMBshell 0027012345678955555590210
...