Skip to content

Repository files navigation

tc-lib-barcode

PHP library for generating linear and 2D barcodes.

Latest Stable Version Build Coverage License Downloads

Sponsor on GitHub

💖 Part of the tc-lib-pdf / TCPDF ecosystem (100M+ installs). Sponsor its maintenance →


Overview

tc-lib-barcode is a pure-PHP library that encodes data as linear, 2D and postal barcode symbols and renders them as SVG, PNG, HTML or text.

Namespace \Com\Tecnick\Barcode
Author Nicola Asuni info@tecnick.com
License GNU LGPL v3 - see LICENSE
API docs https://tcpdf.org/docs/srcdoc/tc-lib-barcode
Packagist https://packagist.org/packages/tecnickcom/tc-lib-barcode

Supported Formats

Linear

Format Description
C39 CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9
C39+ CODE 39 + CHECKSUM
C39E CODE 39 EXTENDED
C39E+ CODE 39 EXTENDED + CHECKSUM
C93 CODE 93 - USS-93
S25 Standard 2 of 5
S25+ Standard 2 of 5 + CHECKSUM
I25 Interleaved 2 of 5
I25+ Interleaved 2 of 5 + CHECKSUM
C128 CODE 128
C128A CODE 128 A
C128B CODE 128 B
C128C CODE 128 C
EAN2 EAN 2-Digits UPC-Based Extension
EAN5 EAN 5-Digits UPC-Based Extension
EAN8 EAN 8
EAN13 EAN 13
UPCA UPC-A
UPCE UPC-E
MSI MSI (Variation of Plessey code)
MSI+ MSI + CHECKSUM (modulo 11)
CODABAR CODABAR
CODE11 CODE 11
PHARMA PHARMACODE
PHARMA2T PHARMACODE TWO-TRACKS
LRAW 1D RAW MODE (comma-separated rows of 01 strings)

2D

Format Description
AZTEC AZTEC Code (ISO/IEC 24778:2008)
DATAMATRIX DATAMATRIX (ISO/IEC 16022)
PDF417 PDF417 (ISO/IEC 15438:2006)
QRCODE QR-CODE
SRAW 2D RAW MODE (comma-separated rows of 01 strings)

Postal

Format Description
POSTNET POSTNET
PLANET PLANET
RMS4CC RMS4CC (Royal Mail 4-state Customer Bar Code)
KIX KIX (Klant index - Customer index)
IMB IMB - Intelligent Mail Barcode - Onecode - USPS-B-3200
IMBPRE IMB - Intelligent Mail Barcode pre-processed

Output Formats

  • SVG image (file, inline code, or standalone document)
  • PNG image (via GD or Imagick)
  • GD image object
  • HTML div elements
  • Character grid string
  • Array of bar coordinates

Width, height, padding, foreground and background color are set per barcode.


Requirements

  • PHP 8.2 or later
  • Extensions: gd
  • Optional extensions: bcmath (speeds up the arbitrary precision arithmetic used by the IMB and PDF417 types, a pure-PHP implementation is used when it is missing)
  • Composer

Installation

composer require tecnickcom/tc-lib-barcode

Quick Start

<?php

require_once __DIR__ . '/vendor/autoload.php';

$barcode = new \Com\Tecnick\Barcode\Barcode();
$bobj = $barcode->getBarcodeObj(
    type: 'QRCODE,H',
    code: 'https://tecnick.com',
    width: -4,
    height: -4,
    color: 'black',
    padding: [-2, -2, -2, -2],
)->setBackgroundColor('white');

echo $bobj->getInlineSvgCode();

For more formats and rendering options, see the example/ directory.


Development

make deps
make help
make qa

To preview the example app in a browser:

make server

Then open http://localhost:8000/ (served from the example/ directory).

To use a different port:

make server PORT=8080

Build artifacts and reports are generated in target/.


Packaging

make rpm
make deb

For system packages, bootstrap with:

require_once '/usr/share/php/Com/Tecnick/Barcode/autoload.php';

Contributing

Contributions are welcome. Please read CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md before submitting a pull request.

About

PHP library to generate linear and bidimensional barcodes

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

299 stars

Watchers

19 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages