mirror of
https://github.com/tecnickcom/TCPDF.git
synced 2025-03-24 07:59:55 +01:00
Merge branch 'main' into curl-hardening
This commit is contained in:
commit
76864e25f5
4
.gitignore
vendored
4
.gitignore
vendored
@ -1 +1,3 @@
|
||||
.idea
|
||||
.idea
|
||||
.phpdoc
|
||||
*.bak
|
||||
|
@ -740,6 +740,7 @@ class PDF417 {
|
||||
* @protected
|
||||
*/
|
||||
protected function getErrorCorrectionLevel($ecl, $numcw) {
|
||||
$maxecl = 8; // starting error level
|
||||
// check for automatic levels
|
||||
if (($ecl < 0) OR ($ecl > 8)) {
|
||||
if ($numcw < 41) {
|
||||
@ -755,7 +756,6 @@ class PDF417 {
|
||||
}
|
||||
}
|
||||
// get maximum correction level
|
||||
$maxecl = 8; // starting error level
|
||||
$maxerrsize = (928 - $numcw); // available codewords for error
|
||||
while ($maxecl > 0) {
|
||||
$errsize = (2 << $ecl);
|
||||
|
@ -1386,6 +1386,7 @@ class QRcode {
|
||||
$p += 2;
|
||||
}
|
||||
$this->items = $this->appendNewInputItem($this->items, QR_MODE_KJ, $p, str_split($this->dataStr));
|
||||
$run = $p;
|
||||
return $run;
|
||||
}
|
||||
|
||||
@ -1455,7 +1456,7 @@ class QRcode {
|
||||
break;
|
||||
}
|
||||
case QR_MODE_KJ: {
|
||||
if ($hint == QR_MODE_KJ) {
|
||||
if ($this->hint == QR_MODE_KJ) {
|
||||
$length = $this->eatKanji();
|
||||
} else {
|
||||
$length = $this->eat8();
|
||||
|
@ -449,7 +449,7 @@ class TCPDF_COLORS {
|
||||
}
|
||||
if (!in_array($color, self::$jscolor)) {
|
||||
// default transparent color
|
||||
$color = $jscolor[0];
|
||||
$color = self::$jscolor[0];
|
||||
}
|
||||
return 'color.'.$color;
|
||||
}
|
||||
|
@ -557,6 +557,7 @@ class TCPDF_FONTS {
|
||||
$numGlyphs = TCPDF_STATIC::_getUSHORT($font, $offset);
|
||||
// ---------- get CIDToGIDMap ----------
|
||||
$ctg = array();
|
||||
$c = 0;
|
||||
foreach ($encodingTables as $enctable) {
|
||||
// get only specified Platform ID and Encoding ID
|
||||
if (($enctable['platformID'] == $platid) AND ($enctable['encodingID'] == $encid)) {
|
||||
@ -956,6 +957,7 @@ class TCPDF_FONTS {
|
||||
// sfnt version must be 0x00010000 for TrueType version 1.0.
|
||||
return $font;
|
||||
}
|
||||
$c = 0;
|
||||
$offset += 4;
|
||||
// get number of tables
|
||||
$numTables = TCPDF_STATIC::_getUSHORT($font, $offset);
|
||||
@ -1883,7 +1885,7 @@ class TCPDF_FONTS {
|
||||
* Converts UTF-8 character to integer value.<br>
|
||||
* Uses the getUniord() method if the value is not cached.
|
||||
* @param $uch (string) character string to process.
|
||||
* @return integer Unicode value
|
||||
* @return int Unicode value
|
||||
* @public static
|
||||
*/
|
||||
public static function uniord($uch) {
|
||||
@ -1922,7 +1924,7 @@ class TCPDF_FONTS {
|
||||
* ---------------------------------------------------------------------
|
||||
* </pre>
|
||||
* @param $uch (string) character string to process.
|
||||
* @return integer Unicode value
|
||||
* @return int Unicode value
|
||||
* @author Nicola Asuni
|
||||
* @public static
|
||||
*/
|
||||
@ -1995,7 +1997,7 @@ class TCPDF_FONTS {
|
||||
* @author Nicola Asuni
|
||||
* @public static
|
||||
*/
|
||||
public static function UTF8StringToArray($str, $isunicode=true, &$currentfont=array()) {
|
||||
public static function UTF8StringToArray($str, $isunicode, &$currentfont) {
|
||||
if ($isunicode) {
|
||||
// requires PCRE unicode support turned on
|
||||
$chars = TCPDF_STATIC::pregSplit('//','u', $str, -1, PREG_SPLIT_NO_EMPTY);
|
||||
@ -2021,7 +2023,7 @@ class TCPDF_FONTS {
|
||||
* @since 3.2.000 (2008-06-23)
|
||||
* @public static
|
||||
*/
|
||||
public static function UTF8ToLatin1($str, $isunicode=true, &$currentfont=array()) {
|
||||
public static function UTF8ToLatin1($str, $isunicode, &$currentfont) {
|
||||
$unicode = self::UTF8StringToArray($str, $isunicode, $currentfont); // array containing UTF-8 unicode values
|
||||
return self::UTF8ArrToLatin1($unicode);
|
||||
}
|
||||
@ -2037,7 +2039,7 @@ class TCPDF_FONTS {
|
||||
* @since 1.53.0.TC005 (2005-01-05)
|
||||
* @public static
|
||||
*/
|
||||
public static function UTF8ToUTF16BE($str, $setbom=false, $isunicode=true, &$currentfont=array()) {
|
||||
public static function UTF8ToUTF16BE($str, $setbom, $isunicode, &$currentfont) {
|
||||
if (!$isunicode) {
|
||||
return $str; // string is not in unicode
|
||||
}
|
||||
@ -2057,7 +2059,7 @@ class TCPDF_FONTS {
|
||||
* @since 2.1.000 (2008-01-08)
|
||||
* @public static
|
||||
*/
|
||||
public static function utf8StrRev($str, $setbom=false, $forcertl=false, $isunicode=true, &$currentfont=array()) {
|
||||
public static function utf8StrRev($str, $setbom, $forcertl, $isunicode, &$currentfont) {
|
||||
return self::utf8StrArrRev(self::UTF8StringToArray($str, $isunicode, $currentfont), $str, $setbom, $forcertl, $isunicode, $currentfont);
|
||||
}
|
||||
|
||||
@ -2074,7 +2076,7 @@ class TCPDF_FONTS {
|
||||
* @since 4.9.000 (2010-03-27)
|
||||
* @public static
|
||||
*/
|
||||
public static function utf8StrArrRev($arr, $str='', $setbom=false, $forcertl=false, $isunicode=true, &$currentfont=array()) {
|
||||
public static function utf8StrArrRev($arr, $str, $setbom, $forcertl, $isunicode, &$currentfont) {
|
||||
return self::arrUTF8ToUTF16BE(self::utf8Bidi($arr, $str, $forcertl, $isunicode, $currentfont), $setbom);
|
||||
}
|
||||
|
||||
@ -2090,7 +2092,7 @@ class TCPDF_FONTS {
|
||||
* @since 2.4.000 (2008-03-06)
|
||||
* @public static
|
||||
*/
|
||||
public static function utf8Bidi($ta, $str='', $forcertl=false, $isunicode=true, &$currentfont=array()) {
|
||||
public static function utf8Bidi($ta, $str, $forcertl, $isunicode, &$currentfont) {
|
||||
// paragraph embedding level
|
||||
$pel = 0;
|
||||
// max level
|
||||
|
@ -276,7 +276,7 @@ class TCPDF_STATIC {
|
||||
/**
|
||||
* Determine whether a string is empty.
|
||||
* @param $str (string) string to be checked
|
||||
* @return boolean true if string is empty
|
||||
* @return bool true if string is empty
|
||||
* @since 4.5.044 (2009-04-16)
|
||||
* @public static
|
||||
*/
|
||||
@ -1136,7 +1136,7 @@ class TCPDF_STATIC {
|
||||
* @see setHtmlVSpace()
|
||||
* @public static
|
||||
*/
|
||||
public static function fixHTMLCode($html, $default_css='', $tagvs='', $tidy_options='', &$tagvspaces=array()) {
|
||||
public static function fixHTMLCode($html, $default_css, $tagvs, $tidy_options, &$tagvspaces) {
|
||||
// configure parameters for HTML Tidy
|
||||
if ($tidy_options === '') {
|
||||
$tidy_options = array (
|
||||
@ -2515,7 +2515,7 @@ class TCPDF_STATIC {
|
||||
* @since 5.0.010 (2010-05-17)
|
||||
* @public static
|
||||
*/
|
||||
public static function setPageBoxes($page, $type, $llx, $lly, $urx, $ury, $points=false, $k=1, $pagedim=array()) {
|
||||
public static function setPageBoxes($page, $type, $llx, $lly, $urx, $ury, $points, $k, $pagedim=array()) {
|
||||
if (!isset($pagedim[$page])) {
|
||||
// initialize array
|
||||
$pagedim[$page] = array();
|
||||
|
65
tcpdf.php
65
tcpdf.php
@ -2728,7 +2728,7 @@ class TCPDF {
|
||||
/**
|
||||
* Adjust the internal Cell padding array to take account of the line width.
|
||||
* @param $brd (mixed) Indicates if borders must be drawn around the cell. The value can be a number:<ul><li>0: no border (default)</li><li>1: frame</li></ul> or a string containing some or all of the following characters (in any order):<ul><li>L: left</li><li>T: top</li><li>R: right</li><li>B: bottom</li></ul> or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0)))
|
||||
* @return array of adjustments
|
||||
* @return void|array of adjustments
|
||||
* @public
|
||||
* @since 5.9.000 (2010-10-03)
|
||||
*/
|
||||
@ -2744,7 +2744,11 @@ class TCPDF {
|
||||
$newbrd[$brd[$i]] = true;
|
||||
}
|
||||
$brd = $newbrd;
|
||||
} elseif (($brd === 1) OR ($brd === true) OR (is_numeric($brd) AND (intval($brd) > 0))) {
|
||||
} elseif (
|
||||
($brd === 1)
|
||||
|| ($brd === true)
|
||||
|| (is_numeric($brd) && ((int)$brd > 0))
|
||||
) {
|
||||
$brd = array('LRTB' => true);
|
||||
}
|
||||
if (!is_array($brd)) {
|
||||
@ -2762,7 +2766,7 @@ class TCPDF {
|
||||
// process borders
|
||||
foreach ($brd as $border => $style) {
|
||||
$line_width = $this->LineWidth;
|
||||
if (is_array($style) AND isset($style['width'])) {
|
||||
if (is_array($style) && isset($style['width'])) {
|
||||
// get border width
|
||||
$line_width = $style['width'];
|
||||
}
|
||||
@ -2783,20 +2787,43 @@ class TCPDF {
|
||||
}
|
||||
}
|
||||
// correct internal cell padding if required to avoid overlap between text and lines
|
||||
if ((strpos($border,'T') !== false) AND ($this->cell_padding['T'] < $adj)) {
|
||||
if (
|
||||
is_numeric($this->cell_padding['T'])
|
||||
&& ($this->cell_padding['T'] < $adj)
|
||||
&& (strpos($border, 'T') !== false)
|
||||
) {
|
||||
$this->cell_padding['T'] = $adj;
|
||||
}
|
||||
if ((strpos($border,'R') !== false) AND ($this->cell_padding['R'] < $adj)) {
|
||||
if (
|
||||
is_numeric($this->cell_padding['R'])
|
||||
&& ($this->cell_padding['R'] < $adj)
|
||||
&& (strpos($border, 'R') !== false)
|
||||
) {
|
||||
$this->cell_padding['R'] = $adj;
|
||||
}
|
||||
if ((strpos($border,'B') !== false) AND ($this->cell_padding['B'] < $adj)) {
|
||||
if (
|
||||
is_numeric($this->cell_padding['B'])
|
||||
&& ($this->cell_padding['B'] < $adj)
|
||||
&& (strpos($border, 'B') !== false)
|
||||
) {
|
||||
$this->cell_padding['B'] = $adj;
|
||||
}
|
||||
if ((strpos($border,'L') !== false) AND ($this->cell_padding['L'] < $adj)) {
|
||||
if (
|
||||
is_numeric($this->cell_padding['L'])
|
||||
&& ($this->cell_padding['L'] < $adj)
|
||||
&& (strpos($border, 'L') !== false)
|
||||
) {
|
||||
$this->cell_padding['L'] = $adj;
|
||||
}
|
||||
|
||||
}
|
||||
return array('T' => ($this->cell_padding['T'] - $cp['T']), 'R' => ($this->cell_padding['R'] - $cp['R']), 'B' => ($this->cell_padding['B'] - $cp['B']), 'L' => ($this->cell_padding['L'] - $cp['L']));
|
||||
|
||||
return array(
|
||||
'T' => ($this->cell_padding['T'] - $cp['T']),
|
||||
'R' => ($this->cell_padding['R'] - $cp['R']),
|
||||
'B' => ($this->cell_padding['B'] - $cp['B']),
|
||||
'L' => ($this->cell_padding['L'] - $cp['L']),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -16555,7 +16582,11 @@ class TCPDF {
|
||||
$dom[($dom[$key]['parent'])]['content'] = str_replace('</thead>', '', $dom[($dom[$key]['parent'])]['content']);
|
||||
}
|
||||
// store header rows on a new table
|
||||
if (($dom[$key]['value'] == 'tr') AND ($dom[($dom[$key]['parent'])]['thead'] === true)) {
|
||||
if (
|
||||
($dom[$key]['value'] === 'tr')
|
||||
&& !empty($dom[($dom[$key]['parent'])]['thead'])
|
||||
&& ($dom[($dom[$key]['parent'])]['thead'] === true)
|
||||
) {
|
||||
if (TCPDF_STATIC::empty_string($dom[($dom[($dom[$key]['parent'])]['parent'])]['thead'])) {
|
||||
$dom[($dom[($dom[$key]['parent'])]['parent'])]['thead'] = $csstagarray.$a[$dom[($dom[($dom[$key]['parent'])]['parent'])]['elkey']];
|
||||
}
|
||||
@ -16985,10 +17016,20 @@ class TCPDF {
|
||||
// rows on thead block are printed as a separate table
|
||||
} else {
|
||||
$dom[$key]['thead'] = false;
|
||||
$parent = $dom[$key]['parent'];
|
||||
|
||||
if (!isset($dom[$parent]['rows'])) {
|
||||
$dom[$parent]['rows'] = 0;
|
||||
}
|
||||
// store the number of rows on table element
|
||||
++$dom[($dom[$key]['parent'])]['rows'];
|
||||
++$dom[$parent]['rows'];
|
||||
|
||||
if (!isset($dom[$parent]['trids'])) {
|
||||
$dom[$parent]['trids'] = array();
|
||||
}
|
||||
|
||||
// store the TR elements IDs on table element
|
||||
array_push($dom[($dom[$key]['parent'])]['trids'], $key);
|
||||
array_push($dom[$parent]['trids'], $key);
|
||||
}
|
||||
}
|
||||
if (($dom[$key]['value'] == 'th') OR ($dom[$key]['value'] == 'td')) {
|
||||
@ -19813,7 +19854,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
|
||||
}
|
||||
}
|
||||
if (!$in_table_head) { // we are not inside a thead section
|
||||
$this->cell_padding = $table_el['old_cell_padding'];
|
||||
$this->cell_padding = isset($table_el['old_cell_padding']) ? $table_el['old_cell_padding'] : null;
|
||||
// reset row height
|
||||
$this->resetLastH();
|
||||
if (($this->page == ($this->numpages - 1)) AND ($this->pageopen[$this->numpages])) {
|
||||
|
@ -938,7 +938,7 @@ class TCPDFBarcode {
|
||||
} else {
|
||||
$t = false; // space
|
||||
}
|
||||
$w = $seq[$j];
|
||||
$w = (float)$seq[$j];
|
||||
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||
$bararray['maxw'] += $w;
|
||||
++$k;
|
||||
@ -1271,7 +1271,7 @@ class TCPDFBarcode {
|
||||
} else {
|
||||
$t = false; // space
|
||||
}
|
||||
$w = $seq[$j];
|
||||
$w = (float)$seq[$j];
|
||||
$bararray['bcode'][] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||
$bararray['maxw'] += $w;
|
||||
}
|
||||
@ -1856,7 +1856,7 @@ class TCPDFBarcode {
|
||||
} else {
|
||||
$t = false; // space
|
||||
}
|
||||
$w = $seq[$j];
|
||||
$w = (float)$seq[$j];
|
||||
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||
$bararray['maxw'] += $w;
|
||||
++$k;
|
||||
@ -1947,7 +1947,7 @@ class TCPDFBarcode {
|
||||
} else {
|
||||
$t = false; // space
|
||||
}
|
||||
$w = $seq[$j];
|
||||
$w = (float)$seq[$j];
|
||||
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||
$bararray['maxw'] += $w;
|
||||
++$k;
|
||||
|
Loading…
x
Reference in New Issue
Block a user