90 header(
'Content-Type: application/svg+xml');
91 header(
'Cache-Control: public, must-revalidate, max-age=0');
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');
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;
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.
getBarcodePngData($w=3, $h=3, $color=array(0, 0, 0))
Return a PNG image representation of barcode (requires GD or Imagick library).
Class to create QR-code arrays for TCPDF class.
Add a drawing to the header
Create styles array
The data for the language used.
__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))
Send a PNG image representation of barcode (requires GD or Imagick library).