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.