mirror of
https://github.com/vdm-io/tcpdf.git
synced 2025-04-07 19:41:51 +00:00
5.9.117
This commit is contained in:
parent
6b246ab063
commit
d303c731f8
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
//============================================================+
|
//============================================================+
|
||||||
// File name : 2dbarcodes.php
|
// File name : 2dbarcodes.php
|
||||||
// Version : 1.0.011
|
// Version : 1.0.012
|
||||||
// Begin : 2009-04-07
|
// Begin : 2009-04-07
|
||||||
// Last Update : 2011-09-13
|
// Last Update : 2011-09-15
|
||||||
// Author : Nicola Asuni - Tecnick.com S.r.l - Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
|
// Author : Nicola Asuni - Tecnick.com S.r.l - Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
|
||||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
@ -37,14 +37,14 @@
|
|||||||
* PHP class to creates array representations for 2D barcodes to be used with TCPDF.
|
* PHP class to creates array representations for 2D barcodes to be used with TCPDF.
|
||||||
* @package com.tecnick.tcpdf
|
* @package com.tecnick.tcpdf
|
||||||
* @author Nicola Asuni
|
* @author Nicola Asuni
|
||||||
* @version 1.0.011
|
* @version 1.0.012
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @class TCPDF2DBarcode
|
* @class TCPDF2DBarcode
|
||||||
* PHP class to creates array representations for 2D barcodes to be used with TCPDF (http://www.tcpdf.org).
|
* PHP class to creates array representations for 2D barcodes to be used with TCPDF (http://www.tcpdf.org).
|
||||||
* @package com.tecnick.tcpdf
|
* @package com.tecnick.tcpdf
|
||||||
* @version 1.0.011
|
* @version 1.0.012
|
||||||
* @author Nicola Asuni
|
* @author Nicola Asuni
|
||||||
*/
|
*/
|
||||||
class TCPDF2DBarcode {
|
class TCPDF2DBarcode {
|
||||||
@ -85,7 +85,7 @@ class TCPDF2DBarcode {
|
|||||||
* @public
|
* @public
|
||||||
*/
|
*/
|
||||||
public function getBarcodeSVG($w=3, $h=3, $color='black') {
|
public function getBarcodeSVG($w=3, $h=3, $color='black') {
|
||||||
// send XML headers
|
// send headers
|
||||||
$code = $this->getBarcodeSVGcode($w, $h, $color);
|
$code = $this->getBarcodeSVGcode($w, $h, $color);
|
||||||
header('Content-Type: application/svg+xml');
|
header('Content-Type: application/svg+xml');
|
||||||
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
|
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
|
||||||
@ -114,11 +114,10 @@ class TCPDF2DBarcode {
|
|||||||
$svg .= "\t".'<desc>'.strtr($this->barcode_array['code'], $repstr).'</desc>'."\n";
|
$svg .= "\t".'<desc>'.strtr($this->barcode_array['code'], $repstr).'</desc>'."\n";
|
||||||
$svg .= "\t".'<g id="elements" fill="'.$color.'" stroke="none">'."\n";
|
$svg .= "\t".'<g id="elements" fill="'.$color.'" stroke="none">'."\n";
|
||||||
// print barcode elements
|
// print barcode elements
|
||||||
$xstart = 0;
|
|
||||||
$y = 0;
|
$y = 0;
|
||||||
// for each row
|
// for each row
|
||||||
for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) {
|
for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) {
|
||||||
$x = $xstart;
|
$x = 0;
|
||||||
// for each column
|
// for each column
|
||||||
for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) {
|
for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) {
|
||||||
if ($this->barcode_array['bcode'][$r][$c] == 1) {
|
if ($this->barcode_array['bcode'][$r][$c] == 1) {
|
||||||
@ -146,11 +145,10 @@ class TCPDF2DBarcode {
|
|||||||
// replace table for special characters
|
// replace table for special characters
|
||||||
$html = '<div style="font-size:0;position:relative;">'."\n";
|
$html = '<div style="font-size:0;position:relative;">'."\n";
|
||||||
// print barcode elements
|
// print barcode elements
|
||||||
$xstart = 0;
|
|
||||||
$y = 0;
|
$y = 0;
|
||||||
// for each row
|
// for each row
|
||||||
for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) {
|
for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) {
|
||||||
$x = $xstart;
|
$x = 0;
|
||||||
// for each column
|
// for each column
|
||||||
for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) {
|
for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) {
|
||||||
if ($this->barcode_array['bcode'][$r][$c] == 1) {
|
if ($this->barcode_array['bcode'][$r][$c] == 1) {
|
||||||
@ -165,6 +163,70 @@ class TCPDF2DBarcode {
|
|||||||
return $html;
|
return $html;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a PNG image representation of barcode (requires GD or Imagick library).
|
||||||
|
* @param $w (int) Width of a single rectangle element in pixels.
|
||||||
|
* @param $h (int) Height of a single rectangle element in pixels.
|
||||||
|
* @param $color (array) RGB (0-255) foreground color for bar elements (background is transparent).
|
||||||
|
* @return image or false in case of error.
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
public function getBarcodePNG($w=3, $h=3, $color=array(0,0,0)) {
|
||||||
|
// calculate image size
|
||||||
|
$width = ($this->barcode_array['num_cols'] * $w);
|
||||||
|
$height = ($this->barcode_array['num_rows'] * $h);
|
||||||
|
if (function_exists('imagecreate')) {
|
||||||
|
// GD library
|
||||||
|
$imagick = false;
|
||||||
|
$png = imagecreate($width, $height);
|
||||||
|
$bgcol = imagecolorallocate($png, 255, 255, 255);
|
||||||
|
imagecolortransparent($png, $bgcol);
|
||||||
|
$fgcol = imagecolorallocate($png, $color[0], $color[1], $color[2]);
|
||||||
|
} elseif (extension_loaded('imagick')) {
|
||||||
|
$imagick = true;
|
||||||
|
$bgcol = new imagickpixel('rgb(255,255,255');
|
||||||
|
$fgcol = new imagickpixel('rgb('.$color[0].','.$color[1].','.$color[2].')');
|
||||||
|
$png = new Imagick();
|
||||||
|
$png->newImage($width, $height, 'none', 'png');
|
||||||
|
$bar = new imagickdraw();
|
||||||
|
$bar->setfillcolor($fgcol);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// print barcode elements
|
||||||
|
$y = 0;
|
||||||
|
// for each row
|
||||||
|
for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) {
|
||||||
|
$x = 0;
|
||||||
|
// for each column
|
||||||
|
for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) {
|
||||||
|
if ($this->barcode_array['bcode'][$r][$c] == 1) {
|
||||||
|
// draw a single barcode cell
|
||||||
|
if ($imagick) {
|
||||||
|
$bar->rectangle($x, $y, ($x + $w), ($y + $h));
|
||||||
|
} else {
|
||||||
|
imagefilledrectangle($png, $x, $y, ($x + $w), ($y + $h), $fgcol);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$x += $w;
|
||||||
|
}
|
||||||
|
$y += $h;
|
||||||
|
}
|
||||||
|
// send headers
|
||||||
|
header('Content-Type: image/png');
|
||||||
|
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
|
||||||
|
header('Pragma: public');
|
||||||
|
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
|
||||||
|
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||||
|
if ($imagick) {
|
||||||
|
$png->drawimage($bar);
|
||||||
|
echo $png;
|
||||||
|
} else {
|
||||||
|
imagepng($png);
|
||||||
|
imagedestroy($png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the barcode.
|
* Set the barcode.
|
||||||
* @param $code (string) code to print
|
* @param $code (string) code to print
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
5.9.117 (2011-09-17)
|
||||||
|
- TCPDFBarcode and TCPDF2DBarcode were extended to include a method for exporting barcodes as PNG images.
|
||||||
|
|
||||||
5.9.116 (2011-09-14)
|
5.9.116 (2011-09-14)
|
||||||
- Datamatrix class was improved and documentation was fixed.
|
- Datamatrix class was improved and documentation was fixed.
|
||||||
|
|
||||||
|
@ -8,8 +8,8 @@ http://sourceforge.net/donate/index.php?group_id=128076
|
|||||||
------------------------------------------------------------
|
------------------------------------------------------------
|
||||||
|
|
||||||
Name: TCPDF
|
Name: TCPDF
|
||||||
Version: 5.9.116
|
Version: 5.9.117
|
||||||
Release date: 2011-09-14
|
Release date: 2011-09-15
|
||||||
Author: Nicola Asuni
|
Author: Nicola Asuni
|
||||||
|
|
||||||
Copyright (c) 2002-2011:
|
Copyright (c) 2002-2011:
|
||||||
|
71
barcodes.php
71
barcodes.php
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
//============================================================+
|
//============================================================+
|
||||||
// File name : barcodes.php
|
// File name : barcodes.php
|
||||||
// Version : 1.0.020
|
// Version : 1.0.021
|
||||||
// Begin : 2008-06-09
|
// Begin : 2008-06-09
|
||||||
// Last Update : 2011-09-13
|
// Last Update : 2011-09-15
|
||||||
// Author : Nicola Asuni - Tecnick.com S.r.l - Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
|
// Author : Nicola Asuni - Tecnick.com S.r.l - Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
|
||||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
@ -37,14 +37,14 @@
|
|||||||
* PHP class to creates array representations for common 1D barcodes to be used with TCPDF.
|
* PHP class to creates array representations for common 1D barcodes to be used with TCPDF.
|
||||||
* @package com.tecnick.tcpdf
|
* @package com.tecnick.tcpdf
|
||||||
* @author Nicola Asuni
|
* @author Nicola Asuni
|
||||||
* @version 1.0.020
|
* @version 1.0.021
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @class TCPDFBarcode
|
* @class TCPDFBarcode
|
||||||
* PHP class to creates array representations for common 1D barcodes to be used with TCPDF (http://www.tcpdf.org).<br>
|
* PHP class to creates array representations for common 1D barcodes to be used with TCPDF (http://www.tcpdf.org).<br>
|
||||||
* @package com.tecnick.tcpdf
|
* @package com.tecnick.tcpdf
|
||||||
* @version 1.0.020
|
* @version 1.0.021
|
||||||
* @author Nicola Asuni
|
* @author Nicola Asuni
|
||||||
*/
|
*/
|
||||||
class TCPDFBarcode {
|
class TCPDFBarcode {
|
||||||
@ -91,7 +91,7 @@ class TCPDFBarcode {
|
|||||||
* @public
|
* @public
|
||||||
*/
|
*/
|
||||||
public function getBarcodeSVG($w=2, $h=30, $color='black') {
|
public function getBarcodeSVG($w=2, $h=30, $color='black') {
|
||||||
// send XML headers
|
// send headers
|
||||||
$code = $this->getBarcodeSVGcode($w, $h, $color);
|
$code = $this->getBarcodeSVGcode($w, $h, $color);
|
||||||
header('Content-Type: application/svg+xml');
|
header('Content-Type: application/svg+xml');
|
||||||
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
|
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
|
||||||
@ -163,6 +163,67 @@ class TCPDFBarcode {
|
|||||||
return $html;
|
return $html;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a PNG image representation of barcode (requires GD or Imagick library).
|
||||||
|
* @param $w (int) Width of a single bar element in pixels.
|
||||||
|
* @param $h (int) Height of a single bar element in pixels.
|
||||||
|
* @param $color (array) RGB (0-255) foreground color for bar elements (background is transparent).
|
||||||
|
* @return image or false in case of error.
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
public function getBarcodePNG($w=2, $h=30, $color=array(0,0,0)) {
|
||||||
|
// calculate image size
|
||||||
|
$width = ($this->barcode_array['maxw'] * $w);
|
||||||
|
$height = $h;
|
||||||
|
if (function_exists('imagecreate')) {
|
||||||
|
// GD library
|
||||||
|
$imagick = false;
|
||||||
|
$png = imagecreate($width, $height);
|
||||||
|
$bgcol = imagecolorallocate($png, 255, 255, 255);
|
||||||
|
imagecolortransparent($png, $bgcol);
|
||||||
|
$fgcol = imagecolorallocate($png, $color[0], $color[1], $color[2]);
|
||||||
|
} elseif (extension_loaded('imagick')) {
|
||||||
|
$imagick = true;
|
||||||
|
$bgcol = new imagickpixel('rgb(255,255,255');
|
||||||
|
$fgcol = new imagickpixel('rgb('.$color[0].','.$color[1].','.$color[2].')');
|
||||||
|
$png = new Imagick();
|
||||||
|
$png->newImage($width, $height, 'none', 'png');
|
||||||
|
$bar = new imagickdraw();
|
||||||
|
$bar->setfillcolor($fgcol);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// print bars
|
||||||
|
$x = 0;
|
||||||
|
foreach ($this->barcode_array['bcode'] as $k => $v) {
|
||||||
|
$bw = round(($v['w'] * $w), 3);
|
||||||
|
$bh = round(($v['h'] * $h / $this->barcode_array['maxh']), 3);
|
||||||
|
if ($v['t']) {
|
||||||
|
$y = round(($v['p'] * $h / $this->barcode_array['maxh']), 3);
|
||||||
|
// draw a vertical bar
|
||||||
|
if ($imagick) {
|
||||||
|
$bar->rectangle($x, $y, ($x + $bw), ($y + $bh));
|
||||||
|
} else {
|
||||||
|
imagefilledrectangle($png, $x, $y, ($x + $bw), ($y + $bh), $fgcol);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$x += $bw;
|
||||||
|
}
|
||||||
|
// send headers
|
||||||
|
header('Content-Type: image/png');
|
||||||
|
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
|
||||||
|
header('Pragma: public');
|
||||||
|
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
|
||||||
|
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||||
|
if ($imagick) {
|
||||||
|
$png->drawimage($bar);
|
||||||
|
echo $png;
|
||||||
|
} else {
|
||||||
|
imagepng($png);
|
||||||
|
imagedestroy($png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the barcode.
|
* Set the barcode.
|
||||||
* @param $code (string) code to print
|
* @param $code (string) code to print
|
||||||
|
10
tcpdf.php
10
tcpdf.php
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
//============================================================+
|
//============================================================+
|
||||||
// File name : tcpdf.php
|
// File name : tcpdf.php
|
||||||
// Version : 5.9.116
|
// Version : 5.9.117
|
||||||
// Begin : 2002-08-03
|
// Begin : 2002-08-03
|
||||||
// Last Update : 2011-09-14
|
// Last Update : 2011-09-15
|
||||||
// Author : Nicola Asuni - Tecnick.com S.r.l - Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
|
// Author : Nicola Asuni - Tecnick.com S.r.l - Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
|
||||||
// License : http://www.tecnick.com/pagefiles/tcpdf/LICENSE.TXT GNU-LGPLv3 + YOU CAN'T REMOVE ANY TCPDF COPYRIGHT NOTICE OR LINK FROM THE GENERATED PDF DOCUMENTS.
|
// License : http://www.tecnick.com/pagefiles/tcpdf/LICENSE.TXT GNU-LGPLv3 + YOU CAN'T REMOVE ANY TCPDF COPYRIGHT NOTICE OR LINK FROM THE GENERATED PDF DOCUMENTS.
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
@ -136,7 +136,7 @@
|
|||||||
* Tools to encode your unicode fonts are on fonts/utils directory.</p>
|
* Tools to encode your unicode fonts are on fonts/utils directory.</p>
|
||||||
* @package com.tecnick.tcpdf
|
* @package com.tecnick.tcpdf
|
||||||
* @author Nicola Asuni
|
* @author Nicola Asuni
|
||||||
* @version 5.9.116
|
* @version 5.9.117
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Main configuration file. Define the K_TCPDF_EXTERNAL_CONFIG constant to skip this file.
|
// Main configuration file. Define the K_TCPDF_EXTERNAL_CONFIG constant to skip this file.
|
||||||
@ -148,7 +148,7 @@ require_once(dirname(__FILE__).'/config/tcpdf_config.php');
|
|||||||
* TCPDF project (http://www.tcpdf.org) has been originally derived in 2002 from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org), but now is almost entirely rewritten.<br>
|
* TCPDF project (http://www.tcpdf.org) has been originally derived in 2002 from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org), but now is almost entirely rewritten.<br>
|
||||||
* @package com.tecnick.tcpdf
|
* @package com.tecnick.tcpdf
|
||||||
* @brief PHP class for generating PDF documents without requiring external extensions.
|
* @brief PHP class for generating PDF documents without requiring external extensions.
|
||||||
* @version 5.9.116
|
* @version 5.9.117
|
||||||
* @author Nicola Asuni - info@tecnick.com
|
* @author Nicola Asuni - info@tecnick.com
|
||||||
*/
|
*/
|
||||||
class TCPDF {
|
class TCPDF {
|
||||||
@ -159,7 +159,7 @@ class TCPDF {
|
|||||||
* Current TCPDF version.
|
* Current TCPDF version.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
private $tcpdf_version = '5.9.116';
|
private $tcpdf_version = '5.9.117';
|
||||||
|
|
||||||
// Protected properties
|
// Protected properties
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user