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

Latest commit

 

History

History
137 lines (99 loc) · 3.66 KB

README.md

File metadata and controls

137 lines (99 loc) · 3.66 KB

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

Requirements

Requires the following components:

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

Installation

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);

ImageRenderer

Renders the barcode to an image using Intervention Image

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

Options

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

Examples

$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);
$image->save('hovercraft.png');

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.... " />

Thanks

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