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 $width = ($this->barcode_array[
'num_cols'] * $w);
176 $height = ($this->barcode_array[
'num_rows'] * $h);
177 if (function_exists(
'imagecreate')) {
180 $png = imagecreate($width, $height);
181 $bgcol = imagecolorallocate($png, 255, 255, 255);
182 imagecolortransparent($png, $bgcol);
183 $fgcol = imagecolorallocate($png, $color[0], $color[1], $color[2]);
184 } elseif (extension_loaded(
'imagick')) {
186 $bgcol =
new imagickpixel(
'rgb(255,255,255');
187 $fgcol =
new imagickpixel(
'rgb('.$color[0].
','.$color[1].
','.$color[2].
')');
188 $png =
new Imagick();
189 $png->newImage($width, $height,
'none',
'png');
190 $bar =
new imagickdraw();
191 $bar->setfillcolor($fgcol);
198 for (
$r = 0;
$r < $this->barcode_array[
'num_rows']; ++
$r) {
201 for ($c = 0; $c < $this->barcode_array[
'num_cols']; ++$c) {
202 if ($this->barcode_array[
'bcode'][
$r][$c] == 1) {
205 $bar->rectangle($x, $y, ($x + $w - 1), ($y + $h - 1));
207 imagefilledrectangle($png, $x, $y, ($x + $w - 1), ($y + $h - 1), $fgcol);
215 header(
'Content-Type: image/png');
216 header(
'Cache-Control: public, must-revalidate, max-age=0');
217 header(
'Pragma: public');
218 header(
'Expires: Sat, 26 Jul 1997 05:00:00 GMT');
219 header(
'Last-Modified: '.gmdate(
'D, d M Y H:i:s').
' GMT');
221 $png->drawimage($bar);
236 $mode = explode(
',', $type);
237 $qrtype = strtoupper($mode[0]);
240 require_once(dirname( __FILE__ ) .
'/include/barcodes/datamatrix.php');
242 $this->barcode_array = $qrcode->getBarcodeArray();
243 $this->barcode_array[
'code'] = $code;
247 require_once(dirname( __FILE__ ) .
'/include/barcodes/pdf417.php');
248 if (!isset($mode[1]) OR ($mode[1] ===
'')) {
251 $aspectratio = floatval($mode[1]);
253 if (!isset($mode[2]) OR ($mode[2] ===
'')) {
256 $ecl = intval($mode[2]);
260 if (isset($mode[3]) AND ($mode[3] !==
'') AND isset($mode[4]) AND ($mode[4] !==
'') AND isset($mode[5]) AND ($mode[5] !==
'')) {
261 $macro[
'segment_total'] = intval($mode[3]);
262 $macro[
'segment_index'] = intval($mode[4]);
263 $macro[
'file_id'] = strtr($mode[5],
"\xff",
',');
264 for ($i = 0; $i < 7; ++$i) {
266 if (isset($mode[$o]) AND ($mode[$o] !==
'')) {
268 $macro[
'option_'.$i] = strtr($mode[$o],
"\xff",
',');
272 $qrcode =
new PDF417($code, $ecl, $aspectratio, $macro);
273 $this->barcode_array = $qrcode->getBarcodeArray();
274 $this->barcode_array[
'code'] = $code;
278 require_once(dirname( __FILE__ ) .
'/include/barcodes/qrcode.php');
279 if (!isset($mode[1]) OR (!in_array($mode[1],array(
'L',
'M',
'Q',
'H')))) {
282 $qrcode =
new QRcode($code, strtoupper($mode[1]));
283 $this->barcode_array = $qrcode->getBarcodeArray();
284 $this->barcode_array[
'code'] = $code;
290 $code = preg_replace(
'/[\s]*/si',
'', $code);
291 if (strlen($code) < 3) {
294 if ($qrtype ==
'RAW') {
296 $rows = explode(
',', $code);
299 $code = substr($code, 1, -1);
300 $rows = explode(
'][', $code);
302 $this->barcode_array[
'num_rows'] = count($rows);
303 $this->barcode_array[
'num_cols'] = strlen($rows[0]);
304 $this->barcode_array[
'bcode'] = array();
305 foreach ($rows as
$r) {
306 $this->barcode_array[
'bcode'][] = str_split($r, 1);
308 $this->barcode_array[
'code'] = $code;
312 $this->barcode_array[
'num_rows'] = 5;
313 $this->barcode_array[
'num_cols'] = 15;
314 $this->barcode_array[
'bcode'] = array(
315 array(1,1,1,0,1,1,1,0,1,1,1,0,1,1,1),
316 array(0,1,0,0,1,0,0,0,1,0,0,0,0,1,0),
317 array(0,1,0,0,1,1,0,0,1,1,1,0,0,1,0),
318 array(0,1,0,0,1,0,0,0,0,0,1,0,0,1,0),
319 array(0,1,0,0,1,1,1,0,1,1,1,0,0,1,0));
320 $this->barcode_array[
'code'] = $code;
324 $this->barcode_array =
false;
getBarcodeSVGcode($w=3, $h=3, $color='black')
Return a SVG string representation of barcode.
$barcode_array
Array representation of barcode.
PHP class to creates array representations for 2D barcodes to be used with TCPDF (http://www.tcpdf.org).
getBarcodeSVG($w=3, $h=3, $color='black')
Send barcode as SVG image object to the standard output.
getBarcodeArray()
Return an array representations of barcode.
Class to create QR-code arrays for TCPDF class.
__construct($code, $type)
This is the class constructor.
getBarcodeHTML($w=10, $h=10, $color='black')
Return an HTML representation of barcode.
Class to create PDF417 barcode arrays for TCPDF class.
Class to create DataMatrix ECC 200 barcode arrays for TCPDF class.
setBarcode($code, $type)
Set the barcode.
getBarcodePNG($w=3, $h=3, $color=array(0, 0, 0))
Return a PNG image representation of barcode (requires GD or Imagick library).