Я попробовал пару подходов из некоторых других ответов здесь, и они не работали для меня:
Официальные библиотеки и вспомогательный код из USPS не очень понятны. Они также зависят от платформы и, по-видимому, наиболее полезны, если вы планируете выполнять слияние почты в Excel или другом настольном приложении. Если вы пытаетесь интегрироваться с веб-приложением PHP, я не уверен, что это очень хороший путь.
Похоже, 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>
При создании хэшей штрих-кода неясно, насколько точен IMB :: Convert по сравнению с официальным кодировщиком USPS. Я протестировал несколько комбинаций, и все они, кажется, совпадают. Если вы хотите использовать официальный кодер USPS, вы можете запустить его в командной строке следующим образом:
$ IMBshell 0027012345678955555590210