Displaying barcode on a HTML page with PHP and StrokeScribe barcode generator

Barcode in PHP

An example how to use StrokeScribe barcode generator to produce barcodes in PHP. Barcodes shown here are GIF images.

How to Proceed

You may also need to enable the COM extension in the php.ini (see more info in the PHP:COM Manual):

[PHP_COM_DOTNET] extension=php_com_dotnet.dll extension_dir = "ext"

The Code Example

<?php $ss = new COM("STROKESCRIBE.StrokeScribeClass.1"); $ss->Text = "ABCD123"; $ss->Alphabet = 25; //25=QRCODE $w = $ss->BitmapW; $h = $ss->BitmapH; $arr = $ss->GetPictureArray(1, $w*5, $h*5); //1=GIF if($ss->Error) { echo $ss->ErrorDescription; return; } header("Content-Type: image/gif"); foreach ($arr as $byte) { echo (chr($byte)); } ?>

Some words about choosing the image's width/height:

Code Snippets by Barcode Type

All Barcode Types

How to Encode a Byte Array

$ss->CodePage = -1; $a = array(0xce, 0x01, 0x02, 0x03); $ss->Text = $a;

Mobile-friendly Barcodes with National Characters

The first way is to create/edit your php file in UTF-8:

$ss = new COM("STROKESCRIBE.StrokeScribeClass.1", NULL, CP_UTF8); //tell the COM library you are using UTF-8 in your data strings //You also may use the com.code_page ini setting. $ss->Alphabet = 25; $ss->CodePage = 65001; // = UTF-8 $ss->Text = "ΞΟΠΡΣΤΥΦ"; //directly use UTF-8 in you PHP code

The second way is to pass a pre-encoded data in a byte array:

$ss = new COM("STROKESCRIBE.StrokeScribeClass.1"); $ss->Alphabet = 25; $ss->CodePage = -1; //disables code page translation" $a = array(0xce, 0x9e, 0xce, 0x9f, 0xce, 0xa0, 0xce, 0xa1, 0xce, 0xa3, 0xce, 0xa4, 0xce, 0xa5, 0xce, 0xa6); $ss->Text = $a;

CODE 128

To create a Code 128, modify your code in the following way:

$ss = new COM("STROKESCRIBE.StrokeScribeClass.1"); $ss->Alphabet = 5; //CODE128 $ss->Text = "ABCDEF"; //if you want to specify an alternative text below the barcode: $ss->TextBelow = "AB CD EF"; $w = $ss->BitmapW; $h = $ss->BitmapH; $arr = $ss->GetPictureArray(1, $w*2, $w); //1=GIF CODE 128 generated in php

QR Code

To create a QR Code, modify your code in the following way:

$ss->Alphabet = 25; $ss->Text = "ABCDEF";

How to Modify the Error Correction Level

$ss->QrECL = 2;

How to Force the Minimum Matrix Size

$ss->QrMinVersion = 11;

PDF417

To create a PDF417 barcode, modify your code in the following way:

$ss->Alphabet = 6; //PDF417 $ss->Text = "123ABC"; $w = $ss->BitmapW; $h = $ss->BitmapH; $arr = $ss->GetPictureArray(1, $w*2, $w); //1=GIF PDF417 barcode generated by php

To create a Compact PDF417:

$ss->Alphabet = 6; $ss->CompactPDF417 = true;

How to Set the Non-default Error Correction Level

$ss->PDF417ErrLevel = 2;

How to Fix the Number of Rows or Columns

$ss->PDF417Cols = 5; $ss->PDF417Rows = 10;

DATA MATRIX

To create a Data Matrix barcode, modify your code in the following way:

$ss->Alphabet = 8; //DATAMATRIX $ss->Text = "ABCDEF"; $ss->DataMatrixMinSize = 132; $w = $ss->BitmapW; $h = $ss->BitmapH; $arr = $ss->GetPictureArray(1, $w, $h); Data Matrix barcode generated in php

How to Force the Minimum Matrix Size

$ss->DataMatrixMinSize = 132;

How to Modify the Quiet Zone Size

$ss->QuietZone2D = 0;