Skip to content
This repository has been archived by the owner on Apr 11, 2023. It is now read-only.


Folders and files

Last commit message
Last commit date

Latest commit



94 Commits

Repository files navigation

PDF 417 barcode generator

Latest Version Total Downloads License Author

This project is no longer maintained

I have moved on from PHP and this project will no longer be updated. If you wish to continue the legacy, please fork the project.

For a maintaned Python implementation check out ihabunek/pdf417-py.

-- Ivan


Requires the following components:

  • PHP >= 5.4
  • PHP extensions: bcmath, fileinfo, gd


Add it to your composer.json file:

composer require bigfish/pdf417

Usage overview

require 'vendor/autoload.php';

use BigFish\PDF417\PDF417;
use BigFish\PDF417\Renderers\ImageRenderer;
use BigFish\PDF417\Renderers\SvgRenderer;

// Text to be encoded into the barcode
$text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur
imperdiet sit amet magna faucibus aliquet. Aenean in velit in mauris imperdiet
scelerisque. Maecenas a auctor erat.';

// Encode the data, returns a BarcodeData object
$pdf417 = new PDF417();
$data = $pdf417->encode($text);

// Create a PNG image
$renderer = new ImageRenderer([
    'format' => 'png'

$image = $renderer->render($data);

// Create an SVG representation
$renderer = new SvgRenderer([
    'color' => 'black',

$svg = $renderer->render($data);


Renders the barcode to an image using Intervention Image

Render function returns an instance of Intervention\Image\Image.


Option Default Description
format png Output format, one of: jpg, png, gif, tif, bmp, data-url
quality 90 Jpeg encode quality (1-10)
scale 3 Scale of barcode elements (1-20)
ratio 3 Height to width ration of barcode elements (1-10)
padding 20 Padding in pixels (0-50)
color #000000 Foreground color as a hex code
bgColor #ffffff Background color as a hex code


$pdf417 = new PDF417();
$data = $pdf417->encode("My hovercraft is full of eels");

// Create a PNG image, red on green background, extra big
$renderer = new ImageRenderer([
    'format' => 'png',
    'color' => '#FF0000',
    'bgColor' => '#00FF00',
    'scale' => 10,

$image = $renderer->render($data);

The data-url format is not like the others, it returns a base64 encoded PNG image which can be used in an image src or in CSS. When you create an image using this format:

$pdf417 = new PDF417();
$data = $pdf417->encode('My nipples explode with delight');

$renderer = new ImageRenderer([
    'format' => 'data-url'
$img = $renderer->render($data);

You can use it directly in your HTML or CSS code:

<img src="<?= $img->encoded ?>" />

And this will be rendered as:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA.... " />


Without these pages, implementation of this project would have been much harder: