diff --git a/CHANGELOG.TXT b/CHANGELOG.TXT index 7d1c610..12ad1b1 100755 --- a/CHANGELOG.TXT +++ b/CHANGELOG.TXT @@ -1,3 +1,6 @@ +5.9.076 (2011-05-06) + - Bug item #3298264 "codebar 93 error" was fixed. + 5.9.075 (2011-05-02) - Table header alignment when using WriteHTMLCell() or MultiCell() was fixed. diff --git a/README.TXT b/README.TXT index 13e1b04..88a0131 100755 --- a/README.TXT +++ b/README.TXT @@ -8,8 +8,8 @@ http://sourceforge.net/donate/index.php?group_id=128076 ------------------------------------------------------------ Name: TCPDF -Version: 5.9.075 -Release date: 2011-05-02 +Version: 5.9.076 +Release date: 2011-05-06 Author: Nicola Asuni Copyright (c) 2002-2011: diff --git a/barcodes.php b/barcodes.php index a16ed6e..3d6ceb9 100755 --- a/barcodes.php +++ b/barcodes.php @@ -1,13 +1,13 @@ * @package com.tecnick.tcpdf - * @version 1.0.012 + * @version 1.0.013 * @author Nicola Asuni */ class TCPDFBarcode { @@ -392,54 +392,54 @@ class TCPDFBarcode { * @protected */ protected function barcode_code93($code) { - $chr['0'] = '131112'; - $chr['1'] = '111213'; - $chr['2'] = '111312'; - $chr['3'] = '111411'; - $chr['4'] = '121113'; - $chr['5'] = '121212'; - $chr['6'] = '121311'; - $chr['7'] = '111114'; - $chr['8'] = '131211'; - $chr['9'] = '141111'; - $chr['A'] = '211113'; - $chr['B'] = '211212'; - $chr['C'] = '211311'; - $chr['D'] = '221112'; - $chr['E'] = '221211'; - $chr['F'] = '231111'; - $chr['G'] = '112113'; - $chr['H'] = '112212'; - $chr['I'] = '112311'; - $chr['J'] = '122112'; - $chr['K'] = '132111'; - $chr['L'] = '111123'; - $chr['M'] = '111222'; - $chr['N'] = '111321'; - $chr['O'] = '121122'; - $chr['P'] = '131121'; - $chr['Q'] = '212112'; - $chr['R'] = '212211'; - $chr['S'] = '211122'; - $chr['T'] = '211221'; - $chr['U'] = '221121'; - $chr['V'] = '222111'; - $chr['W'] = '112122'; - $chr['X'] = '112221'; - $chr['Y'] = '122121'; - $chr['Z'] = '123111'; - $chr['-'] = '121131'; - $chr['.'] = '311112'; - $chr[' '] = '311211'; - $chr['$'] = '321111'; - $chr['/'] = '112131'; - $chr['+'] = '113121'; - $chr['%'] = '211131'; + $chr[48] = '131112'; // 0 + $chr[49] = '111213'; // 1 + $chr[50] = '111312'; // 2 + $chr[51] = '111411'; // 3 + $chr[52] = '121113'; // 4 + $chr[53] = '121212'; // 5 + $chr[54] = '121311'; // 6 + $chr[55] = '111114'; // 7 + $chr[56] = '131211'; // 8 + $chr[57] = '141111'; // 9 + $chr[65] = '211113'; // A + $chr[66] = '211212'; // B + $chr[67] = '211311'; // C + $chr[68] = '221112'; // D + $chr[69] = '221211'; // E + $chr[70] = '231111'; // F + $chr[71] = '112113'; // G + $chr[72] = '112212'; // H + $chr[72] = '112311'; // I + $chr[74] = '122112'; // J + $chr[75] = '132111'; // K + $chr[76] = '111123'; // L + $chr[77] = '111222'; // M + $chr[78] = '111321'; // N + $chr[79] = '121122'; // O + $chr[80] = '131121'; // P + $chr[81] = '212112'; // Q + $chr[82] = '212211'; // R + $chr[83] = '211122'; // S + $chr[84] = '211221'; // T + $chr[85] = '221121'; // U + $chr[86] = '222111'; // V + $chr[87] = '112122'; // W + $chr[88] = '112221'; // X + $chr[89] = '122121'; // Y + $chr[90] = '123111'; // Z + $chr[45] = '121131'; // - + $chr[46] = '311112'; // . + $chr[32] = '311211'; // + $chr[36] = '321111'; // $ + $chr[47] = '112131'; // / + $chr[43] = '113121'; // + + $chr[37] = '211131'; // % $chr[128] = '121221'; // ($) $chr[129] = '311121'; // (/) $chr[130] = '122211'; // (+) $chr[131] = '312111'; // (%) - $chr['*'] = '111141'; + $chr[42] = '111141'; // start-stop $code = strtoupper($code); $encode = array( chr(0) => chr(131).'U', chr(1) => chr(128).'A', chr(2) => chr(128).'B', chr(3) => chr(128).'C', @@ -483,14 +483,14 @@ class TCPDFBarcode { $code_ext .= $encode[$code{$i}]; } // checksum - $code .= $this->checksum_code93($code); + $code_ext .= $this->checksum_code93($code_ext); // add start and stop codes - $code = '*'.$code.'*'; + $code = '*'.$code_ext.'*'; $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); $k = 0; $clen = strlen($code); for ($i = 0; $i < $clen; ++$i) { - $char = $code{$i}; + $char = ord($code{$i}); if(!isset($chr[$char])) { // invalid character return false; @@ -524,9 +524,10 @@ class TCPDFBarcode { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', - 'W', 'X', 'Y', 'Z', '-', '.', ' ', '$', '/', '+', '%'); + 'W', 'X', 'Y', 'Z', '-', '.', ' ', '$', '/', '+', '%', + '<', '=', '>', '?'); // translate special characters - $code = strtr($code, chr(128).chr(129).chr(130).chr(131), '$/+%'); + $code = strtr($code, chr(128).chr(131).chr(129).chr(130), '<=>?'); $len = strlen($code); // calculate check digit C $p = 1; @@ -555,7 +556,10 @@ class TCPDFBarcode { } $check %= 47; $k = $chars[$check]; - return $c.$k; + $checksum = $c.$k; + // resto respecial characters + $checksum = strtr($checksum, '<=>?', chr(128).chr(131).chr(129).chr(130)); + return $checksum; } /** @@ -1544,7 +1548,6 @@ class TCPDFBarcode { '-' => '112111', 'S' => '112211' ); - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); $k = 0; $w = 0; diff --git a/tcpdf.php b/tcpdf.php index ac1bb9c..97a974e 100755 --- a/tcpdf.php +++ b/tcpdf.php @@ -1,9 +1,9 @@ * @package com.tecnick.tcpdf * @author Nicola Asuni - * @version 5.9.075 + * @version 5.9.076 */ // Main configuration file. Define the K_TCPDF_EXTERNAL_CONFIG constant to skip this file. @@ -146,7 +146,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.
* @package com.tecnick.tcpdf * @brief PHP class for generating PDF documents without requiring external extensions. - * @version 5.9.075 + * @version 5.9.076 * @author Nicola Asuni - info@tecnick.com */ class TCPDF { @@ -157,7 +157,7 @@ class TCPDF { * Current TCPDF version. * @private */ - private $tcpdf_version = '5.9.075'; + private $tcpdf_version = '5.9.076'; // Protected properties @@ -23449,7 +23449,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: * @param $filler (string) string used to fill the space between text and page number. * @param $toc_name (string) name to use for TOC bookmark. * @param $style (string) Font style for title: B = Bold, I = Italic, BI = Bold + Italic. - * @param $color (array) RGB color array for title (values from 0 to 255). + * @param $color (array) RGB color array for bookmark title (values from 0 to 255). * @public * @author Nicola Asuni * @since 4.5.000 (2009-01-02)