90                header(
'Content-Type: application/svg+xml');
 
   91                header(
'Cache-Control: public, must-revalidate, max-age=0'); 
 
   92                header(
'Pragma: public');
 
   93                header(
'Expires: Sat, 26 Jul 1997 05:00:00 GMT'); 
 
   94                header(
'Last-Modified: '.gmdate(
'D, d M Y H:i:s').
' GMT');
 
   95                header(
'Content-Disposition: inline; filename="'.md5(
$code).
'.svg";');
 
  110                $repstr = array(
"\0" => 
'', 
'&' => 
'&', 
'<' => 
'<', 
'>' => 
'>');
 
  111                $svg = 
'<'.
'?'.
'xml version="1.0" standalone="no"'.
'?'.
'>'.
"\n";
 
  112                $svg .= 
'<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'.
"\n";
 
  113                $svg .= 
'<svg width="'.round(($this->barcode_array[
'num_cols'] * 
$w), 3).
'" height="'.round(($this->barcode_array[
'num_rows'] * 
$h), 3).
'" version="1.1" xmlns="http://www.w3.org/2000/svg">'.
"\n";
 
  114                $svg .= 
"\t".
'<desc>'.strtr($this->barcode_array[
'code'], $repstr).
'</desc>'.
"\n";
 
  115                $svg .= 
"\t".
'<g id="elements" fill="'.$color.
'" stroke="none">'.
"\n";
 
  119                for (
$r = 0; 
$r < $this->barcode_array[
'num_rows']; ++
$r) {
 
  122                        for ($c = 0; $c < $this->barcode_array[
'num_cols']; ++$c) {
 
  123                                if ($this->barcode_array[
'bcode'][
$r][$c] == 1) {
 
  125                                        $svg .= 
"\t\t".
'<rect x="'.
$x.
'" y="'.
$y.
'" width="'.
$w.
'" height="'.
$h.
'" />'.
"\n";
 
  131                $svg .= 
"\t".
'</g>'.
"\n";
 
  132                $svg .= 
'</svg>'.
"\n";
 
  145                $html = 
'<div style="font-size:0;position:relative;width:'.($w * $this->barcode_array[
'num_cols']).
'px;height:'.(
$h * $this->barcode_array[
'num_rows']).
'px;">'.
"\n";
 
  149                for (
$r = 0; 
$r < $this->barcode_array[
'num_rows']; ++
$r) {
 
  152                        for ($c = 0; $c < $this->barcode_array[
'num_cols']; ++$c) {
 
  153                                if ($this->barcode_array[
'bcode'][
$r][$c] == 1) {
 
  155                                        $html .= 
'<div style="background-color:'.$color.
';width:'.
$w.
'px;height:'.
$h.
'px;position:absolute;left:'.
$x.
'px;top:'.
$y.
'px;"> </div>'.
"\n";
 
  161                $html .= 
'</div>'.
"\n";
 
  175                header(
'Content-Type: image/png');
 
  176                header(
'Cache-Control: public, must-revalidate, max-age=0'); 
 
  177                header(
'Pragma: public');
 
  178                header(
'Expires: Sat, 26 Jul 1997 05:00:00 GMT'); 
 
  179                header(
'Last-Modified: '.gmdate(
'D, d M Y H:i:s').
' GMT');
 
  195                $width = ($this->barcode_array[
'num_cols'] * 
$w);
 
  196                $height = ($this->barcode_array[
'num_rows'] * 
$h);
 
  197                if (function_exists(
'imagecreate')) {
 
  200                        $png = imagecreate($width, $height);
 
  201                        $bgcol = imagecolorallocate($png, 255, 255, 255);
 
  202                        imagecolortransparent($png, $bgcol);
 
  203                        $fgcol = imagecolorallocate($png, $color[0], $color[1], $color[2]);
 
  204                } elseif (extension_loaded(
'imagick')) {
 
  206                        $bgcol = 
new imagickpixel(
'rgb(255,255,255');
 
  207                        $fgcol = 
new imagickpixel(
'rgb('.$color[0].
','.$color[1].
','.$color[2].
')');
 
  208                        $png = 
new Imagick();
 
  209                        $png->newImage($width, $height, 
'none', 
'png');
 
  210                        $bar = 
new imagickdraw();
 
  211                        $bar->setfillcolor($fgcol);
 
  218                for (
$r = 0; 
$r < $this->barcode_array[
'num_rows']; ++
$r) {
 
  221                        for ($c = 0; $c < $this->barcode_array[
'num_cols']; ++$c) {
 
  222                                if ($this->barcode_array[
'bcode'][
$r][$c] == 1) {
 
  227                                                imagefilledrectangle($png, 
$x, 
$y, (
$x + 
$w - 1), (
$y + 
$h - 1), $fgcol);
 
  235                        $png->drawimage($bar);
 
  240                        $imagedata = ob_get_clean();
 
  253                $mode = explode(
',', 
$type);
 
  254                $qrtype = strtoupper($mode[0]);
 
  257                                require_once(dirname(__FILE__).
'/include/barcodes/datamatrix.php');
 
  259                                $this->barcode_array = $qrcode->getBarcodeArray();
 
  260                                $this->barcode_array[
'code'] = 
$code;
 
  264                                require_once(dirname(__FILE__).
'/include/barcodes/pdf417.php');
 
  265                                if (!isset($mode[1]) OR ($mode[1] === 
'')) {
 
  268                                        $aspectratio = floatval($mode[1]);
 
  270                                if (!isset($mode[2]) OR ($mode[2] === 
'')) {
 
  273                                        $ecl = intval($mode[2]);
 
  277                                if (isset($mode[3]) AND ($mode[3] !== 
'') AND isset($mode[4]) AND ($mode[4] !== 
'') AND isset($mode[5]) AND ($mode[5] !== 
'')) {
 
  278                                        $macro[
'segment_total'] = intval($mode[3]);
 
  279                                        $macro[
'segment_index'] = intval($mode[4]);
 
  280                                        $macro[
'file_id'] = strtr($mode[5], 
"\xff", 
',');
 
  281                                        for (
$i = 0; 
$i < 7; ++
$i) {
 
  283                                                if (isset($mode[$o]) AND ($mode[$o] !== 
'')) {
 
  285                                                        $macro[
'option_'.$i] = strtr($mode[$o], 
"\xff", 
',');
 
  289                                $qrcode = 
new PDF417(
$code, $ecl, $aspectratio, $macro);
 
  290                                $this->barcode_array = $qrcode->getBarcodeArray();
 
  291                                $this->barcode_array[
'code'] = 
$code;
 
  295                                require_once(dirname(__FILE__).
'/include/barcodes/qrcode.php');
 
  296                                if (!isset($mode[1]) OR (!in_array($mode[1],array(
'L',
'M',
'Q',
'H')))) {
 
  300                                $this->barcode_array = $qrcode->getBarcodeArray();
 
  301                                $this->barcode_array[
'code'] = 
$code;
 
  308                                if (strlen(
$code) < 3) {
 
  311                                if ($qrtype == 
'RAW') {
 
  319                                $this->barcode_array[
'num_rows'] = count(
$rows);
 
  320                                $this->barcode_array[
'num_cols'] = strlen(
$rows[0]);
 
  321                                $this->barcode_array[
'bcode'] = array();
 
  323                                        $this->barcode_array[
'bcode'][] = str_split(
$r, 1);
 
  325                                $this->barcode_array[
'code'] = 
$code;
 
  329                                $this->barcode_array[
'num_rows'] = 5;
 
  330                                $this->barcode_array[
'num_cols'] = 15;
 
  331                                $this->barcode_array[
'bcode'] = array(
 
  332                                        array(1,1,1,0,1,1,1,0,1,1,1,0,1,1,1),
 
  333                                        array(0,1,0,0,1,0,0,0,1,0,0,0,0,1,0),
 
  334                                        array(0,1,0,0,1,1,0,0,1,1,1,0,0,1,0),
 
  335                                        array(0,1,0,0,1,0,0,0,0,0,1,0,0,1,0),
 
  336                                        array(0,1,0,0,1,1,1,0,1,1,1,0,0,1,0));
 
  337                                $this->barcode_array[
'code'] = 
$code;
 
  341                                $this->barcode_array = 
false;
 
An exception for terminatinating execution or to throw for unit testing.
Class to create DataMatrix ECC 200 barcode arrays for TCPDF class.
Class to create PDF417 barcode arrays for TCPDF class.
Class to create QR-code arrays for TCPDF class.
PHP class to creates array representations for 2D barcodes to be used with TCPDF (http://www....
getBarcodeSVG($w=3, $h=3, $color='black')
Send barcode as SVG image object to the standard output.
$barcode_array
Array representation of barcode.
getBarcodePngData($w=3, $h=3, $color=array(0, 0, 0))
Return a PNG image representation of barcode (requires GD or Imagick library).
getBarcodeSVGcode($w=3, $h=3, $color='black')
Return a SVG string representation of barcode.
getBarcodeArray()
Return an array representations of barcode.
__construct($code, $type)
This is the class constructor.
getBarcodeHTML($w=10, $h=10, $color='black')
Return an HTML representation of barcode.
getBarcodePNG($w=3, $h=3, $color=array(0, 0, 0))
Send a PNG image representation of barcode (requires GD or Imagick library).
setBarcode($code, $type)
Set the barcode.