N°7175 Update tecnickcom/tcpdf from 6.4.4 to 6.6.5

This commit is contained in:
Pierre Goiffon
2024-01-30 16:58:01 +01:00
parent 0e91c75dc2
commit 0a9c5250f8
108 changed files with 722 additions and 210 deletions

View File

@@ -1,3 +1,55 @@
6.6.5 (2023-09-06)
- Fix corrupted file.
6.6.4 (2023-09-06)
- Fix GitHub automation tests.
6.6.3 (2023-09-06)
- Fix SPDX license ID (#591)
- Fix warning "array offset on value of type null" (#620)
- Improve the README about the status of this library (#589)
- Fix deprecation warning with PHP 8.1 (#614)
- Fixes for PHP 8.2 in tcpdf_fonts.php (#632)
- Fix some php 8+ edge cases (#630)
- Fix composite glyph output (#581)
- Fix "access array offset on value of type bool" with PDF/A (#583)
- Fix non-numeric value warning (#627)
- Fix issues with S25 barcode (#611)
- Fix return type annotations (#613)
- Fix some inconsistencies in type hints (#598)
6.6.2 (2022-12-17)
- Ensure pregSplit return type is always array.
- Add ability to run tests on various operating systems (#566)
- Avoid a deprecated error from PHP8.1 (#573)
6.6.1 (2022-12-12)
- Add PHPStan and fix level 1 errors (#307)
6.6.0 (2022-12-06)
- Multi-byte character support for filename during output (#561). (#562)
- Fix garbage collection (#509)
- FIX: PDF417 corrupt output problem, solution set bcmath scale parameter to zero (#534)
- Fix TypeError: count() in PHP8 (#556)
- Fix-getHTMLFontUnits (#547)
- Improved embedded image in HTML allowing src="data:..." format (#552)
- Fix image abscissa when in RTL (#510)
- fix: php 8.1 notices (#548)
- Optimize PNG files (#563)
- Update documentation for a known issue. (#569)
- Fix for PHP 8.1 (#571)
6.5.0 (2022-08-12)
- encodeUrlQuery takes into account the port (#493)
- Fixing undefined offset error in writeHTML() when last DOM element ha…
- correct some type hints (#495)
- fix: php 8.1 notices (#481)
- Fixed: null check for PHP 8.1 (#476)
- Fix Infinite Loop in Multicell with Auto Page Breaks Off (#473)
- GetCssBorderStyle Has Problem When !important Is Specified (#467)
- Support Apache 2.4 directives in htaccess file (#530)
- Remove examples from dist package (#542)
6.4.4 (2021-12-31)
- PHP 8.1 fixes

View File

@@ -7,7 +7,7 @@
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
2002-2019 Nicola Asuni - Tecnick.com LTD
2002-2023 Nicola Asuni - Tecnick.com LTD
**********************************************************************
**********************************************************************

View File

@@ -6,15 +6,14 @@
* **category** Library
* **author** Nicola Asuni <info@tecnick.com>
* **copyright** 2002-2021 Nicola Asuni - Tecnick.com LTD
* **copyright** 2002-2023 Nicola Asuni - Tecnick.com LTD
* **license** http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
* **link** http://www.tcpdf.org
* **source** https://github.com/tecnickcom/TCPDF
## IMPORTANT
A new version of this library is under development at https://github.com/tecnickcom/tc-lib-pdf and as a consequence this version will not receive any additional development or support.
This version should be considered obsolete, new projects should use the new version as soon it will become stable.
## NOTE
A new version of this library is under development at https://github.com/tecnickcom/tc-lib-pdf and as a consequence this library is in support only mode.

View File

@@ -1 +1 @@
6.4.4
6.6.5

View File

@@ -12,8 +12,8 @@
"barcodes"
],
"homepage": "http://www.tcpdf.org/",
"version": "6.4.4",
"license": "LGPL-3.0-only",
"version": "6.6.5",
"license": "LGPL-3.0-or-later",
"authors": [
{
"name": "Nicola Asuni",
@@ -43,5 +43,10 @@
"include/barcodes/pdf417.php",
"include/barcodes/qrcode.php"
]
},
"archive": {
"exclude": [
"/examples"
]
}
}

View File

@@ -37,6 +37,10 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.000
* @group barcode
* @group 1d
* @group html
* @group comparable
*/
// include 1D barcode class (search for installation path)

View File

@@ -37,6 +37,9 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.000
* @group barcode
* @group 1d
* @group png
*/
// include 1D barcode class (search for installation path)

View File

@@ -37,6 +37,10 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.000
* @group barcode
* @group 1d
* @group svg
* @group comparable
*/
// include 1D barcode class (search for installation path)

View File

@@ -37,6 +37,10 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.000
* @group barcode
* @group 1d
* @group svg
* @group comparable
*/
// include 1D barcode class (search for installation path)

View File

@@ -37,6 +37,10 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.009
* @group barcode
* @group datamatrix
* @group html
* @group comparable
*/
// include 2D barcode class (search for installation path)

View File

@@ -37,6 +37,9 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.009
* @group barcode
* @group datamatrix
* @group png
*/
// include 2D barcode class (search for installation path)

View File

@@ -37,6 +37,10 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.009
* @group barcode
* @group datamatrix
* @group svg
* @group comparable
*/
// include 2D barcode class (search for installation path)

View File

@@ -37,6 +37,10 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.009
* @group barcode
* @group datamatrix
* @group svg
* @group comparable
*/
// include 2D barcode class (search for installation path)

View File

@@ -37,6 +37,10 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.009
* @group barcode
* @group pdf417
* @group html
* @group comparable
*/
// include 2D barcode class (search for installation path)

View File

@@ -37,6 +37,9 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.009
* @group barcode
* @group pdf417
* @group png
*/
// include 2D barcode class (search for installation path)

View File

@@ -37,6 +37,10 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.009
* @group barcode
* @group pdf417
* @group svg
* @group comparable
*/
// include 2D barcode class (search for installation path)

View File

@@ -37,6 +37,10 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.009
* @group barcode
* @group pdf417
* @group svg
* @group comparable
*/
// include 2D barcode class (search for installation path)

View File

@@ -37,6 +37,9 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.009
* @group barcode
* @group qrcode
* @group html
*/
// include 2D barcode class (search for installation path)

View File

@@ -37,6 +37,9 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.009
* @group barcode
* @group qrcode
* @group png
*/
// include 2D barcode class (search for installation path)

View File

@@ -37,6 +37,9 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.009
* @group barcode
* @group qrcode
* @group svg
*/
// include 2D barcode class (search for installation path)

View File

@@ -37,6 +37,9 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 1.0.009
* @group barcode
* @group qrcode
* @group svg
*/
// include 2D barcode class (search for installation path)

View File

@@ -22,6 +22,10 @@
* @abstract TCPDF - Example: Default Header and Footer
* @author Nicola Asuni
* @since 2008-03-04
* @group header
* @group footer
* @group page
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,10 @@
* @abstract TCPDF - Example: Removing Header and Footer
* @author Nicola Asuni
* @since 2008-03-04
* @group header
* @group footer
* @group page
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,10 @@
* @abstract TCPDF - Example: Custom Header and Footer
* @author Nicola Asuni
* @since 2008-03-04
* @group header
* @group footer
* @group page
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Cell stretching
* @author Nicola Asuni
* @since 2008-03-04
* @group cell
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Multicell
* @author Nicola Asuni
* @since 2008-03-04
* @group cell
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,9 @@
* @abstract TCPDF - Example: WriteHTML and RTL support
* @author Nicola Asuni
* @since 2008-03-04
* @group html
* @group rtl
* @group pdf
*/
// Include the main TCPDF library (search for installation path).
@@ -224,6 +227,20 @@ $html = '<h1>Image alignments on HTML table</h1>
// output the HTML content
$pdf->writeHTML($html, true, false, true, false, '');
// create some HTML content
$html = '<h1>Embedded Images</h1>
<table cellpadding="1" cellspacing="1" border="1" style="text-align:center;">
<tr><td>src="@..." </td><td><img src="@DATA1@" border="0" height="41" width="41" /></td></tr>
<tr><td>src="data..."</td><td><img src="@DATA2@" border="0" height="41" width="41" /></td></tr>
</table>';
$data = base64_encode(file_get_contents("images/logo_example.png"));
$html = str_replace("@DATA1@", "@" . $data, $html);
$html = str_replace("@DATA2@", "data:image/png;base64," . $data, $html);
// output the HTML content
$pdf->writeHTML($html, true, false, true, false, '');
// reset pointer to the last page
$pdf->lastPage();

View File

@@ -22,6 +22,10 @@
* @abstract TCPDF - Example: Two independent columns with WriteHTMLCell()
* @author Nicola Asuni
* @since 2008-03-04
* @group column
* @group cell
* @group html
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Include external UTF-8 text file
* @author Nicola Asuni
* @since 2008-03-04
* @group unicode
* @group pdf
*/
// Include the main TCPDF library (search for installation path).
@@ -75,7 +77,7 @@ $pdf->setFont('freeserif', '', 12);
// add a page
$pdf->AddPage();
// get esternal file content
// get external file content
$utf8text = file_get_contents('data/utf8test.txt', false);
// set color for text

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Test Image
* @author Nicola Asuni
* @since 2008-03-04
* @group image
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Text on multiple columns
* @author Nicola Asuni
* @since 2008-03-04
* @group column
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,9 @@
* @abstract TCPDF - Example: Colored Table
* @author Nicola Asuni
* @since 2008-03-04
* @group table
* @group color
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Graphic Functions
* @author Nicola Asuni
* @since 2008-03-04
* @group drawing
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Graphic Transformations
* @author Nicola Asuni
* @since 2008-03-04
* @group drawing
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,9 @@
* @abstract TCPDF - Example: Javascript Form and user rights (only works on Adobe Acrobat)
* @author Nicola Asuni
* @since 2008-03-04
* @group javascript
* @group form
* @group pdf
*/
@@ -70,7 +73,7 @@ if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
// IMPORTANT: disable font subsetting to allow users editing the document
$pdf->setFontSubsetting(false);
// set font
// set font. 'helvetica' MUST be used to avoid a PHP notice from PHP 7.4+
$pdf->setFont('helvetica', '', 10, '', false);
// add a page

View File

@@ -23,6 +23,9 @@
* @abstract TCPDF - Example: Bookmarks (Table of Content)
* @author Nicola Asuni
* @since 2008-03-04
* @group toc
* @group bookmark
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Document Encryption / Security
* @author Nicola Asuni
* @since 2008-03-04
* @group security
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,9 @@
* @abstract TCPDF - Example: Two independent columns with MultiCell
* @author Nicola Asuni
* @since 2008-03-04
* @group column
* @group cell
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: RTL document with Persian language
* @author Nicola Asuni
* @since 2008-03-06
* @group rtl
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Non unicode with alternative config file
* @author Nicola Asuni
* @since 2008-03-04
* @group unicode
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -23,6 +23,9 @@
* @abstract TCPDF - Example: Two columns composed by MultiCell of different heights
* @author Nicola Asuni
* @since 2008-03-04
* @group cell
* @group column
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: WriteHTML text flow.
* @author Nicola Asuni
* @since 2008-03-04
* @group html
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: CMYK colors.
* @author Nicola Asuni
* @since 2008-03-04
* @group color
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Page Groups.
* @author Nicola Asuni
* @since 2008-03-04
* @group page
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Object Visibility and Layers
* @author Nicola Asuni
* @since 2008-03-04
* @group drawing
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Object Transparency
* @author Nicola Asuni
* @since 2008-03-04
* @group drawing
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,7 @@
* @abstract TCPDF - Example: Text Rendering Modes and Text Clipping
* @author Nicola Asuni
* @since 2008-03-04
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: 1D Barcodes.
* @author Nicola Asuni
* @since 2008-03-04
* @group barcode
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: changing page formats
* @author Nicola Asuni
* @since 2008-03-04
* @group page
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Set PDF viewer display preferences.
* @author Nicola Asuni
* @since 2008-06-09
* @group viewer
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Colour gradients
* @author Nicola Asuni
* @since 2008-06-09
* @group color
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Pie Chart
* @author Nicola Asuni
* @since 2008-06-09
* @group drawing
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: EPS/AI image
* @author Nicola Asuni
* @since 2008-06-09
* @group image
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Mixed font types
* @author Nicola Asuni
* @since 2008-06-24
* @group font
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Clipping
* @author Nicola Asuni
* @since 2008-03-04
* @group cell
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Line styles with cells and multicells
* @author Nicola Asuni
* @since 2008-03-04
* @group cell
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Annotations
* @author Nicola Asuni
* @since 2008-08-08
* @group annotation
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Spot colors.
* @author Nicola Asuni
* @since 2008-09-12
* @group color
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: CID-0 CJK unembedded font
* @author Nicola Asuni
* @since 2008-09-15
* @group font
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: HTML justification
* @author Nicola Asuni
* @since 2008-10-18
* @group html
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Booklet mode (double-sided pages)
* @author Nicola Asuni
* @since 2008-10-28
* @group page
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,9 @@
* @abstract TCPDF - Annotation - FileAttachment
* @author Nicola Asuni
* @since 2008-12-07
* @group annotation
* @group attachment
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Test Image with alpha channel
* @author Nicola Asuni
* @since 2008-12-23
* @group image
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Disk caching
* @author Nicola Asuni
* @since 2009-01-02
* @group cache
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Move, copy and delete pages
* @author Nicola Asuni
* @since 2009-01-02
* @group page
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,9 @@
* @abstract TCPDF - Example: Bookmarks and Table of Content
* @author Nicola Asuni
* @since 2008-03-04
* @group toc
* @group bookmark
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: text Hyphenation
* @author Nicola Asuni
* @since 2009-02-28
* @group text
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Transactions
* @author Nicola Asuni
* @since 2009-03-19
* @group transaction
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,9 @@
* @abstract TCPDF - Example: HTML tables and table headers
* @author Nicola Asuni
* @since 2009-03-20
* @group html
* @group table
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: WriteHTML with TCPDF callback functions
* @author Nicola Asuni
* @since 2008-03-04
* @group html
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: 2D barcodes.
* @author Nicola Asuni
* @since 2008-03-04
* @group barcode
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,9 @@
* @abstract TCPDF - Example: Full page background
* @author Nicola Asuni
* @since 2009-04-16
* @group background
* @group page
* @group pdf
*/
// Include the main TCPDF library (search for installation path).
@@ -40,7 +43,7 @@ class MYPDF extends TCPDF {
$this->setAutoPageBreak(false, 0);
// set bacground image
$img_file = K_PATH_IMAGES.'image_demo.jpg';
$this->Image($img_file, 0, 0, 210, 297, '', '', '', false, 300, '', false, false, 0);
$this->Image($img_file, null, 0, 210, 297, '', '', '', false, 300, 'C', false, false, 0);
// restore auto-page-break status
$this->setAutoPageBreak($auto_page_break, $bMargin);
// set the starting point for the page content
@@ -124,7 +127,7 @@ $auto_page_break = $pdf->getAutoPageBreak();
$pdf->setAutoPageBreak(false, 0);
// set bacground image
$img_file = K_PATH_IMAGES.'image_demo.jpg';
$pdf->Image($img_file, 0, 0, 210, 297, '', '', '', false, 300, '', false, false, 0);
$pdf->Image($img_file, null, 0, 210, 297, '', '', '', false, 300, 'C', false, false, 0);
// restore auto-page-break status
$pdf->setAutoPageBreak($auto_page_break, $bMargin);
// set the starting point for the page content

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Certification Signature (experimental)
* @author Nicola Asuni
* @since 2009-05-07
* @group security
* @group pdf
*/
// Include the main TCPDF library (search for installation path).
@@ -87,7 +89,7 @@ $info = array(
// set document signature
$pdf->setSignature($certificate, $certificate, 'tcpdfdemo', '', 2, $info);
// set font
// set font. 'helvetica' MUST be used to avoid a PHP notice from PHP 7.4+
$pdf->setFont('helvetica', '', 12);
// add a page

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Javascript example.
* @author Nicola Asuni
* @since 2009-09-02
* @group javascript
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,9 @@
* @abstract TCPDF - Example: XHTML Forms
* @author Nicola Asuni
* @since 2009-09-07
* @group html
* @group form
* @group pdf
*/
// Include the main TCPDF library (search for installation path).
@@ -69,7 +72,7 @@ if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
// IMPORTANT: disable font subsetting to allow users editing the document
$pdf->setFontSubsetting(false);
// set font
// set font. 'helvetica' MUST be used to avoid a PHP notice from PHP 7.4+
$pdf->setFont('helvetica', '', 10, '', false);
// add a page

View File

@@ -22,6 +22,9 @@
* @abstract TCPDF - Example: XHTML Forms
* @author Nicola Asuni
* @since 2009-10-21
* @group html
* @group form
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Crop marks and color registration bars
* @author Nicola Asuni
* @since 2010-03-26
* @group color
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Cell vertical alignments
* @author Nicola Asuni
* @since 2008-03-04
* @group cell
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,9 @@
* @abstract TCPDF - Example: SVG Image
* @author Nicola Asuni
* @since 2010-05-02
* @group svg
* @group image
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,9 @@
* @abstract TCPDF - Example: Table Of Content using HTML templates.
* @author Nicola Asuni
* @since 2010-05-06
* @group toc
* @group html
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Advanced page settings.
* @author Nicola Asuni
* @since 2010-05-17
* @group page
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,9 @@
* @abstract TCPDF - Example: XHTML + CSS
* @author Nicola Asuni
* @since 2010-05-25
* @group html
* @group css
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: XObject Template
* @author Nicola Asuni
* @since 2010-08-25
* @group object
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: Text stretching and spacing (tracking)
* @author Nicola Asuni
* @since 2010-09-29
* @group text
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: No-write page regions
* @author Nicola Asuni
* @since 2010-10-14
* @group page
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -22,6 +22,8 @@
* @abstract TCPDF - Example: PDF/A-1b mode
* @author Nicola Asuni
* @since 2011-09-28
* @group A-1b
* @group pdf
*/
// Include the main TCPDF library (search for installation path).

View File

@@ -14,6 +14,8 @@
* @abstract TCPDF - Example: PDF/A-1b mode
* @author Nicola Asuni
* @since 2021-03-26
* @group A-1b
* @group pdf
*/
// Load the autoloader, move one folder back from examples

View File

@@ -0,0 +1,223 @@
<?php
//============================================================+
// File name : example_067.php
// Begin : 2022-01-07
// Last Update : 2022-01-07
//
// Description : Example 067 for TCPDF class
// HTML tables with !important in style
//
// Author: Nicola Asuni
//
// (c) Copyright:
// Nicola Asuni
// Tecnick.com LTD
// www.tecnick.com
// info@tecnick.com
//============================================================+
/**
* Creates an example PDF TEST document using TCPDF
* @package com.tecnick.tcpdf
* @abstract TCPDF - Example: HTML tables and table headers
* @author Nicola Asuni
* @since 2009-03-20
* @group html
* @group table
* @group pdf
*/
// Include the main TCPDF library (search for installation path).
require_once('tcpdf_include.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->setCreator(PDF_CREATOR);
$pdf->setAuthor('Owen Leibman');
$pdf->setTitle('TCPDF Example 067');
$pdf->setSubject('TCPDF Tutorial');
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
// set default header data
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 067', PDF_HEADER_STRING);
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
require_once(dirname(__FILE__).'/lang/eng.php');
$pdf->setLanguageArray($l);
}
// ---------------------------------------------------------
// set font
$pdf->setFont('helvetica', 'B', 20);
// add a page
$pdf->AddPage();
$pdf->Write(0, 'Example of HTML tables', '', 0, 'L', true, 0, false, false, 0);
$pdf->setFont('helvetica', '', 8);
// -----------------------------------------------------------------------------
$tbl = <<<EOD
<table cellspacing="0" cellpadding="1" style="border: 1px dotted red;">
<tr>
<td rowspan="3">COL 1 - ROW 1<br />COLSPAN 3</td>
<td>COL 2 - ROW 1</td>
<td>COL 3 - ROW 1</td>
</tr>
<tr>
<td rowspan="2">COL 2 - ROW 2 - COLSPAN 2<br />text line<br />text line<br />text line<br />text line</td>
<td>COL 3 - ROW 2</td>
</tr>
<tr>
<td>COL 3 - ROW 3</td>
</tr>
</table>
EOD;
$pdf->writeHTML($tbl, true, false, false, false, '');
// -----------------------------------------------------------------------------
$tbl = <<<EOD
<table cellspacing="0" cellpadding="1" style="border: 1px dashed blue !important;">
<tr>
<td rowspan="3">COL 1 - ROW 1<br />COLSPAN 3</td>
<td>COL 2 - ROW 1</td>
<td>COL 3 - ROW 1</td>
</tr>
<tr>
<td rowspan="2">COL 2 - ROW 2 - COLSPAN 2<br />text line<br />text line<br />text line<br />text line</td>
<td>COL 3 - ROW 2</td>
</tr>
<tr>
<td>COL 3 - ROW 3</td>
</tr>
</table>
EOD;
$pdf->writeHTML($tbl, true, false, false, false, '');
// -----------------------------------------------------------------------------
$tbl = <<<EOD
<table cellspacing="0" cellpadding="1" style="border: 1px hair black !important;">
<tr>
<td rowspan="3">COL 1 - ROW 1<br />COLSPAN 3</td>
<td>COL 2 - ROW 1</td>
<td>COL 3 - ROW 1</td>
</tr>
<tr>
<td rowspan="2">COL 2 - ROW 2 - COLSPAN 2<br />text line<br />text line<br />text line<br />text line</td>
<td>COL 3 - ROW 2</td>
</tr>
<tr>
<td>COL 3 - ROW 3</td>
</tr>
</table>
EOD;
$pdf->writeHTML($tbl, true, false, false, false, '');
// -----------------------------------------------------------------------------
$tbl = <<<EOD
<table cellspacing="0" cellpadding="1" style="border: dashed green">
<tr>
<td rowspan="3">COL 1 - ROW 1<br />COLSPAN 3</td>
<td>COL 2 - ROW 1</td>
<td>COL 3 - ROW 1</td>
</tr>
<tr>
<td rowspan="2">COL 2 - ROW 2 - COLSPAN 2<br />text line<br />text line<br />text line<br />text line</td>
<td>COL 3 - ROW 2</td>
</tr>
<tr>
<td>COL 3 - ROW 3</td>
</tr>
</table>
EOD;
$pdf->writeHTML($tbl, true, false, false, false, '');
// -----------------------------------------------------------------------------
$tbl = <<<EOD
<table cellspacing="0" cellpadding="1" style="border: solid yellow !important">
<tr>
<td rowspan="3">COL 1 - ROW 1<br />COLSPAN 3</td>
<td>COL 2 - ROW 1</td>
<td>COL 3 - ROW 1</td>
</tr>
<tr>
<td rowspan="2">COL 2 - ROW 2 - COLSPAN 2<br />text line<br />text line<br />text line<br />text line</td>
<td>COL 3 - ROW 2</td>
</tr>
<tr>
<td>COL 3 - ROW 3</td>
</tr>
</table>
EOD;
$pdf->writeHTML($tbl, true, false, false, false, '');
// -----------------------------------------------------------------------------
// At medium thickness, which is what you get with only one
// setting for style, everything looks the same.
// Included just for completeness.
$tbl = <<<EOD
<table cellspacing="0" cellpadding="1" style="border: dashed">
<tr>
<td rowspan="3">COL 1 - ROW 1<br />COLSPAN 3</td>
<td>COL 2 - ROW 1</td>
<td>COL 3 - ROW 1</td>
</tr>
<tr>
<td rowspan="2">COL 2 - ROW 2 - COLSPAN 2<br />text line<br />text line<br />text line<br />text line</td>
<td>COL 3 - ROW 2</td>
</tr>
<tr>
<td>COL 3 - ROW 3</td>
</tr>
</table>
EOD;
$pdf->writeHTML($tbl, true, false, false, false, '');
// -----------------------------------------------------------------------------
//Close and output PDF document
$pdf->Output('example_067.pdf', 'I');
//============================================================+
// END OF FILE
//============================================================+

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 KiB

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

@@ -85,6 +85,8 @@ echo '<'.'?'.'xml version="1.0" encoding="UTF-8"'.'?'.'>';
<li>Text stretching and spacing (tracking/kerning): [<a href="example_063.php" title="PDF [new window]" target="_blank">PDF</a>]</li>
<li>No-write page regions: [<a href="example_064.php" title="PDF [new window]" target="_blank">PDF</a>]</li>
<li>PDF/A-1b (ISO 19005-1:2005) document: [<a href="example_065.php" title="PDF [new window]" target="_blank">PDF</a>]</li>
<li>Using WriteHTMLCell: [<a href="example_066.php" title="PDF [new window]" target="_blank">PDF</a>]</li>
<li>Shorthand border styles including !important: [<a href="example_067.php" title="PDF [new window]" target="_blank">PDF</a>]</li>
</ol>
<h2>Barcodes</h2>

View File

@@ -778,7 +778,7 @@ class Datamatrix {
if (isset($this->chset['SH1'][$chr])) {
$temp_cw[] = 0; // shift 1
$shiftset = $this->chset['SH1'];
} elseif (isset($chr, $this->chset['SH2'][$chr])) {
} elseif (isset($this->chset['SH2'][$chr])) {
$temp_cw[] = 1; // shift 2
$shiftset = $this->chset['SH2'];
} elseif (($enc == ENC_C40) AND isset($this->chset['S3C'][$chr])) {

View File

@@ -943,8 +943,8 @@ class PDF417 {
// tmp array for the 6 bytes block
$cw6 = array();
do {
$d = bcmod($t, '900');
$t = bcdiv($t, '900');
$d = bcmod($t, '900', 0);
$t = bcdiv($t, '900', 0);
// prepend the value to the beginning of the array
array_unshift($cw6, $d);
} while ($t != '0');
@@ -969,8 +969,8 @@ class PDF417 {
}
$t = '1'.$code;
do {
$d = bcmod($t, '900');
$t = bcdiv($t, '900');
$d = bcmod($t, '900', 0);
$t = bcdiv($t, '900', 0);
array_unshift($cw, $d);
} while ($t != '0');
$code = $rest;

View File

@@ -884,14 +884,15 @@ class QRcode {
protected function getCode() {
if ($this->count < $this->dataLength) {
$row = $this->count % $this->blocks;
$col = $this->count / $this->blocks;
$col = (int)($this->count / $this->blocks);
if ($col >= $this->rsblocks[0]['dataLength']) {
$row += $this->b1;
}
$row = (int) $row;
$ret = $this->rsblocks[$row]['data'][$col];
} elseif ($this->count < $this->dataLength + $this->eccLength) {
$row = ($this->count - $this->dataLength) % $this->blocks;
$col = ($this->count - $this->dataLength) / $this->blocks;
$col = (int)(($this->count - $this->dataLength) / $this->blocks);
$ret = $this->rsblocks[$row]['ecc'][$col];
} else {
return 0;
@@ -1062,7 +1063,7 @@ class QRcode {
protected function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly=false) {
$b = 0;
$bitMask = array();
$bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);
$bitMask = $this->generateMaskNo($maskNo, $width, $s);
if ($maskGenOnly) {
return;
}
@@ -1460,7 +1461,7 @@ class QRcode {
$stringLen = strlen($this->dataStr);
$p = 0;
while ($p < $stringLen) {
$mode = $this->identifyMode(substr($this->dataStr, $p), $this->hint);
$mode = $this->identifyMode(substr($this->dataStr, $p));
if ($mode == QR_MODE_KJ) {
$p += 2;
} else {
@@ -1692,7 +1693,7 @@ class QRcode {
return -1;
}
$buf = array($size, $index, $parity);
$entry = $this->newInputItem(QR_MODE_ST, 3, buf);
$entry = $this->newInputItem(QR_MODE_ST, 3, $buf);
array_unshift($items, $entry);
return $items;
}

View File

@@ -1151,7 +1151,7 @@ class TCPDF_FONTS {
$subsetglyphs[$g] = true;
}
}
}
}
break;
}
case 6: { // Format 6: Trimmed table mapping
@@ -1323,43 +1323,43 @@ class TCPDF_FONTS {
// set the checkSumAdjustment to 0
$table[$tag]['data'] = substr($table[$tag]['data'], 0, 8)."\x0\x0\x0\x0".substr($table[$tag]['data'], 12);
}
$pad = 4 - ($table[$tag]['length'] % 4);
if ($pad != 4) {
// the length of a table must be a multiple of four bytes
$table[$tag]['length'] += $pad;
$table[$tag]['data'] .= str_repeat("\x0", $pad);
}
$table[$tag]['offset'] = $offset;
$offset += $table[$tag]['length'];
$numPad = ($offset + 3 & ~3) - $offset;
if($numPad > 0) {
$table[$tag]['data'] .= str_repeat("\x0", $numPad);
$offset += $numPad;
}
// check sum is not changed (so keep the following line commented)
//$table[$tag]['checkSum'] = self::_getTTFtableChecksum($table[$tag]['data'], $table[$tag]['length']);
//$table[$tag]['checkSum'] = self::_getTTFtableChecksum($table[$tag]['data'], $table[$tag]['length'] + $numPad);
} else {
unset($table[$tag]);
}
}
// add loca
$table['loca'] = array();
$table['loca']['data'] = $loca;
$table['loca']['length'] = strlen($loca);
$pad = 4 - ($table['loca']['length'] % 4);
if ($pad != 4) {
// the length of a table must be a multiple of four bytes
$table['loca']['length'] += $pad;
$table['loca']['data'] .= str_repeat("\x0", $pad);
}
$table['loca']['offset'] = $offset;
$table['loca']['checkSum'] = self::_getTTFtableChecksum($table['loca']['data'], $table['loca']['length']);
$offset += $table['loca']['length'];
$numPad = ($offset + 3 & ~3) - $offset;
if($numPad > 0) {
$table['loca']['data'] .= str_repeat("\x0", $numPad);
$offset += $numPad;
}
$table['loca']['checkSum'] = self::_getTTFtableChecksum($table['loca']['data'], $table['loca']['length'] + $numPad);
// add glyf
$table['glyf'] = array();
$table['glyf']['data'] = $glyf;
$table['glyf']['length'] = strlen($glyf);
$pad = 4 - ($table['glyf']['length'] % 4);
if ($pad != 4) {
// the length of a table must be a multiple of four bytes
$table['glyf']['length'] += $pad;
$table['glyf']['data'] .= str_repeat("\x0", $pad);
}
$table['glyf']['offset'] = $offset;
$table['glyf']['checkSum'] = self::_getTTFtableChecksum($table['glyf']['data'], $table['glyf']['length']);
$offset += $table['glyf']['length'];
$numPad = ($offset + 3 & ~3) - $offset;
if($numPad > 0) {
$table['glyf']['data'] .= str_repeat("\x0", $numPad);
$offset += $numPad;
}
$table['glyf']['checkSum'] = self::_getTTFtableChecksum($table['glyf']['data'], $table['glyf']['length'] + $numPad);
// rebuild font
$font = '';
$font .= pack('N', 0x10000); // sfnt version
@@ -1383,7 +1383,7 @@ class TCPDF_FONTS {
}
// set checkSumAdjustment on head table
$checkSumAdjustment = 0xB1B0AFBA - self::_getTTFtableChecksum($font, strlen($font));
$font = substr($font, 0, $table['head']['offset'] + 8).pack('N', $checkSumAdjustment).substr($font, $table['head']['offset'] + 12);
$font = substr($font, 0, $table['head']['offset'] + $offset + 8).pack('N', $checkSumAdjustment).substr($font, $table['head']['offset'] + $offset + 12);
return $font;
}
@@ -1780,9 +1780,9 @@ class TCPDF_FONTS {
*/
public static function UTF8ArrayToUniArray($ta, $isunicode=true) {
if ($isunicode) {
return array_map(array('TCPDF_FONTS', 'unichrUnicode'), $ta);
return array_map(get_called_class().'::unichrUnicode', $ta);
}
return array_map(array('TCPDF_FONTS', 'unichrASCII'), $ta);
return array_map(get_called_class().'::unichrASCII', $ta);
}
/**
@@ -1998,10 +1998,11 @@ class TCPDF_FONTS {
* @public static
*/
public static function UTF8StringToArray($str, $isunicode, &$currentfont) {
$str = is_null($str) ? '' : $str;
if ($isunicode) {
// requires PCRE unicode support turned on
$chars = TCPDF_STATIC::pregSplit('//','u', $str, -1, PREG_SPLIT_NO_EMPTY);
$carr = array_map(array('TCPDF_FONTS', 'uniord'), $chars);
$carr = array_map(get_called_class().'::uniord', $chars);
} else {
$chars = str_split($str);
$carr = array_map('ord', $chars);

View File

@@ -3,11 +3,11 @@
// File name : tcpdf_static.php
// Version : 1.1.4
// Begin : 2002-08-03
// Last Update : 2019-11-01
// Last Update : 2023-09-06
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
// -------------------------------------------------------------------
// Copyright (C) 2002-2021 Nicola Asuni - Tecnick.com LTD
// Copyright (C) 2002-2023 Nicola Asuni - Tecnick.com LTD
//
// This file is part of TCPDF software library.
//
@@ -55,7 +55,7 @@ class TCPDF_STATIC {
* Current TCPDF version.
* @private static
*/
private static $tcpdf_version = '6.4.4';
private static $tcpdf_version = '6.6.5';
/**
* String alias for total number of pages.
@@ -128,39 +128,6 @@ class TCPDF_STATIC {
return "\x54\x43\x50\x44\x46\x20".self::getTCPDFVersion()."\x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x74\x63\x70\x64\x66\x2e\x6f\x72\x67\x29";
}
/**
* Sets the current active configuration setting of magic_quotes_runtime (if the set_magic_quotes_runtime function exist)
* @param boolean $mqr FALSE for off, TRUE for on.
* @since 4.6.025 (2009-08-17)
* @public static
*/
public static function set_mqr($mqr) {
if (!defined('PHP_VERSION_ID')) {
$version = PHP_VERSION;
define('PHP_VERSION_ID', (($version[0] * 10000) + ($version[2] * 100) + $version[4]));
}
if (PHP_VERSION_ID < 50300) {
@set_magic_quotes_runtime($mqr);
}
}
/**
* Gets the current active configuration setting of magic_quotes_runtime (if the get_magic_quotes_runtime function exist)
* @return int Returns 0 if magic quotes runtime is off or get_magic_quotes_runtime doesn't exist, 1 otherwise.
* @since 4.6.025 (2009-08-17)
* @public static
*/
public static function get_mqr() {
if (!defined('PHP_VERSION_ID')) {
$version = PHP_VERSION;
define('PHP_VERSION_ID', (($version[0] * 10000) + ($version[2] * 100) + $version[4]));
}
if (PHP_VERSION_ID < 50300) {
return @get_magic_quotes_runtime();
}
return 0;
}
/**
* Check if the URL exist.
* @param string $url URL to check.
@@ -319,7 +286,7 @@ class TCPDF_STATIC {
*/
public static function _escapeXML($str) {
$replaceTable = array("\0" => '', '&' => '&amp;', '<' => '&lt;', '>' => '&gt;');
$str = strtr($str, $replaceTable);
$str = strtr($str === null ? '' : $str, $replaceTable);
return $str;
}
@@ -852,9 +819,7 @@ class TCPDF_STATIC {
if (isset($prop['charLimit'])) {
$opt['maxlen'] = intval($prop['charLimit']);
}
if (!isset($ff)) {
$ff = 0; // default value
}
$ff = 0;
// readonly: The read-only characteristic of a field. If a field is read-only, the user can see the field but cannot change it.
if (isset($prop['readonly']) AND ($prop['readonly'] == 'true')) {
$ff += 1 << 0;
@@ -1811,7 +1776,11 @@ class TCPDF_STATIC {
$flags = $flags === null ? 0 : $flags;
// the bug only happens on PHP 5.2 when using the u modifier
if ((strpos($modifiers, 'u') === FALSE) OR (count(preg_split('//u', "\n\t", -1, PREG_SPLIT_NO_EMPTY)) == 2)) {
return preg_split($pattern.$modifiers, $subject, $limit, $flags);
$ret = preg_split($pattern.$modifiers, $subject, $limit, $flags);
if ($ret === false) {
return array();
}
return is_array($ret) ? $ret : array();
}
// preg_split is bugged - try alternative solution
$ret = array();
@@ -1887,7 +1856,8 @@ class TCPDF_STATIC {
if (isset($urlData['query']) && $urlData['query']) {
$urlQueryData = array();
parse_str(urldecode($urlData['query']), $urlQueryData);
$updatedUrl = $urlData['scheme'] . '://' . $urlData['host'] . $urlData['path'] . '?' . http_build_query($urlQueryData);
$port = isset($urlData['port']) ? ':'.$urlData['port'] : '';
$updatedUrl = $urlData['scheme'].'://'.$urlData['host'].$port.$urlData['path'].'?'.http_build_query($urlQueryData);
} else {
$updatedUrl = $url;
}
@@ -2154,7 +2124,7 @@ class TCPDF_STATIC {
* Array of page formats
* measures are calculated in this way: (inches * 72) or (millimeters * 72 / 25.4)
* @public static
*
*
* @var array<string,float[]>
*/
public static $page_formats = array(

Some files were not shown because too many files have changed in this diff Show More