diff --git a/tools/tcpdf/CHANGELOG.TXT b/tools/tcpdf/CHANGELOG.TXT index 4437e2cf3..3c600bc89 100644 --- a/tools/tcpdf/CHANGELOG.TXT +++ b/tools/tcpdf/CHANGELOG.TXT @@ -1,3 +1,73 @@ +6.11.3 (2026-04-21) + - Added deprecation notice. + - Improved composer.json. + - Added Makefile for common automation tasks. + +6.11.2 (2026-03-03) + - Refactor setCompression(). + +6.11.1 (2026-03-03) + - Remove debug line preventing compression. + +6.11.0 (2026-03-01) + - Updated copyright year. + - Updated linked http urls to https. + - Fix PHP 8.5 deprecation on curl_close() - PR #838 + - Fix PHP 8.5 deprecation on null array offset - PR #839 + - Fixed: Font subsetting - incorrect placement of head checksum - PR #849 + - Fix imagedestroy() deprecation in PHP 8.5 - PR #851 + - Fix Rendering of SVG -> PDF issue - PR #855 + +6.10.1 (2025-11-21) + - cI: Add 8.5 to CI matrix - PR #836 + - Fix PHP 8.5 deprecation for xml_parser_free - PR #835 + - Fix bad text-align from HTML source - PR #833 + - Fix image on footer problems - PR #823 + - Preserving percentage gradient decimals and correctly clamp coordinates - PR #815 + - Enables compression for PDF/A - PR #820 + +6.10.0 (2025-05-27) + - Embedded files support (Factur-X 1.07 / ZUGFeRD 2.3) #789 + +6.9.5 (2025-05-27) + - Automatically add destinations from HTML code #804 + - Wrong default value when $table_el['old_cell_padding'] is missing #807 + - Fixed PHP warning when empty hash link for image exists in HTML #809 + - Fix for application of alpha component to SVG RGBA fills #810 + +6.9.4 (2025-05-13) + - Update donation link. + +6.9.3 (2025-04-20) + - New fix for "Deserialization of untrusted data" (check on valid protocols). + - Removed global phar configuration. + +6.9.2 (2025-04-18) + - Quick fix for "Deserialization of untrusted data" security vulnerability reported by Positive Technologies. + - Disable phar protocol globally. + +6.9.1 (2025-04-03) + - Fixed "Path Traversal" security vulnerability reported by Positive Technologies. + +6.9.0 (2025-03-30) + - Added PHP 8.4 testing. + - Removed tcpdf_import.php and tcpdf_parser.php files (for a parser check the tc-lib-pdf-parser project instead). + - Fix composer.json. + +6.8.2 (2025-01-26) + - Fix some annotation flags values. + - Remove examples from packaging. + +6.8.1 (2025-01-26) - UNTAGGED + - Check relative paths on SVG images. + +6.8.0 (2024-12-23) + - Requires PHP 7.1+ and curl extension. + - Escape error message. + - Use strict time-constant function to compare TCPDF-tag hashes. + - Add K_CURLOPTS config array to set custom cURL options (NOTE: some defaults have changed). + - Add some addTTFfont fixes from tc-lib-pdf-font. + 6.7.8 (2024-12-13) - Improve SVG detection by checking for (mandatory) namespace. - Use late state binding now that minimum PHP version is 5.5. @@ -1780,7 +1850,7 @@ addTOCPage(), endTOCPage(), addHTMLTOC(). 5.0.000 (2010-05-05) - - Method ImageSVG() was added to embedd SVG images (see example n. 58). Note that not all SVG images are supported. + - Method ImageSVG() was added to embed SVG images (see example n. 58). Note that not all SVG images are supported. - Method setRasterizeVectorImages() was added to enable/disable rasterization for vector images via ImageMagick library. - Method RoundedRectXY() was added. - Method PieSectorXY() was added. @@ -2507,7 +2577,7 @@ - A bug relative to fill color on next page was fixed. 4.2.007 (2008-11-12) - - The function setListIndentWidth() was added to set custom indentation widht for HTML lists. + - The function setListIndentWidth() was added to set custom indentation width for HTML lists. 4.2.006 (2008-11-06) - A bug relative to HTML justification was fixed. @@ -2701,7 +2771,7 @@ 4.0.011 (2008-07-23) - Font support was improved. - - The folder /fonts/utils contains new utilities and instructions for embedd font files. + - The folder /fonts/utils contains new utilities and instructions for embed font files. - Documentation was updated. 4.0.010 (2008-07-22) diff --git a/tools/tcpdf/LICENSE.TXT b/tools/tcpdf/LICENSE.TXT index ec7968a7e..b85904e8b 100644 --- a/tools/tcpdf/LICENSE.TXT +++ b/tools/tcpdf/LICENSE.TXT @@ -7,7 +7,7 @@ published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - 2002-2024 Nicola Asuni - Tecnick.com LTD + 2002-2026 Nicola Asuni - Tecnick.com LTD ********************************************************************** ********************************************************************** @@ -15,7 +15,7 @@ GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -184,7 +184,7 @@ Library. GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -828,7 +828,7 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. @@ -847,14 +847,14 @@ might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see -. +. The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -. +. ********************************************************************** ********************************************************************** diff --git a/tools/tcpdf/Makefile b/tools/tcpdf/Makefile new file mode 100644 index 000000000..83c0df5c7 --- /dev/null +++ b/tools/tcpdf/Makefile @@ -0,0 +1,154 @@ +# Makefile +# +# @since 2026-04-21 +# @category Library +# @package TCPDF +# @author Nicola Asuni +# @copyright 2002-2026 Nicola Asuni - Tecnick.com LTD +# @license https://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT) +# @link https://github.com/tecnickcom/TCPDF +# +# This file is part of tcpdf software library. +# ---------------------------------------------------------------------------------------------------------------------- + +SHELL=/bin/bash +.SHELLFLAGS=-o pipefail -c + +# Project owner +OWNER=tecnickcom + +# Project vendor +VENDOR=${OWNER} + +# Project name +PROJECT=tcpdf + +# Project version (strip trailing line endings and accidental literal "\\n") +VERSION=$(shell sed -E 's/\\n$$//' VERSION | tr -d '\r\n') + +# Current directory +CURRENTDIR=$(dir $(realpath $(firstword $(MAKEFILE_LIST)))) + +# Target directory +TARGETDIR=$(CURRENTDIR)target + +# sed argument for in-place substitutions +SEDINPLACE=-i +ifeq ($(shell uname -s),Darwin) + SEDINPLACE=-i '' +endif + +# Default port number for the example server +PORT?=8971 + +# PHP binary +PHP=$(shell which php) + +# Composer executable +COMPOSER=$(PHP) -d "apc.enable_cli=0" $(shell which composer) + +# --- MAKE TARGETS --- + +# Display general help about this command +.PHONY: help +help: + @echo "" + @echo "$(PROJECT) Makefile." + @echo "The following commands are available:" + @echo "" + @awk '/^## /{desc=substr($$0,4)} /^\.PHONY:/{if(NF>1) {target=$$2; if(desc) printf " make %-15s: %s\n",target,desc; desc=""}}' Makefile + @echo "" + @echo "To test and build everything from scratch, use the shortcut:" + @echo " make x" + @echo "" + +# Alias for help target +.PHONY: all +all: help + +# Test and build everything from scratch +.PHONY: x +x: buildall + +## Test and build everything from scratch +.PHONY: buildall +buildall: deps + $(MAKE) qa + +## Delete vendor and generated directories +.PHONY: clean +clean: + rm -rf ./vendor ./tests/vendor $(TARGETDIR) ./build ./cache + +## Download dependencies for the library and test harness +.PHONY: deps +deps: ensuretarget + $(COMPOSER) install --no-interaction + @if [ -f ./tests/composer.json ]; then \ + $(COMPOSER) --working-dir=tests install --no-interaction; \ + fi + +## Generate source code documentation with Doctum if available +.PHONY: doc +doc: + @if [ -x ./vendor/bin/doctum ]; then \ + ./vendor/bin/doctum update ./scripts/doctum.php --force; \ + else \ + echo "Doctum is not installed. Run make deps first."; \ + exit 1; \ + fi + +## Create missing target directories for test and build artifacts +.PHONY: ensuretarget +ensuretarget: + mkdir -p $(TARGETDIR)/test + mkdir -p $(TARGETDIR)/report + mkdir -p $(TARGETDIR)/doc + +## Lint PHP files (syntax only) +.PHONY: lint +lint: + find . -type f -name '*.php' \ + -not -path './vendor/*' \ + -not -path './tests/vendor/*' \ + -print0 | xargs -0 -n1 -P4 $(PHP) -l > /dev/null + +## Run all checks +.PHONY: qa +qa: version ensuretarget lint test + +## Generate quality reports (not implemented in this legacy repository) +.PHONY: report +report: ensuretarget + @echo "No additional report target is configured for TCPDF." + +## Start the development server +.PHONY: server +server: + $(PHP) -t examples -S localhost:$(PORT) + +## Tag this git version +.PHONY: tag +tag: + git checkout main && \ + git tag -a ${VERSION} -m "Release ${VERSION}" && \ + git push origin --tags && \ + git pull + +## Run integration tests from tests/launch.sh +.PHONY: test +test: + XDEBUG_MODE=coverage sh ./tests/launch.sh + +## Set the code version from the VERSION file +.PHONY: version +version: + sed $(SEDINPLACE) -E "s#^([[:space:]]*private static [^=]+ = ')[^']*';#\1${VERSION}';#" include/tcpdf_static.php + sed $(SEDINPLACE) -E "1,170 s#^// Version[[:space:]]+: .*#// Version : ${VERSION}#" tcpdf.php + sed $(SEDINPLACE) -E "1,170 s#^ \* @version .*# * @version ${VERSION}#" tcpdf.php + +## Increase the version patch number +.PHONY: versionup +versionup: + echo ${VERSION} | gawk -F. '{printf("%d.%d.%d\n",$$1,$$2,(($$3+1)));}' > VERSION + $(MAKE) version diff --git a/tools/tcpdf/README.md b/tools/tcpdf/README.md index f59f66339..00ad81a18 100644 --- a/tools/tcpdf/README.md +++ b/tools/tcpdf/README.md @@ -1,83 +1,131 @@ # TCPDF -*PHP PDF Library* -[![Donate via PayPal](https://img.shields.io/badge/donate-paypal-87ceeb.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations¤cy_code=GBP&business=paypal@tecnick.com&item_name=donation%20for%20TCPDF%20project) -*Please consider supporting this project by making a donation via [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_donations¤cy_code=GBP&business=paypal@tecnick.com&item_name=donation%20for%20TCPDF%20project)* +> Legacy PDF engine for PHP. **Deprecated** and maintained for existing integrations. -* **category** Library -* **author** Nicola Asuni -* **copyright** 2002-2024 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 +[![Latest Stable Version](https://poser.pugx.org/tecnickcom/tcpdf/version)](https://packagist.org/packages/tecnickcom/tcpdf) +[![License](https://poser.pugx.org/tecnickcom/tcpdf/license)](https://packagist.org/packages/tecnickcom/tcpdf) +[![Downloads](https://poser.pugx.org/tecnickcom/tcpdf/downloads)](https://packagist.org/packages/tecnickcom/tcpdf) +[![Donate via PayPal](https://img.shields.io/badge/donate-paypal-87ceeb.svg)](https://www.paypal.com/donate/?hosted_button_id=NZUEC5XS8MFBJ) +If TCPDF helps your business, please consider supporting development via [PayPal](https://www.paypal.com/donate/?hosted_button_id=NZUEC5XS8MFBJ). -## 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. +--- +## Deprecation Notice +TCPDF is **deprecated** and in **maintenance-only mode**. -## Description +Active feature development has moved to [tc-lib-pdf](https://github.com/tecnickcom/tc-lib-pdf), the modern and modular successor. -PHP library for generating PDF documents on-the-fly. +For new projects, use `tecnickcom/tc-lib-pdf`. This repository remains available for legacy systems and critical compatibility fixes. -### Main Features: -* no external libraries are required for the basic functions; -* all standard page formats, custom page formats, custom margins and units of measure; -* UTF-8 Unicode and Right-To-Left languages; -* TrueTypeUnicode, OpenTypeUnicode v1, TrueType, OpenType v1, Type1 and CID-0 fonts; -* font subsetting; -* methods to publish some XHTML + CSS code, Javascript and Forms; -* images, graphic (geometric figures) and transformation methods; -* supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http://www.imagemagick.org/script/formats.php) -* 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extension, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, Datamatrix, QR-Code, PDF417; -* JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Colors and Transparencies; -* automatic page header and footer management; -* document encryption up to 256 bit and digital signature certifications; -* transactions to UNDO commands; -* PDF annotations, including links, text and file attachments; -* text rendering modes (fill, stroke and clipping); -* multiple columns mode; -* no-write page regions; -* bookmarks, named destinations and table of content; -* text hyphenation; -* text stretching and spacing (tracking); -* automatic page break, line break and text alignments including justification; -* automatic page numbering and page groups; -* move and delete pages; -* page compression (requires php-zlib extension); -* XOBject Templates; -* Layers and object visibility. -* PDF/A-1b support. +### Migration Path -### Third party fonts: +- New projects: install `tecnickcom/tc-lib-pdf`. +- Existing TCPDF users: keep TCPDF for current production workloads and migrate in phases. +- Teams seeking modern architecture, Composer-first design, and stronger type-safety should prioritize `tc-lib-pdf`. -This library may include third party font files released with different licenses. +### Why Migrate to tc-lib-pdf -All the PHP files on the fonts directory are subject to the general TCPDF license (GNU-LGPLv3), -they do not contain any binary data but just a description of the general properties of a particular font. -These files can be also generated on the fly using the font utilities and TCPDF methods. +- Modern architecture: modular libraries and cleaner component boundaries improve maintainability. +- Better extensibility: new features are easier to add without patching a monolithic legacy core. +- Stronger tooling fit: modern package structure works better with static analysis, CI, and automated tests. +- Lower long-term risk: reduces technical debt tied to legacy APIs and supports ongoing PHP ecosystem evolution. +- Improved delivery speed: teams can implement and ship new PDF capabilities with less friction. -All the original binary TTF font files have been renamed for compatibility with TCPDF and compressed using the gzcompress PHP function that uses the ZLIB data format (.z files). +Migration still requires planning and regression checks to preserve rendering parity for existing documents. -The binary files (.z) that begins with the prefix "free" have been extracted from the GNU FreeFont collection (GNU-GPLv3). -The binary files (.z) that begins with the prefix "pdfa" have been derived from the GNU FreeFont, so they are subject to the same license. -For the details of Copyright, License and other information, please check the files inside the directory fonts/freefont-20120503 -Link : http://www.gnu.org/software/freefont/ +### Future Compatibility Possibility -The binary files (.z) that begins with the prefix "dejavu" have been extracted from the DejaVu fonts 2.33 (Bitstream) collection. -For the details of Copyright, License and other information, please check the files inside the directory fonts/dejavu-fonts-ttf-2.33 -Link : http://dejavu-fonts.org +As a long-term possibility, TCPDF could be refactored to use `tc-lib-pdf` internally as a backend while preserving a practical level of backward compatibility for existing TCPDF integrations. -The binary files (.z) that begins with the prefix "ae" have been extracted from the Arabeyes.org collection (GNU-GPLv2). -Link : http://projects.arabeyes.org/ +This is not part of a committed roadmap and there is no guarantee it will happen. It is documented here only as a potential direction that may be evaluated in the future. -### ICC profile: +--- -TCPDF includes the sRGB.icc profile from the icc-profiles-free Debian package: -https://packages.debian.org/source/stable/icc-profiles-free +## Overview +TCPDF is a pure-PHP library for generating PDF documents and barcodes directly in application code. -## Developer(s) Contact +It has been widely used across many PHP stacks and still provides a complete feature set for text rendering, page composition, graphics, signatures, forms, and standards-oriented output. -* Nicola Asuni +| | | +|---|---| +| **Package** | `tecnickcom/tcpdf` | +| **Author** | Nicola Asuni | +| **License** | [GNU LGPL v3](https://www.gnu.org/copyleft/lesser.html) (see [LICENSE.TXT](LICENSE.TXT)) | +| **Website** | | +| **Source** | | + +--- + +## Features + +### Text & Fonts +- UTF-8 Unicode and right-to-left (RTL) language support +- TrueTypeUnicode, OpenTypeUnicode v1, TrueType, OpenType v1, Type1, and CID-0 fonts +- Font subsetting +- Text hyphenation, stretching, spacing, and rendering modes (fill/stroke/clipping) +- Automatic line breaks, page breaks, and justification + +### Layout & Content +- Standard and custom page formats, margins, and measurement units +- XHTML + CSS rendering, JavaScript, and forms +- Automatic headers and footers +- Multi-column mode and no-write page regions +- Bookmarks, named destinations, and table of contents +- Automatic page numbering, page groups, move/delete pages, and undo transactions + +### Images, Graphics & Color +- Native JPEG, PNG, and SVG support +- Geometric drawing primitives and transformations +- Support for GD image formats (`GD`, `GD2`, `GD2PART`, `GIF`, `JPEG`, `PNG`, `BMP`, `XBM`, `XPM`) +- Additional formats via ImageMagick (when available) +- JPEG/PNG ICC profiles, grayscale/RGB/CMYK/spot colors, and transparencies + +### Security, Standards & Advanced Output +- Encryption up to 256-bit and digital signature certifications +- PDF annotations (links, text, and file attachments) +- 1D and 2D barcode support (including CODE 128, EAN/UPC, Datamatrix, QR Code, PDF417) +- XObject templates and layers with object visibility controls +- PDF/A-1b support + +--- + +## Requirements + +- PHP 7.1 or later +- `ext-curl` + +Optional extensions for richer output in some workflows: `gd`, `zlib`, `imagick`. + +--- + +## Third-Party Fonts + +This library may include third-party font files released under different licenses. + +PHP metadata files under [fonts](fonts) are covered by the TCPDF license (GNU LGPL v3). They contain font metadata and can also be generated using TCPDF font utilities. + +Original binary TTF files are renamed for compatibility and compressed with PHP `gzcompress` (the `.z` format). + +| Prefix | Source | License | +|---|---|---| +| `free*` | [GNU FreeFont](https://www.gnu.org/software/freefont/) | GNU GPL v3 | +| `pdfa*` | Derived from GNU FreeFont | GNU GPL v3 | +| `dejavu*` | [DejaVu Fonts](http://dejavu-fonts.org) | Bitstream/DejaVu terms | +| `ae*` | [Arabeyes.org](http://projects.arabeyes.org/) | GNU GPL v2 | + +For full details, see the bundled notices in the corresponding subdirectories under [fonts](fonts). + +--- + +## ICC Profile + +TCPDF includes `sRGB.icc` from the Debian [`icc-profiles-free`](https://packages.debian.org/source/stable/icc-profiles-free) package. + +--- + +## Contact + +Nicola Asuni diff --git a/tools/tcpdf/VERSION b/tools/tcpdf/VERSION index eed6de4bb..060e73a63 100644 --- a/tools/tcpdf/VERSION +++ b/tools/tcpdf/VERSION @@ -1 +1 @@ -6.7.8 +6.11.3 \ No newline at end of file diff --git a/tools/tcpdf/composer.json b/tools/tcpdf/composer.json new file mode 100644 index 000000000..cc5904d20 --- /dev/null +++ b/tools/tcpdf/composer.json @@ -0,0 +1,75 @@ +{ + "name": "tecnickcom/tcpdf", + "type": "library", + "description": "Deprecated legacy PDF engine for PHP. For new projects use tecnickcom/tc-lib-pdf.", + "keywords": [ + "PDF", + "tcpdf", + "PDFD32000-2008", + "qrcode", + "datamatrix", + "pdf417", + "barcodes" + ], + "homepage": "https://tcpdf.org", + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Nicola Asuni", + "email": "info@tecnick.com", + "role": "lead" + } + ], + "require": { + "php": ">=7.1.0", + "ext-curl": "*" + }, + "suggest": { + "tecnickcom/tc-lib-pdf": "Modern replacement for TCPDF for new projects.", + "ext-gd": "Enables additional image handling in some workflows.", + "ext-imagick": "Enables additional image format support when available.", + "ext-zlib": "Recommended for compressed streams and related features." + }, + "minimum-stability": "dev", + "prefer-stable": true, + "config": { + "sort-packages": true + }, + "autoload": { + "classmap": [ + "config", + "include", + "tcpdf.php", + "tcpdf_barcodes_1d.php", + "tcpdf_barcodes_2d.php", + "include/tcpdf_colors.php", + "include/tcpdf_filters.php", + "include/tcpdf_font_data.php", + "include/tcpdf_fonts.php", + "include/tcpdf_images.php", + "include/tcpdf_static.php", + "include/barcodes/datamatrix.php", + "include/barcodes/pdf417.php", + "include/barcodes/qrcode.php" + ] + }, + "archive": { + "exclude": [ + "/.github", + "/.phpdoc", + "/examples", + "/scripts", + "/tests" + ] + }, + "support": { + "issues": "https://github.com/tecnickcom/TCPDF/issues", + "source": "https://github.com/tecnickcom/TCPDF" + }, + "funding": [ + { + "type": "paypal", + "url": "https://www.paypal.com/donate/?hosted_button_id=NZUEC5XS8MFBJ" + } + ] +} diff --git a/tools/tcpdf/config/tcpdf_config.php b/tools/tcpdf/config/tcpdf_config.php index 9888a6778..d430ee4d0 100644 --- a/tools/tcpdf/config/tcpdf_config.php +++ b/tools/tcpdf/config/tcpdf_config.php @@ -6,9 +6,9 @@ // // Description : Configuration file for TCPDF. // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2004-2014 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2004-2014 2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -23,7 +23,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. //============================================================+ @@ -114,7 +114,7 @@ define ('PDF_HEADER_TITLE', 'TCPDF Example'); /** * Header description string. */ -define ('PDF_HEADER_STRING', "by Nicola Asuni - Tecnick.com\nwww.tcpdf.org"); +define ('PDF_HEADER_STRING', "by2026 Nicola Asuni - Tecnick.com\nwww.tcpdf.org"); /** * Document unit of measure [pt=point, mm=millimeter, cm=centimeter, in=inch]. diff --git a/tools/tcpdf/examples/barcodes/example_1d_html.php b/tools/tcpdf/examples/barcodes/example_1d_html.php deleted file mode 100644 index 6d3233bd6..000000000 --- a/tools/tcpdf/examples/barcodes/example_1d_html.php +++ /dev/null @@ -1,57 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_1d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_1d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_1d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDFBarcode('http://www.tcpdf.org', 'C128'); - -// output the barcode as HTML object -echo $barcodeobj->getBarcodeHTML(2, 30, 'black'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/example_1d_png.php b/tools/tcpdf/examples/barcodes/example_1d_png.php deleted file mode 100644 index 02ed1660e..000000000 --- a/tools/tcpdf/examples/barcodes/example_1d_png.php +++ /dev/null @@ -1,56 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_1d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_1d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_1d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDFBarcode('http://www.tcpdf.org', 'C128'); - -// output the barcode as PNG image -$barcodeobj->getBarcodePNG(2, 30, array(0,0,0)); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/example_1d_svg.php b/tools/tcpdf/examples/barcodes/example_1d_svg.php deleted file mode 100644 index 5e5ccfc35..000000000 --- a/tools/tcpdf/examples/barcodes/example_1d_svg.php +++ /dev/null @@ -1,57 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_1d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_1d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_1d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDFBarcode('http://www.tcpdf.org', 'C128'); - -// output the barcode as SVG image -$barcodeobj->getBarcodeSVG(2, 30, 'black'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/example_1d_svgi.php b/tools/tcpdf/examples/barcodes/example_1d_svgi.php deleted file mode 100644 index 8c65b669b..000000000 --- a/tools/tcpdf/examples/barcodes/example_1d_svgi.php +++ /dev/null @@ -1,57 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_1d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_1d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_1d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDFBarcode('http://www.tcpdf.org', 'C128'); - -// output the barcode as SVG inline code -echo $barcodeobj->getBarcodeSVGcode(2, 40, 'black'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/example_2d_datamatrix_html.php b/tools/tcpdf/examples/barcodes/example_2d_datamatrix_html.php deleted file mode 100644 index e0d200cc7..000000000 --- a/tools/tcpdf/examples/barcodes/example_2d_datamatrix_html.php +++ /dev/null @@ -1,57 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_2d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_2d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'DATAMATRIX'); - -// output the barcode as HTML object -echo $barcodeobj->getBarcodeHTML(6, 6, 'black'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/example_2d_datamatrix_png.php b/tools/tcpdf/examples/barcodes/example_2d_datamatrix_png.php deleted file mode 100644 index 35d344dac..000000000 --- a/tools/tcpdf/examples/barcodes/example_2d_datamatrix_png.php +++ /dev/null @@ -1,56 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_2d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_2d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'DATAMATRIX'); - -// output the barcode as PNG image -$barcodeobj->getBarcodePNG(6, 6, array(0,0,0)); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/example_2d_datamatrix_svg.php b/tools/tcpdf/examples/barcodes/example_2d_datamatrix_svg.php deleted file mode 100644 index 10d0aa36a..000000000 --- a/tools/tcpdf/examples/barcodes/example_2d_datamatrix_svg.php +++ /dev/null @@ -1,57 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_2d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_2d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'DATAMATRIX'); - -// output the barcode as SVG image -$barcodeobj->getBarcodeSVG(6, 6, 'black'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/example_2d_datamatrix_svgi.php b/tools/tcpdf/examples/barcodes/example_2d_datamatrix_svgi.php deleted file mode 100644 index 42627006f..000000000 --- a/tools/tcpdf/examples/barcodes/example_2d_datamatrix_svgi.php +++ /dev/null @@ -1,57 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_2d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_2d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'DATAMATRIX'); - -// output the barcode as SVG inline code -echo $barcodeobj->getBarcodeSVGcode(6, 6, 'black'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/example_2d_pdf417_html.php b/tools/tcpdf/examples/barcodes/example_2d_pdf417_html.php deleted file mode 100644 index 3d8de3102..000000000 --- a/tools/tcpdf/examples/barcodes/example_2d_pdf417_html.php +++ /dev/null @@ -1,57 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_2d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_2d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'PDF417'); - -// output the barcode as HTML object -echo $barcodeobj->getBarcodeHTML(4, 4, 'black'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/example_2d_pdf417_png.php b/tools/tcpdf/examples/barcodes/example_2d_pdf417_png.php deleted file mode 100644 index b7c95855a..000000000 --- a/tools/tcpdf/examples/barcodes/example_2d_pdf417_png.php +++ /dev/null @@ -1,56 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_2d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_2d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'PDF417'); - -// output the barcode as PNG image -$barcodeobj->getBarcodePNG(4, 4, array(0,0,0)); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/example_2d_pdf417_svg.php b/tools/tcpdf/examples/barcodes/example_2d_pdf417_svg.php deleted file mode 100644 index 9017e5bcb..000000000 --- a/tools/tcpdf/examples/barcodes/example_2d_pdf417_svg.php +++ /dev/null @@ -1,57 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_2d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_2d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'PDF417'); - -// output the barcode as SVG image -$barcodeobj->getBarcodeSVG(4, 4, 'black'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/example_2d_pdf417_svgi.php b/tools/tcpdf/examples/barcodes/example_2d_pdf417_svgi.php deleted file mode 100644 index 2075da740..000000000 --- a/tools/tcpdf/examples/barcodes/example_2d_pdf417_svgi.php +++ /dev/null @@ -1,57 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_2d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_2d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'PDF417'); - -// output the barcode as SVG inline code -echo $barcodeobj->getBarcodeSVGcode(4, 4, 'black'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/example_2d_qrcode_html.php b/tools/tcpdf/examples/barcodes/example_2d_qrcode_html.php deleted file mode 100644 index 7c05f00f2..000000000 --- a/tools/tcpdf/examples/barcodes/example_2d_qrcode_html.php +++ /dev/null @@ -1,56 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_2d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_2d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'QRCODE,H'); - -// output the barcode as HTML object -echo $barcodeobj->getBarcodeHTML(6, 6, 'black'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/example_2d_qrcode_png.php b/tools/tcpdf/examples/barcodes/example_2d_qrcode_png.php deleted file mode 100644 index 75daa7c07..000000000 --- a/tools/tcpdf/examples/barcodes/example_2d_qrcode_png.php +++ /dev/null @@ -1,56 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_2d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_2d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'QRCODE,H'); - -// output the barcode as PNG image -$barcodeobj->getBarcodePNG(6, 6, array(0,0,0)); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/example_2d_qrcode_svg.php b/tools/tcpdf/examples/barcodes/example_2d_qrcode_svg.php deleted file mode 100644 index c104ca63f..000000000 --- a/tools/tcpdf/examples/barcodes/example_2d_qrcode_svg.php +++ /dev/null @@ -1,56 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_2d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_2d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'QRCODE,H'); - -// output the barcode as SVG image -$barcodeobj->getBarcodeSVG(6, 6, 'black'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/example_2d_qrcode_svgi.php b/tools/tcpdf/examples/barcodes/example_2d_qrcode_svgi.php deleted file mode 100644 index f31a10083..000000000 --- a/tools/tcpdf/examples/barcodes/example_2d_qrcode_svgi.php +++ /dev/null @@ -1,56 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Example for tcpdf_barcodes_2d.php class -// -//============================================================+ - -/** - * @file - * Example for tcpdf_barcodes_2d.php class - * @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) -require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); - -// set the barcode content and type -$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'QRCODE,H'); - -// output the barcode as SVG inline code -echo $barcodeobj->getBarcodeSVGcode(6, 6, 'black'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/barcodes/tcpdf_barcodes_1d_include.php b/tools/tcpdf/examples/barcodes/tcpdf_barcodes_1d_include.php deleted file mode 100644 index 0add5ec6f..000000000 --- a/tools/tcpdf/examples/barcodes/tcpdf_barcodes_1d_include.php +++ /dev/null @@ -1,46 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -//============================================================+ - -/** - * Example of alternative configuration file for TCPDF. - * @author Nicola Asuni - * @package com.tecnick.tcpdf - * @version 4.9.005 - * @since 2004-10-27 - */ - -/** - * Define the following constant to ignore the default configuration file. - */ -define ('K_TCPDF_EXTERNAL_CONFIG', true); - -/** - * Installation path (/var/www/tcpdf/). - * By default it is automatically calculated but you can also set it as a fixed string to improve performances. - */ -//define ('K_PATH_MAIN', ''); - -/** - * URL path to tcpdf installation folder (http://localhost/tcpdf/). - * By default it is automatically set but you can also set it as a fixed string to improve performances. - */ -//define ('K_PATH_URL', ''); - -/** - * Path for PDF fonts. - * By default it is automatically set but you can also set it as a fixed string to improve performances. - */ -//define ('K_PATH_FONTS', K_PATH_MAIN.'fonts/'); - -/** - * Default images directory. - * By default it is automatically set but you can also set it as a fixed string to improve performances. - */ -define ('K_PATH_IMAGES', dirname(__FILE__).'/../images/'); - -/** - * Deafult image logo used be the default Header() method. - * Please set here your own logo or an empty string to disable it. - */ -define ('PDF_HEADER_LOGO', 'tcpdf_logo.jpg'); - -/** - * Header logo image width in user units. - */ -define ('PDF_HEADER_LOGO_WIDTH', 30); - -/** - * Cache directory for temporary files (full path). - */ -define ('K_PATH_CACHE', sys_get_temp_dir().'/'); - -/** - * Generic name for a blank image. - */ -define ('K_BLANK_IMAGE', '_blank.png'); - -/** - * Page format. - */ -define ('PDF_PAGE_FORMAT', 'A4'); - -/** - * Page orientation (P=portrait, L=landscape). - */ -define ('PDF_PAGE_ORIENTATION', 'P'); - -/** - * Document creator. - */ -define ('PDF_CREATOR', 'TCPDF'); - -/** - * Document author. - */ -define ('PDF_AUTHOR', 'TCPDF'); - -/** - * Header title. - */ -define ('PDF_HEADER_TITLE', 'TCPDF Example'); - -/** - * Header description string. - */ -define ('PDF_HEADER_STRING', "by Nicola Asuni - Tecnick.com\nwww.tcpdf.org"); - -/** - * Document unit of measure [pt=point, mm=millimeter, cm=centimeter, in=inch]. - */ -define ('PDF_UNIT', 'mm'); - -/** - * Header margin. - */ -define ('PDF_MARGIN_HEADER', 5); - -/** - * Footer margin. - */ -define ('PDF_MARGIN_FOOTER', 10); - -/** - * Top margin. - */ -define ('PDF_MARGIN_TOP', 27); - -/** - * Bottom margin. - */ -define ('PDF_MARGIN_BOTTOM', 25); - -/** - * Left margin. - */ -define ('PDF_MARGIN_LEFT', 15); - -/** - * Right margin. - */ -define ('PDF_MARGIN_RIGHT', 15); - -/** - * Default main font name. - */ -define ('PDF_FONT_NAME_MAIN', 'helvetica'); - -/** - * Default main font size. - */ -define ('PDF_FONT_SIZE_MAIN', 10); - -/** - * Default data font name. - */ -define ('PDF_FONT_NAME_DATA', 'helvetica'); - -/** - * Default data font size. - */ -define ('PDF_FONT_SIZE_DATA', 8); - -/** - * Default monospaced font name. - */ -define ('PDF_FONT_MONOSPACED', 'courier'); - -/** - * Ratio used to adjust the conversion of pixels to user units. - */ -define ('PDF_IMAGE_SCALE_RATIO', 1.25); - -/** - * Magnification factor for titles. - */ -define('HEAD_MAGNIFICATION', 1.1); - -/** - * Height of cell respect font height. - */ -define('K_CELL_HEIGHT_RATIO', 1.25); - -/** - * Title magnification respect main font size. - */ -define('K_TITLE_MAGNIFICATION', 1.3); - -/** - * Reduction factor for small font. - */ -define('K_SMALL_RATIO', 2/3); - -/** - * Set to true to enable the special procedure used to avoid the overlappind of symbols on Thai language. - */ -define('K_THAI_TOPCHARS', true); - -/** - * If true allows to call TCPDF methods using HTML syntax - * IMPORTANT: For security reason, disable this feature if you are printing user HTML content. - */ -define('K_TCPDF_CALLS_IN_HTML', true); - -/** - * List of TCPDF methods that are allowed to be called using HTML syntax. - * Note: each method name must end with surrounded with | (pipe) character. - * The constant K_TCPDF_CALLS_IN_HTML must be set to true. - * IMPORTANT: For security reason, disable this feature if you are allowing user HTML content. - */ -define('K_ALLOWED_TCPDF_TAGS', '|AddPage|Rect|SetDrawColor|write1DBarcode|'); - -/** - * If true and PHP version is greater than 5, then the Error() method throw new exception instead of terminating the execution. - */ -define('K_TCPDF_THROW_EXCEPTION_ERROR', false); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/data/cert/tcpdf.crt b/tools/tcpdf/examples/data/cert/tcpdf.crt deleted file mode 100644 index f0491391c..000000000 --- a/tools/tcpdf/examples/data/cert/tcpdf.crt +++ /dev/null @@ -1,40 +0,0 @@ -Bag Attributes - localKeyID: 7B AB 1B 7A BE 4C 85 C0 1A A6 DC 59 3F 79 48 C3 93 38 68 9C -subject=/CN=TCPDF DEMO/O=TCPDF/OU=DEMO/emailAddress=you@example.com/C=IT -issuer=/CN=TCPDF DEMO/O=TCPDF/OU=DEMO/emailAddress=you@example.com/C=IT ------BEGIN CERTIFICATE----- -MIIC1TCCAj6gAwIBAgIKkehOL/XGkB5cjjANBgkqhkiG9w0BAQUFADBhMRMwEQYD -VQQDEwpUQ1BERiBERU1PMQ4wDAYDVQQKEwVUQ1BERjENMAsGA1UECxMEREVNTzEe -MBwGCSqGSIb3DQEJARYPeW91QGV4YW1wbGUuY29tMQswCQYDVQQGEwJJVDAeFw0w -OTA4MjExMjU0NDhaFw0xNDA4MjExMjU0NDhaMGExEzARBgNVBAMTClRDUERGIERF -TU8xDjAMBgNVBAoTBVRDUERGMQ0wCwYDVQQLEwRERU1PMR4wHAYJKoZIhvcNAQkB -Fg95b3VAZXhhbXBsZS5jb20xCzAJBgNVBAYTAklUMIGfMA0GCSqGSIb3DQEBAQUA -A4GNADCBiQKBgQDAqIL0uGKmTR98Lxx2vEEE1OGKkMXFo0JViitALe7Onhxxqx0H -XMUDKF5mvEVu1rcvh7/oAnAfrCuEpL/up3u1mQCgBE7WXBnFFE/AE3jCksh9OkS0 -Z0Xj9woN5bzxRDsGoPiOu/4xzk5qSEXt8jf2Ep90QuNkqLIRT4swAzpDbwIDAQAB -o4GTMIGQMDcGA1UdEgQwMC6gEQYDVQQDDApUQ1BERiBERU1PoAwGA1UECgwFVENQ -REagCwYDVQQLDARERU1PMDcGA1UdEQQwMC6gEQYDVQQDDApUQ1BERiBERU1PoAwG -A1UECgwFVENQREagCwYDVQQLDARERU1PMA8GCSqGSIb3LwEBCgQCBQAwCwYDVR0P -BAQDAgSQMA0GCSqGSIb3DQEBBQUAA4GBAEhTQfqX3ZNdHmpTLDbIj22RHXii2roE -OavCbu9WsHoWpva0qSd+yIoD594VHvYAd29sfzDfiN+7W0aiZfDhq5jpaSQMVlN8 -RGYMupbHY/+a9Gz1wqxnR84mlTtIkZVRYAhsfPwy6M1BEjdMqfdh9h40JIdkdjtb -8faTCfXPePWQ ------END CERTIFICATE----- -Bag Attributes - localKeyID: 7B AB 1B 7A BE 4C 85 C0 1A A6 DC 59 3F 79 48 C3 93 38 68 9C -Key Attributes: ------BEGIN RSA PRIVATE KEY----- -MIICXQIBAAKBgQDAqIL0uGKmTR98Lxx2vEEE1OGKkMXFo0JViitALe7Onhxxqx0H -XMUDKF5mvEVu1rcvh7/oAnAfrCuEpL/up3u1mQCgBE7WXBnFFE/AE3jCksh9OkS0 -Z0Xj9woN5bzxRDsGoPiOu/4xzk5qSEXt8jf2Ep90QuNkqLIRT4swAzpDbwIDAQAB -AoGAXc+wNMmz/5Z+RlIKYia44klmqbplEx+0JULqXI4BQsrqvs67i+I4bJkznoL+ -rEIRYSuQ3sCRKFsFtckjTGpxadnxkB+uwGKc6pZChv99BFX6HFR4hgBlT/BBRAQA -hMDlM2JIRr4S4SMVXR7MHwGMUf9mUeanGLR3ZWtU3aXJrIECQQD7OaYUVYNEEnM9 -uXyjm22CuHyqyEf5gb13sK0uQty67547yJTMUQZd/sQc9KGwhzBbhrob2LO2jAhh -S+f+NSRnAkEAxFHm3fMI5RgXmswxlGm4QW07a/Ueo7ZJG6xjTkFXluJhd+XHswRD -dQIO3zG9nGjNUoeMrPhXhPvKqFc2F9RDuQJAQBEGin74N77gxqfr4ik79y8nE8J5 -oGZ2s/RJZdfFRKLg3mwbjjNHhWb4Ck5UgZkoOt8TzRApXG8/n9hktE5HFwJBALur -M5AueO1Pl5kB489lNJ9OxUQRYUXMxpxuscuoCQwSwmv0O2+0/qtG2WKhUQnI4aYo -L+FV0YwtivBb1jj3T/kCQQDIWOxq8eRowdaMzvJpRUHFgMcf1AVZExKyrugwYOWd -KNsDxC4KaQOsPt8iT/Ulo4g/MJC0HolCOhWibKmR9Ayl ------END RSA PRIVATE KEY----- diff --git a/tools/tcpdf/examples/data/cert/tcpdf.fdf b/tools/tcpdf/examples/data/cert/tcpdf.fdf deleted file mode 100644 index a8f7c35d9..000000000 Binary files a/tools/tcpdf/examples/data/cert/tcpdf.fdf and /dev/null differ diff --git a/tools/tcpdf/examples/data/cert/tcpdf.p12 b/tools/tcpdf/examples/data/cert/tcpdf.p12 deleted file mode 100644 index 611f0dfb1..000000000 Binary files a/tools/tcpdf/examples/data/cert/tcpdf.p12 and /dev/null differ diff --git a/tools/tcpdf/examples/data/chapter_demo_1.txt b/tools/tcpdf/examples/data/chapter_demo_1.txt deleted file mode 100644 index 4025de930..000000000 --- a/tools/tcpdf/examples/data/chapter_demo_1.txt +++ /dev/null @@ -1,19 +0,0 @@ -Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc. - -Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa. - -Integer non sem eget neque mattis accumsan. Maecenas eu nisl mauris, sit amet interdum ipsum. In pharetra erat vel lectus venenatis elementum. Nulla non elit ligula, sit amet mollis urna. Morbi ut gravida est. Mauris tincidunt sem et turpis molestie malesuada. Curabitur vel nulla risus, sed mollis erat. Suspendisse vehicula accumsan purus nec varius. Donec fermentum lorem id felis sodales dictum. Quisque et dolor ipsum. Nam luctus consectetur dui vitae fermentum. Curabitur sodales consequat augue, id ultricies augue tempor ac. Aliquam ac magna id ipsum vehicula bibendum. Sed elementum congue tristique. Phasellus vel lorem eu lectus porta sodales. Etiam neque tortor, sagittis id pharetra quis, laoreet vel arcu. - -Cras quam mi, ornare laoreet laoreet vel, vehicula at lacus. Maecenas a lacus accumsan augue convallis sagittis sed quis odio. Morbi sit amet turpis diam, dictum convallis urna. Cras eget interdum augue. Cras eu nisi sit amet dolor faucibus porttitor. Suspendisse potenti. Nunc vitae dolor risus, at cursus libero. Suspendisse bibendum tellus non nibh hendrerit tristique. Mauris eget orci elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porta libero non ante laoreet semper. Proin volutpat sodales mi, ac fermentum erat sagittis in. Vivamus at viverra felis. Ut pretium facilisis ante et pharetra. - -Nulla facilisi. Cras varius quam eget libero aliquam vitae tincidunt leo rutrum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque a nisl massa, quis pretium urna. Proin vel porttitor tortor. Cras rhoncus congue velit in bibendum. Donec pharetra semper augue id lacinia. Quisque magna quam, hendrerit eu aliquam et, pellentesque ut tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas nulla quam, rutrum eu feugiat at, elementum eu libero. Maecenas ullamcorper leo et turpis rutrum ac laoreet eros faucibus. Phasellus condimentum lorem quis neque imperdiet quis molestie enim iaculis. Phasellus risus est, vestibulum ut convallis ultrices, dignissim nec erat. Etiam congue lobortis laoreet. Nulla ut neque sed velit dapibus semper. Quisque nec dolor id nibh eleifend iaculis. Vivamus vitae fermentum odio. Etiam malesuada quam in nulla aliquam sed convallis dui feugiat. - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc. - -Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa. - -Integer non sem eget neque mattis accumsan. Maecenas eu nisl mauris, sit amet interdum ipsum. In pharetra erat vel lectus venenatis elementum. Nulla non elit ligula, sit amet mollis urna. Morbi ut gravida est. Mauris tincidunt sem et turpis molestie malesuada. Curabitur vel nulla risus, sed mollis erat. Suspendisse vehicula accumsan purus nec varius. Donec fermentum lorem id felis sodales dictum. Quisque et dolor ipsum. Nam luctus consectetur dui vitae fermentum. Curabitur sodales consequat augue, id ultricies augue tempor ac. Aliquam ac magna id ipsum vehicula bibendum. Sed elementum congue tristique. Phasellus vel lorem eu lectus porta sodales. Etiam neque tortor, sagittis id pharetra quis, laoreet vel arcu. - -Cras quam mi, ornare laoreet laoreet vel, vehicula at lacus. Maecenas a lacus accumsan augue convallis sagittis sed quis odio. Morbi sit amet turpis diam, dictum convallis urna. Cras eget interdum augue. Cras eu nisi sit amet dolor faucibus porttitor. Suspendisse potenti. Nunc vitae dolor risus, at cursus libero. Suspendisse bibendum tellus non nibh hendrerit tristique. Mauris eget orci elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porta libero non ante laoreet semper. Proin volutpat sodales mi, ac fermentum erat sagittis in. Vivamus at viverra felis. Ut pretium facilisis ante et pharetra. - -Nulla facilisi. Cras varius quam eget libero aliquam vitae tincidunt leo rutrum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque a nisl massa, quis pretium urna. Proin vel porttitor tortor. Cras rhoncus congue velit in bibendum. Donec pharetra semper augue id lacinia. Quisque magna quam, hendrerit eu aliquam et, pellentesque ut tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas nulla quam, rutrum eu feugiat at, elementum eu libero. Maecenas ullamcorper leo et turpis rutrum ac laoreet eros faucibus. Phasellus condimentum lorem quis neque imperdiet quis molestie enim iaculis. Phasellus risus est, vestibulum ut convallis ultrices, dignissim nec erat. Etiam congue lobortis laoreet. Nulla ut neque sed velit dapibus semper. Quisque nec dolor id nibh eleifend iaculis. Vivamus vitae fermentum odio. Etiam malesuada quam in nulla aliquam sed convallis dui feugiat. diff --git a/tools/tcpdf/examples/data/chapter_demo_2.txt b/tools/tcpdf/examples/data/chapter_demo_2.txt deleted file mode 100644 index a0210ff02..000000000 --- a/tools/tcpdf/examples/data/chapter_demo_2.txt +++ /dev/null @@ -1,23 +0,0 @@ -

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc.

- - - -

Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa.

- -

Integer non sem eget neque mattis accumsan. Maecenas eu nisl mauris, sit amet interdum ipsum. In pharetra erat vel lectus venenatis elementum. Nulla non elit ligula, sit amet mollis urna. Morbi ut gravida est. Mauris tincidunt sem et turpis molestie malesuada. Curabitur vel nulla risus, sed mollis erat. Suspendisse vehicula accumsan purus nec varius. Donec fermentum lorem id felis sodales dictum. Quisque et dolor ipsum. Nam luctus consectetur dui vitae fermentum. Curabitur sodales consequat augue, id ultricies augue tempor ac. Aliquam ac magna id ipsum vehicula bibendum. Sed elementum congue tristique. Phasellus vel lorem eu lectus porta sodales. Etiam neque tortor, sagittis id pharetra quis, laoreet vel arcu.

- -

Cras quam mi, ornare laoreet laoreet vel, vehicula at lacus. Maecenas a lacus accumsan augue convallis sagittis sed quis odio. Morbi sit amet turpis diam, dictum convallis urna. Cras eget interdum augue. Cras eu nisi sit amet dolor faucibus porttitor. Suspendisse potenti. Nunc vitae dolor risus, at cursus libero. Suspendisse bibendum tellus non nibh hendrerit tristique. Mauris eget orci elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porta libero non ante laoreet semper. Proin volutpat sodales mi, ac fermentum erat sagittis in. Vivamus at viverra felis. Ut pretium facilisis ante et pharetra.

- -

Nulla facilisi. Cras varius quam eget libero aliquam vitae tincidunt leo rutrum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque a nisl massa, quis pretium urna. Proin vel porttitor tortor. Cras rhoncus congue velit in bibendum. Donec pharetra semper augue id lacinia. Quisque magna quam, hendrerit eu aliquam et, pellentesque ut tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas nulla quam, rutrum eu feugiat at, elementum eu libero. Maecenas ullamcorper leo et turpis rutrum ac laoreet eros faucibus. Phasellus condimentum lorem quis neque imperdiet quis molestie enim iaculis. Phasellus risus est, vestibulum ut convallis ultrices, dignissim nec erat. Etiam congue lobortis laoreet. Nulla ut neque sed velit dapibus semper. Quisque nec dolor id nibh eleifend iaculis. Vivamus vitae fermentum odio. Etiam malesuada quam in nulla aliquam sed convallis dui feugiat.

- -

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc.

- - - -

Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa.

- -

Integer non sem eget neque mattis accumsan. Maecenas eu nisl mauris, sit amet interdum ipsum. In pharetra erat vel lectus venenatis elementum. Nulla non elit ligula, sit amet mollis urna. Morbi ut gravida est. Mauris tincidunt sem et turpis molestie malesuada. Curabitur vel nulla risus, sed mollis erat. Suspendisse vehicula accumsan purus nec varius. Donec fermentum lorem id felis sodales dictum. Quisque et dolor ipsum. Nam luctus consectetur dui vitae fermentum. Curabitur sodales consequat augue, id ultricies augue tempor ac. Aliquam ac magna id ipsum vehicula bibendum. Sed elementum congue tristique. Phasellus vel lorem eu lectus porta sodales. Etiam neque tortor, sagittis id pharetra quis, laoreet vel arcu.

- -

Cras quam mi, ornare laoreet laoreet vel, vehicula at lacus. Maecenas a lacus accumsan augue convallis sagittis sed quis odio. Morbi sit amet turpis diam, dictum convallis urna. Cras eget interdum augue. Cras eu nisi sit amet dolor faucibus porttitor. Suspendisse potenti. Nunc vitae dolor risus, at cursus libero. Suspendisse bibendum tellus non nibh hendrerit tristique. Mauris eget orci elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porta libero non ante laoreet semper. Proin volutpat sodales mi, ac fermentum erat sagittis in. Vivamus at viverra felis. Ut pretium facilisis ante et pharetra.

- -

Nulla facilisi. Cras varius quam eget libero aliquam vitae tincidunt leo rutrum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque a nisl massa, quis pretium urna. Proin vel porttitor tortor. Cras rhoncus congue velit in bibendum. Donec pharetra semper augue id lacinia. Quisque magna quam, hendrerit eu aliquam et, pellentesque ut tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas nulla quam, rutrum eu feugiat at, elementum eu libero. Maecenas ullamcorper leo et turpis rutrum ac laoreet eros faucibus. Phasellus condimentum lorem quis neque imperdiet quis molestie enim iaculis. Phasellus risus est, vestibulum ut convallis ultrices, dignissim nec erat. Etiam congue lobortis laoreet. Nulla ut neque sed velit dapibus semper. Quisque nec dolor id nibh eleifend iaculis. Vivamus vitae fermentum odio. Etiam malesuada quam in nulla aliquam sed convallis dui feugiat.

diff --git a/tools/tcpdf/examples/data/table_data_demo.txt b/tools/tcpdf/examples/data/table_data_demo.txt deleted file mode 100644 index 5a48a42e7..000000000 --- a/tools/tcpdf/examples/data/table_data_demo.txt +++ /dev/null @@ -1,15 +0,0 @@ -Austria;Vienna;83859;8075 -Belgium;Brussels;30518;10192 -Denmark;Copenhagen;43094;5295 -Finland;Helsinki;304529;5147 -France;Paris;543965;58728 -Germany;Berlin;357022;82057 -Greece;Athens;131625;10511 -Ireland;Dublin;70723;3694 -Italy;Roma;301316;57563 -Luxembourg;Luxembourg;2586;424 -Netherlands;Amsterdam;41526;15654 -Portugal;Lisbon;91906;9957 -Spain;Madrid;504790;39348 -Sweden;Stockholm;410934;8839 -United Kingdom;London;243820;58862 diff --git a/tools/tcpdf/examples/data/utf8test.txt b/tools/tcpdf/examples/data/utf8test.txt deleted file mode 100644 index 291d4e735..000000000 --- a/tools/tcpdf/examples/data/utf8test.txt +++ /dev/null @@ -1,128 +0,0 @@ -Sentences that contain all letters commonly used in a language --------------------------------------------------------------- - -This file is UTF-8 encoded. - -Czech (cz) ---------- - - Příšerně žluťoučký kůň úpěl ďábelské ódy. - Hleď, toť přízračný kůň v mátožné póze šíleně úpí. - Zvlášť zákeřný učeň s ďolíčky běží podél zóny úlů. - Loď čeří kýlem tůň obzvlášť v Grónské úžině. - Ó, náhlý déšť již zvířil prach a čilá laň teď běží s houfcem gazel k úkrytům. - -Danish (da) ---------- - - Quizdeltagerne spiste jordbær med fløde, mens cirkusklovnen - Wolther spillede på xylofon. - (= Quiz contestants were eating strawbery with cream while Wolther - the circus clown played on xylophone.) - -German (de) ------------ - - Falsches Üben von Xylophonmusik quält jeden größeren Zwerg - (= Wrongful practicing of xylophone music tortures every larger dwarf) - - Zwölf Boxkämpfer jagten Eva quer über den Sylter Deich - (= Twelve boxing fighters hunted Eva across the dike of Sylt) - - Heizölrückstoßabdämpfung - (= fuel oil recoil absorber) - (jqvwxy missing, but all non-ASCII letters in one word) - -English (en) ------------- - - The quick brown fox jumps over the lazy dog - -Spanish (es) ------------- - - El pingüino Wenceslao hizo kilómetros bajo exhaustiva lluvia y - frío, añoraba a su querido cachorro. - (Contains every letter and every accent, but not every combination - of vowel + acute.) - -French (fr) ------------ - - Portez ce vieux whisky au juge blond qui fume sur son île intérieure, à - côté de l'alcôve ovoïde, où les bûches se consument dans l'âtre, ce - qui lui permet de penser à la cænogenèse de l'être dont il est question - dans la cause ambiguë entendue à Moÿ, dans un capharnaüm qui, - pense-t-il, diminue çà et là la qualité de son œuvre. - - l'île exiguë - Où l'obèse jury mûr - Fête l'haï volapük, - Âne ex aéquo au whist, - Ôtez ce vœu déçu. - - Le cœur déçu mais l'âme plutôt naïve, Louÿs rêva de crapaüter en - canoë au delà des îles, près du mälström où brûlent les novæ. - -Irish Gaelic (ga) ------------------ - - D'fhuascail Íosa, Úrmhac na hÓighe Beannaithe, pór Éava agus Ádhaimh - -Hungarian (hu) --------------- - - Árvíztűrő tükörfúrógép - (= flood-proof mirror-drilling machine, only all non-ASCII letters) - -Icelandic (is) --------------- - - Kæmi ný öxi hér ykist þjófum nú bæði víl og ádrepa - - Sævör grét áðan því úlpan var ónýt - (some ASCII letters missing) - -Greek (el) -------------- - - Γαζέες καὶ μυρτιὲς δὲν θὰ βρῶ πιὰ στὸ χρυσαφὶ ξέφωτο - (= No more shall I see acacias or myrtles in the golden clearing) - - Ξεσκεπάζω τὴν ψυχοφθόρα βδελυγμία - (= I uncover the soul-destroying abhorrence) - -Hebrew (iw) ------------ - - ? דג סקרן שט בים מאוכזב ולפתע מצא לו חברה איך הקליטה - -Polish (pl) ------------ - - Pchnąć w tę łódź jeża lub osiem skrzyń fig - (= To push a hedgehog or eight bins of figs in this boat) - - Zażółć gęślą jaźń - -Russian (ru) ------------- - - В чащах юга жил бы цитрус? Да, но фальшивый экземпляр! - (= Would a citrus live in the bushes of south? Yes, but only a fake one!) - -Thai (th) ---------- - - [--------------------------|------------------------] - ๏ เป็นมนุษย์สุดประเสริฐเลิศคุณค่า กว่าบรรดาฝูงสัตว์เดรัจฉาน - จงฝ่าฟันพัฒนาวิชาการ อย่าล้างผลาญฤๅเข่นฆ่าบีฑาใคร - ไม่ถือโทษโกรธแช่งซัดฮึดฮัดด่า หัดอภัยเหมือนกีฬาอัชฌาสัย - ปฏิบัติประพฤติกฎกำหนดใจ พูดจาให้จ๊ะๆ จ๋าๆ น่าฟังเอย ฯ - - [The copyright for the Thai example is owned by The Computer - Association of Thailand under the Royal Patronage of His Majesty the - King.] - -Please let me know if you find others! Special thanks to the people -from all over the world who contributed these sentences. diff --git a/tools/tcpdf/examples/example_001.php b/tools/tcpdf/examples/example_001.php deleted file mode 100644 index 82555e6b2..000000000 --- a/tools/tcpdf/examples/example_001.php +++ /dev/null @@ -1,110 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 001'); -$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.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128)); -$pdf->setFooterData(array(0,64,0), array(0,64,128)); - -// 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 default font subsetting mode -$pdf->setFontSubsetting(true); - -// Set font -// dejavusans is a UTF-8 Unicode font, if you only need to -// print standard ASCII chars, you can use core fonts like -// helvetica or times to reduce file size. -$pdf->setFont('dejavusans', '', 14, '', true); - -// Add a page -// This method has several options, check the source code documentation for more information. -$pdf->AddPage(); - -// set text shadow effect -$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal')); - -// Set some content to print -$html = <<Welcome to  TCPDF ! -This is the first example of TCPDF library. -

This text is printed using the writeHTMLCell() method but you can also use: Multicell(), writeHTML(), Write(), Cell() and Text().

-

Please check the source code documentation and other examples for further information.

-

TO IMPROVE AND EXPAND TCPDF I NEED YOUR SUPPORT, PLEASE MAKE A DONATION!

-EOD; - -// Print text using writeHTMLCell() -$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); - -// --------------------------------------------------------- - -// Close and output PDF document -// This method has several options, check the source code documentation for more information. -$pdf->Output('example_001.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_002.php b/tools/tcpdf/examples/example_002.php deleted file mode 100644 index f40a2014a..000000000 --- a/tools/tcpdf/examples/example_002.php +++ /dev/null @@ -1,91 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 002'); -$pdf->setSubject('TCPDF Tutorial'); -$pdf->setKeywords('TCPDF, PDF, example, test, guide'); - -// remove default header/footer -$pdf->setPrintHeader(false); -$pdf->setPrintFooter(false); - -// set default monospaced font -$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); - -// set margins -$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); - -// 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('times', 'BI', 20); - -// add a page -$pdf->AddPage(); - -// set some text to print -$txt = <<Write(0, $txt, '', 0, 'C', true, 0, false, false, 0); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_002.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_003.php b/tools/tcpdf/examples/example_003.php deleted file mode 100644 index eeeb0c8d5..000000000 --- a/tools/tcpdf/examples/example_003.php +++ /dev/null @@ -1,122 +0,0 @@ -Image($image_file, 10, 10, 15, '', 'JPG', '', 'T', false, 300, '', false, false, 0, false, false, false); - // Set font - $this->setFont('helvetica', 'B', 20); - // Title - $this->Cell(0, 15, '<< TCPDF Example 003 >>', 0, false, 'C', 0, '', 0, false, 'M', 'M'); - } - - // Page footer - public function Footer() { - // Position at 15 mm from bottom - $this->setY(-15); - // Set font - $this->setFont('helvetica', 'I', 8); - // Page number - $this->Cell(0, 10, 'Page '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M'); - } -} - -// create new PDF document -$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); - -// set document information -$pdf->setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 003'); -$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, 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('times', 'BI', 12); - -// add a page -$pdf->AddPage(); - -// set some text to print -$txt = <<Write(0, $txt, '', 0, 'C', true, 0, false, false, 0); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_003.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_004.php b/tools/tcpdf/examples/example_004.php deleted file mode 100644 index a1f69a5b9..000000000 --- a/tools/tcpdf/examples/example_004.php +++ /dev/null @@ -1,123 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 004'); -$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.' 004', 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('times', '', 11); - -// add a page -$pdf->AddPage(); - -//Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=0, $link='', $stretch=0, $ignore_min_height=false, $calign='T', $valign='M') - -// test Cell stretching -$pdf->Cell(0, 0, 'TEST CELL STRETCH: no stretch', 1, 1, 'C', 0, '', 0); -$pdf->Cell(0, 0, 'TEST CELL STRETCH: scaling', 1, 1, 'C', 0, '', 1); -$pdf->Cell(0, 0, 'TEST CELL STRETCH: force scaling', 1, 1, 'C', 0, '', 2); -$pdf->Cell(0, 0, 'TEST CELL STRETCH: spacing', 1, 1, 'C', 0, '', 3); -$pdf->Cell(0, 0, 'TEST CELL STRETCH: force spacing', 1, 1, 'C', 0, '', 4); - -$pdf->Ln(5); - -$pdf->Cell(45, 0, 'TEST CELL STRETCH: scaling', 1, 1, 'C', 0, '', 1); -$pdf->Cell(45, 0, 'TEST CELL STRETCH: force scaling', 1, 1, 'C', 0, '', 2); -$pdf->Cell(45, 0, 'TEST CELL STRETCH: spacing', 1, 1, 'C', 0, '', 3); -$pdf->Cell(45, 0, 'TEST CELL STRETCH: force spacing', 1, 1, 'C', 0, '', 4); - -$pdf->AddPage(); - -// example using general stretching and spacing - -for ($stretching = 90; $stretching <= 110; $stretching += 10) { - for ($spacing = -0.254; $spacing <= 0.254; $spacing += 0.254) { - - // set general stretching (scaling) value - $pdf->setFontStretching($stretching); - - // set general spacing value - $pdf->setFontSpacing($spacing); - - $pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spacing).'mm, no stretch', 1, 1, 'C', 0, '', 0); - $pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spacing).'mm, scaling', 1, 1, 'C', 0, '', 1); - $pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spacing).'mm, force scaling', 1, 1, 'C', 0, '', 2); - $pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spacing).'mm, spacing', 1, 1, 'C', 0, '', 3); - $pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spacing).'mm, force spacing', 1, 1, 'C', 0, '', 4); - - $pdf->Ln(2); - } -} - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_004.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_005.php b/tools/tcpdf/examples/example_005.php deleted file mode 100644 index c27dfeac4..000000000 --- a/tools/tcpdf/examples/example_005.php +++ /dev/null @@ -1,160 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 005'); -$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.' 005', 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('times', '', 10); - -// add a page -$pdf->AddPage(); - -// set cell padding -$pdf->setCellPaddings(1, 1, 1, 1); - -// set cell margins -$pdf->setCellMargins(1, 1, 1, 1); - -// set color for background -$pdf->setFillColor(255, 255, 127); - -// MultiCell($w, $h, $txt, $border=0, $align='J', $fill=0, $ln=1, $x='', $y='', $reseth=true, $stretch=0, $ishtml=false, $autopadding=true, $maxh=0) - -// set some text for example -$txt = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.'; - -// Multicell test -$pdf->MultiCell(55, 5, '[LEFT] '.$txt, 1, 'L', 1, 0, '', '', true); -$pdf->MultiCell(55, 5, '[RIGHT] '.$txt, 1, 'R', 0, 1, '', '', true); -$pdf->MultiCell(55, 5, '[CENTER] '.$txt, 1, 'C', 0, 0, '', '', true); -$pdf->MultiCell(55, 5, '[JUSTIFY] '.$txt."\n", 1, 'J', 1, 2, '' ,'', true); -$pdf->MultiCell(55, 5, '[DEFAULT] '.$txt, 1, '', 0, 1, '', '', true); - -$pdf->Ln(4); - -// set color for background -$pdf->setFillColor(220, 255, 220); - -// Vertical alignment -$pdf->MultiCell(55, 40, '[VERTICAL ALIGNMENT - TOP] '.$txt, 1, 'J', 1, 0, '', '', true, 0, false, true, 40, 'T'); -$pdf->MultiCell(55, 40, '[VERTICAL ALIGNMENT - MIDDLE] '.$txt, 1, 'J', 1, 0, '', '', true, 0, false, true, 40, 'M'); -$pdf->MultiCell(55, 40, '[VERTICAL ALIGNMENT - BOTTOM] '.$txt, 1, 'J', 1, 1, '', '', true, 0, false, true, 40, 'B'); - -$pdf->Ln(4); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// set color for background -$pdf->setFillColor(215, 235, 255); - -// set some text for example -$txt = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc. - -Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa.'; - -// print a blox of text using multicell() -$pdf->MultiCell(80, 5, $txt."\n", 1, 'J', 1, 1, '' ,'', true); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// AUTO-FITTING - -// set color for background -$pdf->setFillColor(255, 235, 235); - -// Fit text on cell by reducing font size -$pdf->MultiCell(55, 60, '[FIT CELL] '.$txt."\n", 1, 'J', 1, 1, 125, 145, true, 0, false, true, 60, 'M', true); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// CUSTOM PADDING - -// set color for background -$pdf->setFillColor(255, 255, 215); - -// set font -$pdf->setFont('helvetica', '', 8); - -// set cell padding -$pdf->setCellPaddings(2, 4, 6, 8); - -$txt = "CUSTOM PADDING:\nLeft=2, Top=4, Right=6, Bottom=8\nLorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue.\n"; - -$pdf->MultiCell(55, 5, $txt, 1, 'J', 1, 2, 125, 210, true); - -// move pointer to last page -$pdf->lastPage(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_005.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_006.php b/tools/tcpdf/examples/example_006.php deleted file mode 100644 index f2c7dbca7..000000000 --- a/tools/tcpdf/examples/example_006.php +++ /dev/null @@ -1,347 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 006'); -$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.' 006', 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('dejavusans', '', 10); - -// add a page -$pdf->AddPage(); - -// writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='') -// writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=0, $reseth=true, $align='', $autopadding=true) - -// create some HTML content -$html = '

HTML Example

-Some special characters: < € € € & è è © > \\slash \\\\double-slash \\\\\\triple-slash -

List

-List example: -
    -
  1. test alt attribute test image
  2. -
  3. bold text
  4. -
  5. italic text
  6. -
  7. underlined text
  8. -
  9. bbibiubib
  10. -
  11. link to http://www.tecnick.com
  12. -
  13. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
    Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.
  14. -
  15. SUBLIST -
      -
    1. row one -
        -
      • sublist
      • -
      -
    2. -
    3. row two
    4. -
    -
  16. -
  17. TEST line through
  18. -
  19. font + 3
  20. -
  21. small text normal small text normal subscript normal superscript normal
  22. -
-
-
Coffee
-
Black hot drink
-
Milk
-
White cold drink
-
-
IMAGES
-test alt attributetest alt attributetest alt attribute -
'; - -// output the HTML content -$pdf->writeHTML($html, true, false, true, false, ''); - - -// output some RTL HTML content -$html = '
The words “מזל [mazel] טוב [tov]” mean “Congratulations!”
'; -$pdf->writeHTML($html, true, false, true, false, ''); - -// test some inline CSS -$html = '

This is just an example of html code to demonstrate some supported CSS inline styles. -bold text -line-trough -underline and line-trough -color -background color -bold -xx-small -x-small -small -medium -large -x-large -xx-large -

'; - -$pdf->writeHTML($html, true, false, true, false, ''); - -// reset pointer to the last page -$pdf->lastPage(); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Print a table - -// add a page -$pdf->AddPage(); - -// create some HTML content -$subtable = '
ab
cd
'; - -$html = '

HTML TABLE:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#RIGHT alignLEFT align4A
1A1 example link column span. One two tree four five six seven eight nine ten.
line after br
small text normal subscript normal superscript normal bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
  1. first
    1. sublist
    2. sublist
  2. second
small small small small small small small small small small small small small small small small small small small small
4B
'.$subtable.'A2 € € € & è è
A2 € € € & è è
Red Yellow BG4C
1A2AA
2AB
2AC
4D
1B4E
1C2C3C4F
'; - -// output the HTML content -$pdf->writeHTML($html, true, false, true, false, ''); - -// Print some HTML Cells - -$html = 'red green blue
red green blue'; - -$pdf->setFillColor(255,255,0); - -$pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 0, true, 'L', true); -$pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 1, true, 'C', true); -$pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 0, true, 'R', true); - -// reset pointer to the last page -$pdf->lastPage(); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Print a table - -// add a page -$pdf->AddPage(); - -// create some HTML content -$html = '

Image alignments on HTML table

- - - - - - - - -
'; - -// output the HTML content -$pdf->writeHTML($html, true, false, true, false, ''); - -// create some HTML content -$html = '

Embedded Images

- - - -
src="@..."
src="data..."
'; - -$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(); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Print all HTML colors - -// add a page -$pdf->AddPage(); - -$textcolors = '

HTML Text Colors

'; -$bgcolors = '

HTML Background Colors

'; - -foreach(TCPDF_COLORS::$webcolor as $k => $v) { - $textcolors .= ''.$v.' '; - $bgcolors .= ''.$v.' '; -} - -// output the HTML content -$pdf->writeHTML($textcolors, true, false, true, false, ''); -$pdf->writeHTML($bgcolors, true, false, true, false, ''); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Test word-wrap - -// create some HTML content -$html = '
-

Various tests

-link to page 2
-thisisaverylongword thisisanotherverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword'; - -// output the HTML content -$pdf->writeHTML($html, true, false, true, false, ''); - -// Test fonts nesting -$html1 = 'Default Courier Helvetica Times dejavusans Times Helvetica Courier Default'; -$html2 = 'small text normal small text normal subscript normal superscript normal'; -$html3 = 'The quick brown fox jumps over the lazy dog.'; - -$html = $html1.'
'.$html2.'
'.$html3.'
'.$html3.'
'.$html2; - -// output the HTML content -$pdf->writeHTML($html, true, false, true, false, ''); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// test pre tag - -// add a page -$pdf->AddPage(); - -$html = << -Hello World!
-Hello - -
-int main() {
-    printf("HelloWorld");
-    return 0;
-}
-
-Monospace font, normal font, monospace font, normal font. -
-
DIV LEVEL 1
DIV LEVEL 2
DIV LEVEL 1
-
-SPAN LEVEL 1 SPAN LEVEL 2 SPAN LEVEL 1 -EOF; - -// output the HTML content -$pdf->writeHTML($html, true, false, true, false, ''); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// test custom bullet points for list - -// add a page -$pdf->AddPage(); - -$html = <<Test custom bullet image for list items -
    -
  • test custom bullet image
  • -
  • test custom bullet image
  • -
  • test custom bullet image
  • -
  • test custom bullet image
  • -
      -EOF; - -// output the HTML content -$pdf->writeHTML($html, true, false, true, false, ''); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// reset pointer to the last page -$pdf->lastPage(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_006.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_007.php b/tools/tcpdf/examples/example_007.php deleted file mode 100644 index 8edeb08a9..000000000 --- a/tools/tcpdf/examples/example_007.php +++ /dev/null @@ -1,117 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 007'); -$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.' 007', 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('times', '', 12); - -// add a page -$pdf->AddPage(); - -// create columns content -$left_column = 'LEFT COLUMN left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column'; - -$right_column = 'RIGHT COLUMN right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column'; - -// writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=0, $reseth=true, $align='', $autopadding=true) - -// get current vertical position -$y = $pdf->getY(); - -// set color for background -$pdf->setFillColor(255, 255, 200); - -// set color for text -$pdf->setTextColor(0, 63, 127); - -// write the first column -$pdf->writeHTMLCell(80, '', '', $y, $left_column, 1, 0, 1, true, 'J', true); - -// set color for background -$pdf->setFillColor(215, 235, 255); - -// set color for text -$pdf->setTextColor(127, 31, 0); - -// write the second column -$pdf->writeHTMLCell(80, '', '', '', $right_column, 1, 1, 1, true, 'J', true); - -// reset pointer to the last page -$pdf->lastPage(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_007.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_008.php b/tools/tcpdf/examples/example_008.php deleted file mode 100644 index 2a3e716bd..000000000 --- a/tools/tcpdf/examples/example_008.php +++ /dev/null @@ -1,99 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 008'); -$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.' 008', 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 default font subsetting mode -$pdf->setFontSubsetting(true); - -// set font -$pdf->setFont('freeserif', '', 12); - -// add a page -$pdf->AddPage(); - -// get external file content -$utf8text = file_get_contents('data/utf8test.txt', false); - -// set color for text -$pdf->setTextColor(0, 63, 127); - -//Write($h, $txt, $link='', $fill=0, $align='', $ln=false, $stretch=0, $firstline=false, $firstblock=false, $maxh=0) - -// write the text -$pdf->Write(5, $utf8text, '', 0, '', false, 0, false, false, 0); - - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_008.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_009.php b/tools/tcpdf/examples/example_009.php deleted file mode 100644 index 1daf8ea7d..000000000 --- a/tools/tcpdf/examples/example_009.php +++ /dev/null @@ -1,148 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 009'); -$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.' 009', 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); -} - -// ------------------------------------------------------------------- - -// add a page -$pdf->AddPage(); - -// set JPEG quality -$pdf->setJPEGQuality(75); - -// Image method signature: -// Image($file, $x='', $y='', $w=0, $h=0, $type='', $link='', $align='', $resize=false, $dpi=300, $palign='', $ismask=false, $imgmask=false, $border=0, $fitbox=false, $hidden=false, $fitonpage=false) - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Example of Image from data stream ('PHP rules') -$imgdata = base64_decode('iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABlBMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDrEX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg=='); - -// The '@' character is used to indicate that follows an image data stream and not an image file name -$pdf->Image('@'.$imgdata); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Image example with resizing -$pdf->Image('images/image_demo.jpg', 15, 140, 75, 113, 'JPG', 'http://www.tcpdf.org', '', true, 150, '', false, false, 1, false, false, false); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// test fitbox with all alignment combinations - -$horizontal_alignments = array('L', 'C', 'R'); -$vertical_alignments = array('T', 'M', 'B'); - -$x = 15; -$y = 35; -$w = 30; -$h = 30; -// test all combinations of alignments -for ($i = 0; $i < 3; ++$i) { - $fitbox = $horizontal_alignments[$i].' '; - $x = 15; - for ($j = 0; $j < 3; ++$j) { - $fitbox[1] = $vertical_alignments[$j]; - $pdf->Rect($x, $y, $w, $h, 'F', array(), array(128,255,128)); - $pdf->Image('images/image_demo.jpg', $x, $y, $w, $h, 'JPG', '', '', false, 300, '', false, false, 0, $fitbox, false, false); - $x += 32; // new column - } - $y += 32; // new row -} - -$x = 115; -$y = 35; -$w = 25; -$h = 50; -for ($i = 0; $i < 3; ++$i) { - $fitbox = $horizontal_alignments[$i].' '; - $x = 115; - for ($j = 0; $j < 3; ++$j) { - $fitbox[1] = $vertical_alignments[$j]; - $pdf->Rect($x, $y, $w, $h, 'F', array(), array(128,255,255)); - $pdf->Image('images/image_demo.jpg', $x, $y, $w, $h, 'JPG', '', '', false, 300, '', false, false, 0, $fitbox, false, false); - $x += 27; // new column - } - $y += 52; // new row -} - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Stretching, position and alignment example - -$pdf->setXY(110, 200); -$pdf->Image('images/image_demo.jpg', '', '', 40, 40, '', '', 'T', false, 300, '', false, false, 1, false, false, false); -$pdf->Image('images/image_demo.jpg', '', '', 40, 40, '', '', '', false, 300, '', false, false, 1, false, false, false); - -// ------------------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_009.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_010.php b/tools/tcpdf/examples/example_010.php deleted file mode 100644 index b99ca22b2..000000000 --- a/tools/tcpdf/examples/example_010.php +++ /dev/null @@ -1,152 +0,0 @@ -AddPage(); - // disable existing columns - $this->resetColumns(); - // print chapter title - $this->ChapterTitle($num, $title); - // set columns - $this->setEqualColumns(3, 57); - // print chapter body - $this->ChapterBody($file, $mode); - } - - /** - * Set chapter title - * @param int $num chapter number - * @param string $title chapter title - * @public - */ - public function ChapterTitle($num, $title) { - $this->setFont('helvetica', '', 14); - $this->setFillColor(200, 220, 255); - $this->Cell(180, 6, 'Chapter '.$num.' : '.$title, 0, 1, '', 1); - $this->Ln(4); - } - - /** - * Print chapter body - * @param string $file name of the file containing the chapter body - * @param boolean $mode if true the chapter body is in HTML, otherwise in simple text. - * @public - */ - public function ChapterBody($file, $mode=false) { - $this->selectColumn(); - // get esternal file content - $content = file_get_contents($file, false); - // set font - $this->setFont('times', '', 9); - $this->setTextColor(50, 50, 50); - // print content - if ($mode) { - // ------ HTML MODE ------ - $this->writeHTML($content, true, false, true, false, 'J'); - } else { - // ------ TEXT MODE ------ - $this->Write(0, $content, '', 0, 'J', true, 0, false, true, 0); - } - $this->Ln(); - } -} // end of extended class - -// --------------------------------------------------------- -// EXAMPLE -// --------------------------------------------------------- -// create new PDF document -$pdf = new MC_TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); - -// set document information -$pdf->setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 010'); -$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.' 010', 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); -} - -// --------------------------------------------------------- - -// print TEXT -$pdf->PrintChapter(1, 'LOREM IPSUM [TEXT]', 'data/chapter_demo_1.txt', false); - -// print HTML -$pdf->PrintChapter(2, 'LOREM IPSUM [HTML]', 'data/chapter_demo_2.txt', true); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_010.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_011.php b/tools/tcpdf/examples/example_011.php deleted file mode 100644 index 8656eb9c9..000000000 --- a/tools/tcpdf/examples/example_011.php +++ /dev/null @@ -1,141 +0,0 @@ -setFillColor(255, 0, 0); - $this->setTextColor(255); - $this->setDrawColor(128, 0, 0); - $this->setLineWidth(0.3); - $this->setFont('', 'B'); - // Header - $w = array(40, 35, 40, 45); - $num_headers = count($header); - for($i = 0; $i < $num_headers; ++$i) { - $this->Cell($w[$i], 7, $header[$i], 1, 0, 'C', 1); - } - $this->Ln(); - // Color and font restoration - $this->setFillColor(224, 235, 255); - $this->setTextColor(0); - $this->setFont(''); - // Data - $fill = 0; - foreach($data as $row) { - $this->Cell($w[0], 6, $row[0], 'LR', 0, 'L', $fill); - $this->Cell($w[1], 6, $row[1], 'LR', 0, 'L', $fill); - $this->Cell($w[2], 6, number_format($row[2]), 'LR', 0, 'R', $fill); - $this->Cell($w[3], 6, number_format($row[3]), 'LR', 0, 'R', $fill); - $this->Ln(); - $fill=!$fill; - } - $this->Cell(array_sum($w), 0, '', 'T'); - } -} - -// create new PDF document -$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); - -// set document information -$pdf->setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 011'); -$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.' 011', 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', '', 12); - -// add a page -$pdf->AddPage(); - -// column titles -$header = array('Country', 'Capital', 'Area (sq km)', 'Pop. (thousands)'); - -// data loading -$data = $pdf->LoadData('data/table_data_demo.txt'); - -// print colored table -$pdf->ColoredTable($header, $data); - -// --------------------------------------------------------- - -// close and output PDF document -$pdf->Output('example_011.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_012.pdf b/tools/tcpdf/examples/example_012.pdf deleted file mode 100644 index eec8ee0cd..000000000 Binary files a/tools/tcpdf/examples/example_012.pdf and /dev/null differ diff --git a/tools/tcpdf/examples/example_012.php b/tools/tcpdf/examples/example_012.php deleted file mode 100644 index b8c03f4f1..000000000 --- a/tools/tcpdf/examples/example_012.php +++ /dev/null @@ -1,207 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 012'); -$pdf->setSubject('TCPDF Tutorial'); -$pdf->setKeywords('TCPDF, PDF, example, test, guide'); - -// disable header and footer -$pdf->setPrintHeader(false); -$pdf->setPrintFooter(false); - -// set default monospaced font -$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); - -// set margins -$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); - -// 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', '', 10); - -// add a page -$pdf->AddPage(); - -$style = array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => '10,20,5,10', 'phase' => 10, 'color' => array(255, 0, 0)); -$style2 = array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 0, 0)); -$style3 = array('width' => 1, 'cap' => 'round', 'join' => 'round', 'dash' => '2,10', 'color' => array(255, 0, 0)); -$style4 = array('L' => 0, - 'T' => array('width' => 0.25, 'cap' => 'butt', 'join' => 'miter', 'dash' => '20,10', 'phase' => 10, 'color' => array(100, 100, 255)), - 'R' => array('width' => 0.50, 'cap' => 'round', 'join' => 'miter', 'dash' => 0, 'color' => array(50, 50, 127)), - 'B' => array('width' => 0.75, 'cap' => 'square', 'join' => 'miter', 'dash' => '30,10,5,10')); -$style5 = array('width' => 0.25, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 64, 128)); -$style6 = array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => '10,10', 'color' => array(0, 128, 0)); -$style7 = array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 128, 0)); - -// Line -$pdf->Text(5, 4, 'Line examples'); -$pdf->Line(5, 10, 80, 30, $style); -$pdf->Line(5, 10, 5, 30, $style2); -$pdf->Line(5, 10, 80, 10, $style3); - -// Rect -$pdf->Text(100, 4, 'Rectangle examples'); -$pdf->Rect(100, 10, 40, 20, 'DF', $style4, array(220, 220, 200)); -$pdf->Rect(145, 10, 40, 20, 'D', array('all' => $style3)); - -// Curve -$pdf->Text(5, 34, 'Curve examples'); -$pdf->Curve(5, 40, 30, 55, 70, 45, 60, 75, '', $style6); -$pdf->Curve(80, 40, 70, 75, 150, 45, 100, 75, 'F', $style6); -$pdf->Curve(140, 40, 150, 55, 180, 45, 200, 75, 'DF', $style6, array(200, 220, 200)); - -// Circle and ellipse -$pdf->Text(5, 79, 'Circle and ellipse examples'); -$pdf->setLineStyle($style5); -$pdf->Circle(25,105,20); -$pdf->Circle(25,105,10, 90, 180, '', $style6); -$pdf->Circle(25,105,10, 270, 360, 'F'); -$pdf->Circle(25,105,10, 270, 360, 'C', $style6); - -$pdf->setLineStyle($style5); -$pdf->Ellipse(100,103,40,20); -$pdf->Ellipse(100,105,20,10, 0, 90, 180, '', $style6); -$pdf->Ellipse(100,105,20,10, 0, 270, 360, 'DF', $style6); - -$pdf->setLineStyle($style5); -$pdf->Ellipse(175,103,30,15,45); -$pdf->Ellipse(175,105,15,7.50, 45, 90, 180, '', $style6); -$pdf->Ellipse(175,105,15,7.50, 45, 270, 360, 'F', $style6, array(220, 200, 200)); - -// Polygon -$pdf->Text(5, 129, 'Polygon examples'); -$pdf->setLineStyle(array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))); -$pdf->Polygon(array(5,135,45,135,15,165)); -$pdf->Polygon(array(60,135,80,135,80,155,70,165,50,155), 'DF', array($style6, $style7, $style7, 0, $style6), array(220, 200, 200)); -$pdf->Polygon(array(120,135,140,135,150,155,110,155), 'D', array($style6, 0, $style7, $style6)); -$pdf->Polygon(array(160,135,190,155,170,155,200,160,160,165), 'DF', array('all' => $style6), array(220, 220, 220)); - -// Polygonal Line -$pdf->setLineStyle(array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 164))); -$pdf->PolyLine(array(80,165,90,160,100,165,110,160,120,165,130,160,140,165), 'D', array(), array()); - -// Regular polygon -$pdf->Text(5, 169, 'Regular polygon examples'); -$pdf->setLineStyle($style5); -$pdf->RegularPolygon(20, 190, 15, 6, 0, 1, 'F'); -$pdf->RegularPolygon(55, 190, 15, 6); -$pdf->RegularPolygon(55, 190, 10, 6, 45, false, 'DF', array($style6, 0, $style7, 0, $style7, $style7)); -$pdf->RegularPolygon(90, 190, 15, 3, 0, true, 'DF', array('all' => $style5), array(200, 220, 200), 'F', array(255, 200, 200)); -$pdf->RegularPolygon(125, 190, 15, 4, 30, true, '', array('all' => $style5), array(), '', $style6); -$pdf->RegularPolygon(160, 190, 15, 10); - -// Star polygon -$pdf->Text(5, 209, 'Star polygon examples'); -$pdf->setLineStyle($style5); -$pdf->StarPolygon(20, 230, 15, 20, 3, 0, 1, 'F'); -$pdf->StarPolygon(55, 230, 15, 12, 5); -$pdf->StarPolygon(55, 230, 7, 12, 5, 45, false, 'DF', array('all' => $style7), array(220, 220, 200), 'F', array(255, 200, 200)); -$pdf->StarPolygon(90, 230, 15, 20, 6, 0, true, 'DF', array('all' => $style5), array(220, 220, 200), 'F', array(255, 200, 200)); -$pdf->StarPolygon(125, 230, 15, 5, 2, 30, true, '', array('all' => $style5), array(), '', $style6); -$pdf->StarPolygon(160, 230, 15, 10, 3); -$pdf->StarPolygon(160, 230, 7, 50, 26); - -// Rounded rectangle -$pdf->Text(5, 249, 'Rounded rectangle examples'); -$pdf->setLineStyle(array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))); -$pdf->RoundedRect(5, 255, 40, 30, 3.50, '1111', 'DF'); -$pdf->RoundedRect(50, 255, 40, 30, 6.50, '1000'); -$pdf->RoundedRect(95, 255, 40, 30, 10.0, '1111', '', $style6); -$pdf->RoundedRect(140, 255, 40, 30, 8.0, '0101', 'DF', $style6, array(200, 200, 200)); - -// Arrows -$pdf->Text(185, 249, 'Arrows'); -$pdf->setLineStyle($style5); -$pdf->setFillColor(255, 0, 0); -$pdf->Arrow(200, 280, 185, 266, 0, 5, 15); -$pdf->Arrow(200, 280, 190, 263, 1, 5, 15); -$pdf->Arrow(200, 280, 195, 261, 2, 5, 15); -$pdf->Arrow(200, 280, 200, 260, 3, 5, 15); - -// - . - . - . - . - . - . - . - . - . - . - . - . - . - . - - -// ellipse - -// add a page -$pdf->AddPage(); - -$pdf->Cell(0, 0, 'Arc of Ellipse'); - -// center of ellipse -$xc=100; -$yc=100; - -// X Y axis -$pdf->setDrawColor(200, 200, 200); -$pdf->Line($xc-50, $yc, $xc+50, $yc); -$pdf->Line($xc, $yc-50, $xc, $yc+50); - -// ellipse axis -$pdf->setDrawColor(200, 220, 255); -$pdf->Line($xc-50, $yc-50, $xc+50, $yc+50); -$pdf->Line($xc-50, $yc+50, $xc+50, $yc-50); - -// ellipse -$pdf->setDrawColor(200, 255, 200); -$pdf->Ellipse($xc, $yc, 30, 15, 45, 0, 360, 'D', array(), array(), 2); - -// ellipse arc -$pdf->setDrawColor(255, 0, 0); -$pdf->Ellipse($xc, $yc, 30, 15, 45, 45, 90, 'D', array(), array(), 2); - - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_012.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_013.php b/tools/tcpdf/examples/example_013.php deleted file mode 100644 index 0430e8f59..000000000 --- a/tools/tcpdf/examples/example_013.php +++ /dev/null @@ -1,231 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 013'); -$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.' 013', 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, 'Graphic Transformations', '', 0, 'C', 1, 0, false, false, 0); - -// set font -$pdf->setFont('helvetica', '', 10); - -// --- Scaling --------------------------------------------- -$pdf->setDrawColor(200); -$pdf->setTextColor(200); -$pdf->Rect(50, 70, 40, 10, 'D'); -$pdf->Text(50, 66, 'Scale'); -$pdf->setDrawColor(0); -$pdf->setTextColor(0); -// Start Transformation -$pdf->StartTransform(); -// Scale by 150% centered by (50,80) which is the lower left corner of the rectangle -$pdf->ScaleXY(150, 50, 80); -$pdf->Rect(50, 70, 40, 10, 'D'); -$pdf->Text(50, 66, 'Scale'); -// Stop Transformation -$pdf->StopTransform(); - -// --- Translation ----------------------------------------- -$pdf->setDrawColor(200); -$pdf->setTextColor(200); -$pdf->Rect(125, 70, 40, 10, 'D'); -$pdf->Text(125, 66, 'Translate'); -$pdf->setDrawColor(0); -$pdf->setTextColor(0); -// Start Transformation -$pdf->StartTransform(); -// Translate 7 to the right, 5 to the bottom -$pdf->Translate(7, 5); -$pdf->Rect(125, 70, 40, 10, 'D'); -$pdf->Text(125, 66, 'Translate'); -// Stop Transformation -$pdf->StopTransform(); - -// --- Rotation -------------------------------------------- -$pdf->setDrawColor(200); -$pdf->setTextColor(200); -$pdf->Rect(70, 100, 40, 10, 'D'); -$pdf->Text(70, 96, 'Rotate'); -$pdf->setDrawColor(0); -$pdf->setTextColor(0); -// Start Transformation -$pdf->StartTransform(); -// Rotate 20 degrees counter-clockwise centered by (70,110) which is the lower left corner of the rectangle -$pdf->Rotate(20, 70, 110); -$pdf->Rect(70, 100, 40, 10, 'D'); -$pdf->Text(70, 96, 'Rotate'); -// Stop Transformation -$pdf->StopTransform(); - -// --- Skewing --------------------------------------------- -$pdf->setDrawColor(200); -$pdf->setTextColor(200); -$pdf->Rect(125, 100, 40, 10, 'D'); -$pdf->Text(125, 96, 'Skew'); -$pdf->setDrawColor(0); -$pdf->setTextColor(0); -// Start Transformation -$pdf->StartTransform(); -// skew 30 degrees along the x-axis centered by (125,110) which is the lower left corner of the rectangle -$pdf->SkewX(30, 125, 110); -$pdf->Rect(125, 100, 40, 10, 'D'); -$pdf->Text(125, 96, 'Skew'); -// Stop Transformation -$pdf->StopTransform(); - -// --- Mirroring horizontally ------------------------------ -$pdf->setDrawColor(200); -$pdf->setTextColor(200); -$pdf->Rect(70, 130, 40, 10, 'D'); -$pdf->Text(70, 126, 'MirrorH'); -$pdf->setDrawColor(0); -$pdf->setTextColor(0); -// Start Transformation -$pdf->StartTransform(); -// mirror horizontally with axis of reflection at x-position 70 (left side of the rectangle) -$pdf->MirrorH(70); -$pdf->Rect(70, 130, 40, 10, 'D'); -$pdf->Text(70, 126, 'MirrorH'); -// Stop Transformation -$pdf->StopTransform(); - -// --- Mirroring vertically -------------------------------- -$pdf->setDrawColor(200); -$pdf->setTextColor(200); -$pdf->Rect(125, 130, 40, 10, 'D'); -$pdf->Text(125, 126, 'MirrorV'); -$pdf->setDrawColor(0); -$pdf->setTextColor(0); -// Start Transformation -$pdf->StartTransform(); -// mirror vertically with axis of reflection at y-position 140 (bottom side of the rectangle) -$pdf->MirrorV(140); -$pdf->Rect(125, 130, 40, 10, 'D'); -$pdf->Text(125, 126, 'MirrorV'); -// Stop Transformation -$pdf->StopTransform(); - -// --- Point reflection ------------------------------------ -$pdf->setDrawColor(200); -$pdf->setTextColor(200); -$pdf->Rect(70, 160, 40, 10, 'D'); -$pdf->Text(70, 156, 'MirrorP'); -$pdf->setDrawColor(0); -$pdf->setTextColor(0); -// Start Transformation -$pdf->StartTransform(); -// point reflection at the lower left point of rectangle -$pdf->MirrorP(70,170); -$pdf->Rect(70, 160, 40, 10, 'D'); -$pdf->Text(70, 156, 'MirrorP'); -// Stop Transformation -$pdf->StopTransform(); - -// --- Mirroring against a straigth line described by a point (120, 120) and an angle -20° -$angle=-20; -$px=120; -$py=170; - -// just for visualisation: the straight line to mirror against - -$pdf->setDrawColor(200); -$pdf->Line($px-1,$py-1,$px+1,$py+1); -$pdf->Line($px-1,$py+1,$px+1,$py-1); -$pdf->StartTransform(); -$pdf->Rotate($angle, $px, $py); -$pdf->Line($px-5, $py, $px+60, $py); -$pdf->StopTransform(); - -$pdf->setDrawColor(200); -$pdf->setTextColor(200); -$pdf->Rect(125, 160, 40, 10, 'D'); -$pdf->Text(125, 156, 'MirrorL'); -$pdf->setDrawColor(0); -$pdf->setTextColor(0); -//Start Transformation -$pdf->StartTransform(); -//mirror against the straight line -$pdf->MirrorL($angle, $px, $py); -$pdf->Rect(125, 160, 40, 10, 'D'); -$pdf->Text(125, 156, 'MirrorL'); -//Stop Transformation -$pdf->StopTransform(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_013.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_014.php b/tools/tcpdf/examples/example_014.php deleted file mode 100644 index eac3f6aaf..000000000 --- a/tools/tcpdf/examples/example_014.php +++ /dev/null @@ -1,197 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 014'); -$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.' 014', 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); -} - -// --------------------------------------------------------- - -// IMPORTANT: disable font subsetting to allow users editing the document -$pdf->setFontSubsetting(false); - -// set font. 'helvetica' MUST be used to avoid a PHP notice from PHP 7.4+ -$pdf->setFont('helvetica', '', 10, '', false); - -// add a page -$pdf->AddPage(); - -/* -It is possible to create text fields, combo boxes, check boxes and buttons. -Fields are created at the current position and are given a name. -This name allows to manipulate them via JavaScript in order to perform some validation for instance. -*/ - -// set default form properties -$pdf->setFormDefaultProp(array('lineWidth'=>1, 'borderStyle'=>'solid', 'fillColor'=>array(255, 255, 200), 'strokeColor'=>array(255, 128, 128))); - -$pdf->setFont('helvetica', 'BI', 18); -$pdf->Cell(0, 5, 'Example of Form', 0, 1, 'C'); -$pdf->Ln(10); - -$pdf->setFont('helvetica', '', 12); - -// First name -$pdf->Cell(35, 5, 'First name:'); -$pdf->TextField('firstname', 50, 5); -$pdf->Ln(6); - -// Last name -$pdf->Cell(35, 5, 'Last name:'); -$pdf->TextField('lastname', 50, 5); -$pdf->Ln(6); - -// Gender -$pdf->Cell(35, 5, 'Gender:'); -$pdf->ComboBox('gender', 30, 5, array(array('', '-'), array('M', 'Male'), array('F', 'Female'))); -$pdf->Ln(6); - -// Drink -$pdf->Cell(35, 5, 'Drink:'); -//$pdf->RadioButton('drink', 5, array('readonly' => 'true'), array(), 'Water'); -$pdf->RadioButton('drink', 5, array(), array(), 'Water'); -$pdf->Cell(35, 5, 'Water'); -$pdf->Ln(6); -$pdf->Cell(35, 5, ''); -$pdf->RadioButton('drink', 5, array(), array(), 'Beer', true); -$pdf->Cell(35, 5, 'Beer'); -$pdf->Ln(6); -$pdf->Cell(35, 5, ''); -$pdf->RadioButton('drink', 5, array(), array(), 'Wine'); -$pdf->Cell(35, 5, 'Wine'); -$pdf->Ln(6); -$pdf->Cell(35, 5, ''); -$pdf->RadioButton('drink', 5, array(), array(), 'Milk'); -$pdf->Cell(35, 5, 'Milk'); -$pdf->Ln(10); - -// Newsletter -$pdf->Cell(35, 5, 'Newsletter:'); -$pdf->CheckBox('newsletter', 5, true, array(), array(), 'OK'); - -$pdf->Ln(10); -// Address -$pdf->Cell(35, 5, 'Address:'); -$pdf->TextField('address', 60, 18, array('multiline'=>true, 'lineWidth'=>0, 'borderStyle'=>'none'), array('v'=>'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'dv'=>'Lorem ipsum dolor sit amet, consectetur adipiscing elit.')); -$pdf->Ln(19); - -// Listbox -$pdf->Cell(35, 5, 'List:'); -$pdf->ListBox('listbox', 60, 15, array('', 'item1', 'item2', 'item3', 'item4', 'item5', 'item6', 'item7'), array('multipleSelection'=>'true')); -$pdf->Ln(20); - -// E-mail -$pdf->Cell(35, 5, 'E-mail:'); -$pdf->TextField('email', 50, 5); -$pdf->Ln(6); - -// Date of the day -$pdf->Cell(35, 5, 'Date:'); -$pdf->TextField('date', 30, 5, array(), array('v'=>date('Y-m-d'), 'dv'=>date('Y-m-d'))); -$pdf->Ln(10); - -$pdf->setX(50); - -// Button to validate and print -$pdf->Button('print', 30, 10, 'Print', 'Print()', array('lineWidth'=>2, 'borderStyle'=>'beveled', 'fillColor'=>array(128, 196, 255), 'strokeColor'=>array(64, 64, 64))); - -// Reset Button -$pdf->Button('reset', 30, 10, 'Reset', array('S'=>'ResetForm'), array('lineWidth'=>2, 'borderStyle'=>'beveled', 'fillColor'=>array(128, 196, 255), 'strokeColor'=>array(64, 64, 64))); - -// Submit Button -$pdf->Button('submit', 30, 10, 'Submit', array('S'=>'SubmitForm', 'F'=>'http://localhost/printvars.php', 'Flags'=>array('ExportFormat')), array('lineWidth'=>2, 'borderStyle'=>'beveled', 'fillColor'=>array(128, 196, 255), 'strokeColor'=>array(64, 64, 64))); - -// Form validation functions -$js = <<IncludeJS($js); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_014.pdf', 'D'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_015.php b/tools/tcpdf/examples/example_015.php deleted file mode 100644 index 416883bde..000000000 --- a/tools/tcpdf/examples/example_015.php +++ /dev/null @@ -1,164 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 015'); -$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.' 015', 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); -} - -// --------------------------------------------------------- - -// Bookmark($txt, $level=0, $y=-1, $page='', $style='', $color=array(0,0,0)) - -// set font -$pdf->setFont('times', 'B', 20); - -// add a page -$pdf->AddPage(); - -// set a bookmark for the current position -$pdf->Bookmark('Chapter 1', 0, 0, '', 'B', array(0,64,128)); - -// print a line using Cell() -$pdf->Cell(0, 10, 'Chapter 1', 0, 1, 'L'); - -$pdf->setFont('times', 'I', 14); -$pdf->Write(0, 'You can set PDF Bookmarks using the Bookmark() method. -You can set PDF Named Destinations using the setDestination() method.'); - -$pdf->setFont('times', 'B', 20); - -// add other pages and bookmarks - -$pdf->AddPage(); -$pdf->Bookmark('Paragraph 1.1', 1, 0, '', '', array(0,0,0)); -$pdf->Cell(0, 10, 'Paragraph 1.1', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Bookmark('Paragraph 1.2', 1, 0, '', '', array(0,0,0)); -$pdf->Cell(0, 10, 'Paragraph 1.2', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Bookmark('Sub-Paragraph 1.2.1', 2, 0, '', 'I', array(0,0,0)); -$pdf->Cell(0, 10, 'Sub-Paragraph 1.2.1', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Bookmark('Paragraph 1.3', 1, 0, '', '', array(0,0,0)); -$pdf->Cell(0, 10, 'Paragraph 1.3', 0, 1, 'L'); - -$pdf->AddPage(); -// add a named destination so you can open this document at this page using the link: "example_015.pdf#chapter2" -$pdf->setDestination('chapter2', 0, ''); -// add a bookmark that points to a named destination -$pdf->Bookmark('Chapter 2', 0, 0, '', 'BI', array(128,0,0), -1, '#chapter2'); -$pdf->Cell(0, 10, 'Chapter 2', 0, 1, 'L'); -$pdf->setFont('times', 'I', 14); -$pdf->Write(0, 'Once saved, you can open this document at this page using the link: "example_015.pdf#chapter2".'); - -$pdf->AddPage(); -$pdf->setDestination('chapter3', 0, ''); -$pdf->setFont('times', 'B', 20); -$pdf->Bookmark('Chapter 3', 0, 0, '', 'B', array(0,64,128)); -$pdf->Cell(0, 10, 'Chapter 3', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->setDestination('chapter4', 0, ''); -$pdf->setFont('times', 'B', 20); -$pdf->Bookmark('Chapter 4', 0, 0, '', 'B', array(0,64,128)); -$pdf->Cell(0, 10, 'Chapter 4', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Bookmark('Chapter 5', 0, 0, '', 'B', array(0,128,0)); -$pdf->Cell(0, 10, 'Chapter 5', 0, 1, 'L'); -$txt = 'Example of File Attachment. -Double click on the icon to open the attached file.'; -$pdf->setFont('helvetica', '', 10); -$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0); - -// attach an external file TXT file -$pdf->Annotation(20, 50, 5, 5, 'TXT file', array('Subtype'=>'FileAttachment', 'Name' => 'PushPin', 'FS' => 'data/utf8test.txt')); - -// attach an external file -$pdf->Annotation(50, 50, 5, 5, 'PDF file', array('Subtype'=>'FileAttachment', 'Name' => 'PushPin', 'FS' => 'example_012.pdf')); - -// add a bookmark that points to an embedded file -// NOTE: prefix the file name with the * character for generic file and with % character for PDF file -$pdf->Bookmark('TXT file', 0, 0, '', 'B', array(128,0,255), -1, '*utf8test.txt'); - -// add a bookmark that points to an embedded file -// NOTE: prefix the file name with the * character for generic file and with % character for PDF file -$pdf->Bookmark('PDF file', 0, 0, '', 'B', array(128,0,255), -1, '%example_012.pdf'); - -// add a bookmark that points to an external URL -$pdf->Bookmark('External URL', 0, 0, '', 'B', array(0,0,255), -1, 'http://www.tcpdf.org'); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_015.pdf', 'D'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_016.php b/tools/tcpdf/examples/example_016.php deleted file mode 100644 index f54a7463c..000000000 --- a/tools/tcpdf/examples/example_016.php +++ /dev/null @@ -1,136 +0,0 @@ -setProtection(array('print', 'copy'), '', null, 0, null); - -// Example with public-key -// To open the document you need to install the private key (tcpdf.p12) on the Acrobat Reader. The password is: 1234 -//$pdf->setProtection($permissions=array('print', 'copy'), $user_pass='', $owner_pass=null, $mode=1, $pubkeys=array(array('c' => 'file://../config/cert/tcpdf.crt', 'p' => array('print')))); - -// ********************************************************* - - -// set document information -$pdf->setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 016'); -$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.' 016', PDF_HEADER_STRING); - -// set header and footer fonts -$pdf->setHeaderFont(Array('helvetica', '', PDF_FONT_SIZE_MAIN)); -$pdf->setFooterFont(Array('helvetica', '', 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('times', '', 16); - -// add a page -$pdf->AddPage(); - -// set some text to print -$txt = <<Write(0, $txt, '', 0, 'L', true, 0, false, false, 0); - - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_016.pdf', 'D'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_017.php b/tools/tcpdf/examples/example_017.php deleted file mode 100644 index 94f571b4d..000000000 --- a/tools/tcpdf/examples/example_017.php +++ /dev/null @@ -1,120 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 017'); -$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.' 017', 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', '', 20); - -// add a page -$pdf->AddPage(); - -$pdf->Write(0, 'Example of independent Multicell() columns', '', 0, 'L', true, 0, false, false, 0); - -$pdf->Ln(5); - -$pdf->setFont('times', '', 12); - -// create columns content -// create columns content -$left_column = '[LEFT COLUMN] left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column'."\n"; - -$right_column = '[RIGHT COLUMN] right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column'."\n"; - -// MultiCell($w, $h, $txt, $border=0, $align='J', $fill=0, $ln=1, $x='', $y='', $reseth=true, $stretch=0, $ishtml=false, $autopadding=true, $maxh=0) - -// set color for background -$pdf->setFillColor(255, 255, 200); - -// set color for text -$pdf->setTextColor(0, 63, 127); - -// write the first column -$pdf->MultiCell(80, 0, $left_column, 1, 'J', 1, 0, '', '', true, 0, false, true, 0); - -// set color for background -$pdf->setFillColor(215, 235, 255); - -// set color for text -$pdf->setTextColor(127, 31, 0); - -// write the second column -$pdf->MultiCell(80, 0, $right_column, 1, 'J', 1, 1, '', '', true, 0, false, true, 0); - -// reset pointer to the last page -$pdf->lastPage(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_017.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_018.php b/tools/tcpdf/examples/example_018.php deleted file mode 100644 index bacc94aff..000000000 --- a/tools/tcpdf/examples/example_018.php +++ /dev/null @@ -1,130 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 018'); -$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.' 018', 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 data: -$lg = Array(); -$lg['a_meta_charset'] = 'UTF-8'; -$lg['a_meta_dir'] = 'rtl'; -$lg['a_meta_language'] = 'fa'; -$lg['w_page'] = 'page'; - -// set some language-dependent strings (optional) -$pdf->setLanguageArray($lg); - -// --------------------------------------------------------- - -// set font -$pdf->setFont('dejavusans', '', 12); - -// add a page -$pdf->AddPage(); - -// Persian and English content -$htmlpersian = 'Persian example:
      سلام بالاخره مشکل PDF فارسی به طور کامل حل شد. اینم یک نمونش.
      مشکل حرف \"ژ\" در بعضی کلمات مانند کلمه ویژه نیز بر طرف شد.
      نگارش حروف لام و الف پشت سر هم نیز تصحیح شد.
      با تشکر از "Asuni Nicola" و محمد علی گل کار برای پشتیبانی زبان فارسی.'; -$pdf->WriteHTML($htmlpersian, true, 0, true, 0); - -// set LTR direction for english translation -$pdf->setRTL(false); - -$pdf->setFontSize(10); - -// print newline -$pdf->Ln(); - -// Persian and English content -$htmlpersiantranslation = 'Hi, At last Problem of Persian PDF Solved completely. This is a example for it.
      Problem of "jeh" letter in some word like "ویژه" (=special) fix too.
      The joining of laa and alf letter fix now.
      Special thanks to "Nicola Asuni" and "Mohamad Ali Golkar" for Persian support.
      '; -$pdf->WriteHTML($htmlpersiantranslation, true, 0, true, 0); - -// Restore RTL direction -$pdf->setRTL(true); - -// set font -$pdf->setFont('aefurat', '', 18); - -// print newline -$pdf->Ln(); - -// Arabic and English content -$pdf->Cell(0, 12, 'بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ',0,1,'C'); -$htmlcontent = 'تمَّ بِحمد الله حلّ مشكلة الكتابة باللغة العربية في ملفات الـPDF مع دعم الكتابة من اليمين إلى اليسار والحركَات .
      تم الحل بواسطة صالح المطرفي و Asuni Nicola . '; -$pdf->WriteHTML($htmlcontent, true, 0, true, 0); - -// set LTR direction for english translation -$pdf->setRTL(false); - -// print newline -$pdf->Ln(); - -$pdf->setFont('aealarabiya', '', 18); - -// Arabic and English content -$htmlcontent2 = 'This is Arabic "العربية" Example With TCPDF.'; -$pdf->WriteHTML($htmlcontent2, true, 0, true, 0); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_018.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_019.php b/tools/tcpdf/examples/example_019.php deleted file mode 100644 index f53a34eae..000000000 --- a/tools/tcpdf/examples/example_019.php +++ /dev/null @@ -1,100 +0,0 @@ -setDocInfoUnicode(true); - -// set document information -$pdf->setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni [€]'); -$pdf->setTitle('TCPDF Example 019'); -$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.' 019', 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 data: -$lg = Array(); -$lg['a_meta_charset'] = 'ISO-8859-1'; -$lg['a_meta_dir'] = 'ltr'; -$lg['a_meta_language'] = 'en'; -$lg['w_page'] = 'page'; - -// set some language-dependent strings (optional) -$pdf->setLanguageArray($lg); - -// --------------------------------------------------------- - -// set font -$pdf->setFont('helvetica', '', 12); - -// add a page -$pdf->AddPage(); - -// set color for background -$pdf->setFillColor(200, 255, 200); - -$txt = 'An alternative configuration file is used on this example. -Check the definition of the K_TCPDF_EXTERNAL_CONFIG constant on the source code.'; - -// print some text -$pdf->MultiCell(0, 0, $txt."\n", 1, 'J', 1, 1, '', '', true, 0, false, true, 0); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_019.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_020.php b/tools/tcpdf/examples/example_020.php deleted file mode 100644 index 32c16eacb..000000000 --- a/tools/tcpdf/examples/example_020.php +++ /dev/null @@ -1,149 +0,0 @@ -getPage(); - $y_start = $this->GetY(); - - // write the left cell - $this->MultiCell(40, 0, $left, 1, 'R', 1, 2, '', '', true, 0); - - $page_end_1 = $this->getPage(); - $y_end_1 = $this->GetY(); - - $this->setPage($page_start); - - // write the right cell - $this->MultiCell(0, 0, $right, 1, 'J', 0, 1, $this->GetX() ,$y_start, true, 0); - - $page_end_2 = $this->getPage(); - $y_end_2 = $this->GetY(); - - // set the new row position by case - if (max($page_end_1,$page_end_2) == $page_start) { - $ynew = max($y_end_1, $y_end_2); - } elseif ($page_end_1 == $page_end_2) { - $ynew = max($y_end_1, $y_end_2); - } elseif ($page_end_1 > $page_end_2) { - $ynew = $y_end_1; - } else { - $ynew = $y_end_2; - } - - $this->setPage(max($page_end_1,$page_end_2)); - $this->setXY($this->GetX(),$ynew); - } - -} - -// create new PDF document -$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); - -// set document information -$pdf->setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 020'); -$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.' 020', 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', '', 20); -// add a page -$pdf->AddPage(); - -$pdf->Write(0, 'Example of text layout using Multicell()', '', 0, 'L', true, 0, false, false, 0); - -$pdf->Ln(5); - -$pdf->setFont('times', '', 9); - -//$pdf->setCellPadding(0); -//$pdf->setLineWidth(2); - -// set color for background -$pdf->setFillColor(255, 255, 200); - -$text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc. - -Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa.'; - -// print some rows just as example -for ($i = 0; $i < 10; ++$i) { - $pdf->MultiRow('Row '.($i+1), $text."\n"); -} - -// reset pointer to the last page -$pdf->lastPage(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_020.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_021.php b/tools/tcpdf/examples/example_021.php deleted file mode 100644 index 98ae49b1f..000000000 --- a/tools/tcpdf/examples/example_021.php +++ /dev/null @@ -1,93 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 021'); -$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.' 021', 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', '', 9); - -// add a page -$pdf->AddPage(); - -// create some HTML content -$html = '

      Example of HTML text flow

      Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

      A + B = C    ->    C - B = A    ->    C - A = B ->    A + B = C    ->    C - B = A    ->    C - A = B ->    A + B = C    ->    C - B = A    ->    C - A = B ->    A + B = C    ->    C - B = A    ->    C - A = B    ->    A + B = C    ->    C - B = A    ->    C - A = B ->    A + B = C    ->    C - B = A    ->    C - A = B ->    A + B = C    ->    C - B = A    ->    C - A = B ->    A + B = C    ->    C - B = A    ->    C - A = B

      BoldItalicUnderlined BoldItalicUnderlined BoldItalicUnderlined BoldItalicUnderlined BoldItalicUnderlined BoldItalicUnderlined BoldItalicUnderlined BoldItalicUnderlined BoldItalicUnderlined BoldItalicUnderlined BoldItalicUnderlined BoldItalicUnderlined BoldItalicUnderlined BoldItalicUnderlined BoldItalicUnderlined'; - -// output the HTML content -$pdf->writeHTML($html, true, 0, true, 0); - -// reset pointer to the last page -$pdf->lastPage(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_021.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_022.php b/tools/tcpdf/examples/example_022.php deleted file mode 100644 index 416108a96..000000000 --- a/tools/tcpdf/examples/example_022.php +++ /dev/null @@ -1,148 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 022'); -$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.' 022', 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); -} - -// --------------------------------------------------------- - -// check also the following methods: -// setDrawColorArray() -// setFillColorArray() -// setTextColorArray() - -// set font -$pdf->setFont('helvetica', 'B', 18); - -// add a page -$pdf->AddPage(); - -$pdf->Write(0, 'Example of CMYK, RGB and Grayscale colours', '', 0, 'L', true, 0, false, false, 0); - -// define style for border -$border_style = array('all' => array('width' => 2, 'cap' => 'square', 'join' => 'miter', 'dash' => 0, 'phase' => 0)); - -// --- CMYK ------------------------------------------------ - -$pdf->setDrawColor(50, 0, 0, 0); -$pdf->setFillColor(100, 0, 0, 0); -$pdf->setTextColor(100, 0, 0, 0); -$pdf->Rect(30, 60, 30, 30, 'DF', $border_style); -$pdf->Text(30, 92, 'Cyan'); - -$pdf->setDrawColor(0, 50, 0, 0); -$pdf->setFillColor(0, 100, 0, 0); -$pdf->setTextColor(0, 100, 0, 0); -$pdf->Rect(70, 60, 30, 30, 'DF', $border_style); -$pdf->Text(70, 92, 'Magenta'); - -$pdf->setDrawColor(0, 0, 50, 0); -$pdf->setFillColor(0, 0, 100, 0); -$pdf->setTextColor(0, 0, 100, 0); -$pdf->Rect(110, 60, 30, 30, 'DF', $border_style); -$pdf->Text(110, 92, 'Yellow'); - -$pdf->setDrawColor(0, 0, 0, 50); -$pdf->setFillColor(0, 0, 0, 100); -$pdf->setTextColor(0, 0, 0, 100); -$pdf->Rect(150, 60, 30, 30, 'DF', $border_style); -$pdf->Text(150, 92, 'Black'); - -// --- RGB ------------------------------------------------- - -$pdf->setDrawColor(255, 127, 127); -$pdf->setFillColor(255, 0, 0); -$pdf->setTextColor(255, 0, 0); -$pdf->Rect(30, 110, 30, 30, 'DF', $border_style); -$pdf->Text(30, 142, 'Red'); - -$pdf->setDrawColor(127, 255, 127); -$pdf->setFillColor(0, 255, 0); -$pdf->setTextColor(0, 255, 0); -$pdf->Rect(70, 110, 30, 30, 'DF', $border_style); -$pdf->Text(70, 142, 'Green'); - -$pdf->setDrawColor(127, 127, 255); -$pdf->setFillColor(0, 0, 255); -$pdf->setTextColor(0, 0, 255); -$pdf->Rect(110, 110, 30, 30, 'DF', $border_style); -$pdf->Text(110, 142, 'Blue'); - -// --- GRAY ------------------------------------------------ - -$pdf->setDrawColor(191); -$pdf->setFillColor(127); -$pdf->setTextColor(127); -$pdf->Rect(30, 160, 30, 30, 'DF', $border_style); -$pdf->Text(30, 192, 'Gray'); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_022.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_023.php b/tools/tcpdf/examples/example_023.php deleted file mode 100644 index 5a509efd9..000000000 --- a/tools/tcpdf/examples/example_023.php +++ /dev/null @@ -1,115 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 023'); -$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.' 023', 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('times', 'BI', 14); - -// Start First Page Group -$pdf->startPageGroup(); - -// add a page -$pdf->AddPage(); - -// set some text to print -$txt = <<Write(0, $txt, '', 0, 'L', true, 0, false, false, 0); - -// add second page -$pdf->AddPage(); -$pdf->Cell(0, 10, 'This is the second page of group 1', 0, 1, 'L'); - -// Start Second Page Group -$pdf->startPageGroup(); - -// add some pages -$pdf->AddPage(); -$pdf->Cell(0, 10, 'This is the first page of group 2', 0, 1, 'L'); -$pdf->AddPage(); -$pdf->Cell(0, 10, 'This is the second page of group 2', 0, 1, 'L'); -$pdf->AddPage(); -$pdf->Cell(0, 10, 'This is the third page of group 2', 0, 1, 'L'); -$pdf->AddPage(); -$pdf->Cell(0, 10, 'This is the fourth page of group 2', 0, 1, 'L'); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_023.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_024.php b/tools/tcpdf/examples/example_024.php deleted file mode 100644 index f786b1123..000000000 --- a/tools/tcpdf/examples/example_024.php +++ /dev/null @@ -1,142 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 024'); -$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.' 024', 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('times', '', 18); - -// add a page -$pdf->AddPage(); - -/* - * setVisibility() allows to restrict the rendering of some - * elements to screen or printout. This can be useful, for - * instance, to put a background image or color that will - * show on screen but won't print. - */ - -$txt = 'You can limit the visibility of PDF objects to screen or printer by using the setVisibility() method. -Check the print preview of this document to display the alternative text.'; - -$pdf->Write(0, $txt, '', 0, '', true, 0, false, false, 0); - -// change font size -$pdf->setFontSize(40); - -// change text color -$pdf->setTextColor(0,63,127); - -// set visibility only for screen -$pdf->setVisibility('screen'); - -// write something only for screen -$pdf->Write(0, '[This line is for display]', '', 0, 'C', true, 0, false, false, 0); - -// set visibility only for print -$pdf->setVisibility('print'); - -// change text color -$pdf->setTextColor(127,0,0); - -// write something only for print -$pdf->Write(0, '[This line is for printout]', '', 0, 'C', true, 0, false, false, 0); - -// restore visibility -$pdf->setVisibility('all'); - -// --------------------------------------------------------- - -// LAYERS - -// start a new layer -$pdf->startLayer('layer1', true, true); - -// change font size -$pdf->setFontSize(18); - -// change text color -$pdf->setTextColor(0,127,0); - -$txt = 'Using the startLayer() method you can group PDF objects into layers. -This text is on "layer1".'; - -// write something -$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0); - -// close the current layer -$pdf->endLayer(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_024.pdf', 'D'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_025.php b/tools/tcpdf/examples/example_025.php deleted file mode 100644 index 9e441be9e..000000000 --- a/tools/tcpdf/examples/example_025.php +++ /dev/null @@ -1,120 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 025'); -$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.' 025', 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', '', 12); - -// add a page -$pdf->AddPage(); - -$txt = 'You can set the transparency of PDF objects using the setAlpha() method.'; -$pdf->Write(0, $txt, '', 0, '', true, 0, false, false, 0); - -/* - * setAlpha() gives transparency support. You can set the - * alpha channel from 0 (fully transparent) to 1 (fully - * opaque). It applies to all elements (text, drawings, - * images). - */ - -$pdf->setLineWidth(2); - -// draw opaque red square -$pdf->setFillColor(255, 0, 0); -$pdf->setDrawColor(127, 0, 0); -$pdf->Rect(30, 40, 60, 60, 'DF'); - -// set alpha to semi-transparency -$pdf->setAlpha(0.5); - -// draw green square -$pdf->setFillColor(0, 255, 0); -$pdf->setDrawColor(0, 127, 0); -$pdf->Rect(50, 60, 60, 60, 'DF'); - -// draw blue square -$pdf->setFillColor(0, 0, 255); -$pdf->setDrawColor(0, 0, 127); -$pdf->Rect(70, 80, 60, 60, 'DF'); - -// draw jpeg image -$pdf->Image('images/image_demo.jpg', 90, 100, 60, 60, '', 'http://www.tcpdf.org', '', true, 72); - -// restore full opacity -$pdf->setAlpha(1); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_025.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_026.php b/tools/tcpdf/examples/example_026.php deleted file mode 100644 index 8cde97130..000000000 --- a/tools/tcpdf/examples/example_026.php +++ /dev/null @@ -1,146 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 026'); -$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.' 026', 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', '', 22); - -// add a page -$pdf->AddPage(); - -// set color for text stroke -$pdf->setDrawColor(255,0,0); - - -$pdf->setTextRenderingMode($stroke=0, $fill=true, $clip=false); -$pdf->Write(0, 'Fill text', '', 0, '', true, 0, false, false, 0); - -$pdf->setTextRenderingMode($stroke=0.2, $fill=false, $clip=false); -$pdf->Write(0, 'Stroke text', '', 0, '', true, 0, false, false, 0); - -$pdf->setTextRenderingMode($stroke=0.2, $fill=true, $clip=false); -$pdf->Write(0, 'Fill, then stroke text', '', 0, '', true, 0, false, false, 0); - -$pdf->setTextRenderingMode($stroke=0, $fill=false, $clip=false); -$pdf->Write(0, 'Neither fill nor stroke text (invisible)', '', 0, '', true, 0, false, false, 0); - - -// * * * CLIPPING MODES * * * * * * * * * * * * * * * * * * - -$pdf->StartTransform(); -$pdf->setTextRenderingMode($stroke=0, $fill=true, $clip=true); -$pdf->Write(0, 'Fill text and add to path for clipping', '', 0, '', true, 0, false, false, 0); -$pdf->Image('images/image_demo.jpg', 15, 65, 170, 10, '', '', '', true, 72); -$pdf->StopTransform(); - -$pdf->StartTransform(); -$pdf->setTextRenderingMode($stroke=0.3, $fill=false, $clip=true); -$pdf->Write(0, 'Stroke text and add to path for clipping', '', 0, '', true, 0, false, false, 0); -$pdf->Image('images/image_demo.jpg', 15, 75, 170, 10, '', '', '', true, 72); -$pdf->StopTransform(); - -$pdf->StartTransform(); -$pdf->setTextRenderingMode($stroke=0.3, $fill=true, $clip=true); -$pdf->Write(0, 'Fill, then stroke text and add to path for clipping', '', 0, '', true, 0, false, false, 0); -$pdf->Image('images/image_demo.jpg', 15, 85, 170, 10, '', '', '', true, 72); -$pdf->StopTransform(); - -$pdf->StartTransform(); -$pdf->setTextRenderingMode($stroke=0, $fill=false, $clip=true); -$pdf->Write(0, 'Add text to path for clipping', '', 0, '', true, 0, false, false, 0); -$pdf->Image('images/image_demo.jpg', 15, 95, 170, 10, '', '', '', true, 72); -$pdf->StopTransform(); - -// reset text rendering mode -$pdf->setTextRenderingMode($stroke=0, $fill=true, $clip=false); - -// * * * HTML MODE * * * * * * * * * * * * * * * * * * * * * - -// The following attributes were added to HTML: -// stroke : stroke width -// strokecolor : stroke color -// fill : true (default) to fill the font, false otherwise - - -// create some HTML content with text rendering modes -$html = 'HTML Fill text
      '; -$html .= 'HTML Stroke text
      '; -$html .= 'HTML Fill, then stroke text
      '; -$html .= 'HTML Neither fill nor stroke text (invisible)
      '; - -// output the HTML content -$pdf->writeHTML($html, true, 0, true, 0); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_026.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_027.php b/tools/tcpdf/examples/example_027.php deleted file mode 100644 index d7399844a..000000000 --- a/tools/tcpdf/examples/example_027.php +++ /dev/null @@ -1,420 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 027'); -$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.' 027', 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 a barcode on the page footer -$pdf->setBarcode(date('Y-m-d H:i:s')); - -// set font -$pdf->setFont('helvetica', '', 11); - -// add a page -$pdf->AddPage(); - -// print a message -$txt = "You can also export 1D barcodes in other formats (PNG, SVG, HTML). Check the examples inside the barcodes directory.\n"; -$pdf->MultiCell(70, 50, $txt, 0, 'J', false, 1, 125, 30, true, 0, false, true, 0, 'T', false); -$pdf->setY(30); - -// ----------------------------------------------------------------------------- - -$pdf->setFont('helvetica', '', 10); - -// define barcode style -$style = array( - 'position' => '', - 'align' => 'C', - 'stretch' => false, - 'fitwidth' => true, - 'cellfitalign' => '', - 'border' => true, - 'hpadding' => 'auto', - 'vpadding' => 'auto', - 'fgcolor' => array(0,0,0), - 'bgcolor' => false, //array(255,255,255), - 'text' => true, - 'font' => 'helvetica', - 'fontsize' => 8, - 'stretchtext' => 4 -); - -// PRINT VARIOUS 1D BARCODES - -// CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9. -$pdf->Cell(0, 0, 'CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9', 0, 1); -$pdf->write1DBarcode('CODE 39', 'C39', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// CODE 39 + CHECKSUM -$pdf->Cell(0, 0, 'CODE 39 + CHECKSUM', 0, 1); -$pdf->write1DBarcode('CODE 39 +', 'C39+', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// CODE 39 EXTENDED -$pdf->Cell(0, 0, 'CODE 39 EXTENDED', 0, 1); -$pdf->write1DBarcode('CODE 39 E', 'C39E', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// CODE 39 EXTENDED + CHECKSUM -$pdf->Cell(0, 0, 'CODE 39 EXTENDED + CHECKSUM', 0, 1); -$pdf->write1DBarcode('CODE 39 E+', 'C39E+', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// CODE 93 - USS-93 -$pdf->Cell(0, 0, 'CODE 93 - USS-93', 0, 1); -$pdf->write1DBarcode('TEST93', 'C93', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// Standard 2 of 5 -$pdf->Cell(0, 0, 'Standard 2 of 5', 0, 1); -$pdf->write1DBarcode('1234567', 'S25', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// Standard 2 of 5 + CHECKSUM -$pdf->Cell(0, 0, 'Standard 2 of 5 + CHECKSUM', 0, 1); -$pdf->write1DBarcode('1234567', 'S25+', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// Interleaved 2 of 5 -$pdf->Cell(0, 0, 'Interleaved 2 of 5', 0, 1); -$pdf->write1DBarcode('1234567', 'I25', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// Interleaved 2 of 5 + CHECKSUM -$pdf->Cell(0, 0, 'Interleaved 2 of 5 + CHECKSUM', 0, 1); -$pdf->write1DBarcode('1234567', 'I25+', '', '', '', 18, 0.4, $style, 'N'); - - -// add a page ---------- -$pdf->AddPage(); - -// CODE 128 AUTO -$pdf->Cell(0, 0, 'CODE 128 AUTO', 0, 1); -$pdf->write1DBarcode('CODE 128 AUTO', 'C128', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// CODE 128 A -$pdf->Cell(0, 0, 'CODE 128 A', 0, 1); -$pdf->write1DBarcode('CODE 128 A', 'C128A', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// CODE 128 B -$pdf->Cell(0, 0, 'CODE 128 B', 0, 1); -$pdf->write1DBarcode('CODE 128 B', 'C128B', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// CODE 128 C -$pdf->Cell(0, 0, 'CODE 128 C', 0, 1); -$pdf->write1DBarcode('0123456789', 'C128C', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// EAN 8 -$pdf->Cell(0, 0, 'EAN 8', 0, 1); -$pdf->write1DBarcode('1234567', 'EAN8', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// EAN 13 -$pdf->Cell(0, 0, 'EAN 13', 0, 1); -$pdf->write1DBarcode('1234567890128', 'EAN13', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// UPC-A -$pdf->Cell(0, 0, 'UPC-A', 0, 1); -$pdf->write1DBarcode('12345678901', 'UPCA', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// UPC-E -$pdf->Cell(0, 0, 'UPC-E', 0, 1); -$pdf->write1DBarcode('04210000526', 'UPCE', '', '', '', 18, 0.4, $style, 'N'); - -// add a page ---------- -$pdf->AddPage(); - -// 5-Digits UPC-Based Extension -$pdf->Cell(0, 0, '5-Digits UPC-Based Extension', 0, 1); -$pdf->write1DBarcode('51234', 'EAN5', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// 2-Digits UPC-Based Extension -$pdf->Cell(0, 0, '2-Digits UPC-Based Extension', 0, 1); -$pdf->write1DBarcode('34', 'EAN2', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// MSI -$pdf->Cell(0, 0, 'MSI', 0, 1); -$pdf->write1DBarcode('80523', 'MSI', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// MSI + CHECKSUM (module 11) -$pdf->Cell(0, 0, 'MSI + CHECKSUM (module 11)', 0, 1); -$pdf->write1DBarcode('80523', 'MSI+', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// CODABAR -$pdf->Cell(0, 0, 'CODABAR', 0, 1); -$pdf->write1DBarcode('123456789', 'CODABAR', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// CODE 11 -$pdf->Cell(0, 0, 'CODE 11', 0, 1); -$pdf->write1DBarcode('123-456-789', 'CODE11', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// PHARMACODE -$pdf->Cell(0, 0, 'PHARMACODE', 0, 1); -$pdf->write1DBarcode('789', 'PHARMA', '', '', '', 18, 0.4, $style, 'N'); - -$pdf->Ln(); - -// PHARMACODE TWO-TRACKS -$pdf->Cell(0, 0, 'PHARMACODE TWO-TRACKS', 0, 1); -$pdf->write1DBarcode('105', 'PHARMA2T', '', '', '', 18, 2, $style, 'N'); - -// add a page ---------- -$pdf->AddPage(); - -// IMB - Intelligent Mail Barcode - Onecode - USPS-B-3200 -$pdf->Cell(0, 0, 'IMB - Intelligent Mail Barcode - Onecode - USPS-B-3200', 0, 1); -$pdf->write1DBarcode('01234567094987654321-01234567891', 'IMB', '', '', '', 15, 0.6, $style, 'N'); - -$pdf->Ln(); - -// POSTNET -$pdf->Cell(0, 0, 'POSTNET', 0, 1); -$pdf->write1DBarcode('98000', 'POSTNET', '', '', '', 15, 0.6, $style, 'N'); - -$pdf->Ln(); - -// PLANET -$pdf->Cell(0, 0, 'PLANET', 0, 1); -$pdf->write1DBarcode('98000', 'PLANET', '', '', '', 15, 0.6, $style, 'N'); - -$pdf->Ln(); - -// RMS4CC (Royal Mail 4-state Customer Code) - CBC (Customer Bar Code) -$pdf->Cell(0, 0, 'RMS4CC (Royal Mail 4-state Customer Code) - CBC (Customer Bar Code)', 0, 1); -$pdf->write1DBarcode('SN34RD1A', 'RMS4CC', '', '', '', 15, 0.6, $style, 'N'); - -$pdf->Ln(); - -// KIX (Klant index - Customer index) -$pdf->Cell(0, 0, 'KIX (Klant index - Customer index)', 0, 1); -$pdf->write1DBarcode('SN34RDX1A', 'KIX', '', '', '', 15, 0.6, $style, 'N'); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// TEST BARCODE ALIGNMENTS - -// add a page -$pdf->AddPage(); - -// set a background color -$style['bgcolor'] = array(255,255,240); -$style['fgcolor'] = array(127,0,0); - -// Left position -$style['position'] = 'L'; -$pdf->write1DBarcode('LEFT', 'C128A', '', '', '', 15, 0.4, $style, 'N'); - -$pdf->Ln(2); - -// Center position -$style['position'] = 'C'; -$pdf->write1DBarcode('CENTER', 'C128A', '', '', '', 15, 0.4, $style, 'N'); - -$pdf->Ln(2); - -// Right position -$style['position'] = 'R'; -$pdf->write1DBarcode('RIGHT', 'C128A', '', '', '', 15, 0.4, $style, 'N'); - -$pdf->Ln(2); -// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -$style['fgcolor'] = array(0,127,0); -$style['position'] = ''; -$style['stretch'] = false; // disable stretch -$style['fitwidth'] = false; // disable fitwidth - -// Left alignment -$style['align'] = 'L'; -$pdf->write1DBarcode('LEFT', 'C128A', '', '', '', 15, 0.4, $style, 'N'); - -$pdf->Ln(2); - -// Center alignment -$style['align'] = 'C'; -$pdf->write1DBarcode('CENTER', 'C128A', '', '', '', 15, 0.4, $style, 'N'); - -$pdf->Ln(2); - -// Right alignment -$style['align'] = 'R'; -$pdf->write1DBarcode('RIGHT', 'C128A', '', '', '', 15, 0.4, $style, 'N'); - -$pdf->Ln(2); -// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -$style['fgcolor'] = array(0,64,127); -$style['position'] = ''; -$style['stretch'] = false; // disable stretch -$style['fitwidth'] = true; // disable fitwidth - -// Left alignment -$style['cellfitalign'] = 'L'; -$pdf->write1DBarcode('LEFT', 'C128A', 105, '', 90, 15, 0.4, $style, 'N'); - -$pdf->Ln(2); - -// Center alignment -$style['cellfitalign'] = 'C'; -$pdf->write1DBarcode('CENTER', 'C128A', 105, '', 90, 15, 0.4, $style, 'N'); - -$pdf->Ln(2); - -// Right alignment -$style['cellfitalign'] = 'R'; -$pdf->write1DBarcode('RIGHT', 'C128A', 105, '', 90, 15, 0.4, $style, 'N'); - -$pdf->Ln(2); -// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -$style['fgcolor'] = array(127,0,127); - -// Left alignment -$style['position'] = 'L'; -$pdf->write1DBarcode('LEFT', 'C128A', '', '', '', 15, 0.4, $style, 'N'); - -$pdf->Ln(2); - -// Center alignment -$style['position'] = 'C'; -$pdf->write1DBarcode('CENTER', 'C128A', '', '', '', 15, 0.4, $style, 'N'); - -$pdf->Ln(2); - -// Right alignment -$style['position'] = 'R'; -$pdf->write1DBarcode('RIGHT', 'C128A', '', '', '', 15, 0.4, $style, 'N'); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// TEST BARCODE STYLE - -// define barcode style -$style = array( - 'position' => '', - 'align' => '', - 'stretch' => true, - 'fitwidth' => false, - 'cellfitalign' => '', - 'border' => true, - 'hpadding' => 'auto', - 'vpadding' => 'auto', - 'fgcolor' => array(0,0,128), - 'bgcolor' => array(255,255,128), - 'text' => true, - 'label' => 'CUSTOM LABEL', - 'font' => 'helvetica', - 'fontsize' => 8, - 'stretchtext' => 4 -); - -// CODE 39 EXTENDED + CHECKSUM -$pdf->Cell(0, 0, 'CODE 39 EXTENDED + CHECKSUM', 0, 1); -$pdf->setLineStyle(array('width' => 1, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 0, 0))); -$pdf->write1DBarcode('CODE 39 E+', 'C39E+', '', '', 120, 25, 0.4, $style, 'N'); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_027.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_028.php b/tools/tcpdf/examples/example_028.php deleted file mode 100644 index 312de99ff..000000000 --- a/tools/tcpdf/examples/example_028.php +++ /dev/null @@ -1,140 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 028'); -$pdf->setSubject('TCPDF Tutorial'); -$pdf->setKeywords('TCPDF, PDF, example, test, guide'); - -// remove default header/footer -$pdf->setPrintHeader(false); -$pdf->setPrintFooter(false); - -// set default monospaced font -$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); - -// set margins -$pdf->setMargins(10, PDF_MARGIN_TOP, 10); - -// 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); -} - -// --------------------------------------------------------- - -$pdf->setDisplayMode('fullpage', 'SinglePage', 'UseNone'); - -// set font -$pdf->setFont('times', 'B', 20); - -$pdf->AddPage('P', 'A4'); -$pdf->Cell(0, 0, 'A4 PORTRAIT', 1, 1, 'C'); - -$pdf->AddPage('L', 'A4'); -$pdf->Cell(0, 0, 'A4 LANDSCAPE', 1, 1, 'C'); - -$pdf->AddPage('P', 'A5'); -$pdf->Cell(0, 0, 'A5 PORTRAIT', 1, 1, 'C'); - -$pdf->AddPage('L', 'A5'); -$pdf->Cell(0, 0, 'A5 LANDSCAPE', 1, 1, 'C'); - -$pdf->AddPage('P', 'A6'); -$pdf->Cell(0, 0, 'A6 PORTRAIT', 1, 1, 'C'); - -$pdf->AddPage('L', 'A6'); -$pdf->Cell(0, 0, 'A6 LANDSCAPE', 1, 1, 'C'); - -$pdf->AddPage('P', 'A7'); -$pdf->Cell(0, 0, 'A7 PORTRAIT', 1, 1, 'C'); - -$pdf->AddPage('L', 'A7'); -$pdf->Cell(0, 0, 'A7 LANDSCAPE', 1, 1, 'C'); - - -// --- test backward editing --- - - -$pdf->setPage(1, true); -$pdf->setY(50); -$pdf->Cell(0, 0, 'A4 test', 1, 1, 'C'); - -$pdf->setPage(2, true); -$pdf->setY(50); -$pdf->Cell(0, 0, 'A4 test', 1, 1, 'C'); - -$pdf->setPage(3, true); -$pdf->setY(50); -$pdf->Cell(0, 0, 'A5 test', 1, 1, 'C'); - -$pdf->setPage(4, true); -$pdf->setY(50); -$pdf->Cell(0, 0, 'A5 test', 1, 1, 'C'); - -$pdf->setPage(5, true); -$pdf->setY(50); -$pdf->Cell(0, 0, 'A6 test', 1, 1, 'C'); - -$pdf->setPage(6, true); -$pdf->setY(50); -$pdf->Cell(0, 0, 'A6 test', 1, 1, 'C'); - -$pdf->setPage(7, true); -$pdf->setY(40); -$pdf->Cell(0, 0, 'A7 test', 1, 1, 'C'); - -$pdf->setPage(8, true); -$pdf->setY(40); -$pdf->Cell(0, 0, 'A7 test', 1, 1, 'C'); - -$pdf->lastPage(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_028.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_029.php b/tools/tcpdf/examples/example_029.php deleted file mode 100644 index fd7b6d87e..000000000 --- a/tools/tcpdf/examples/example_029.php +++ /dev/null @@ -1,126 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 029'); -$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.' 029', 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 array for viewer preferences -$preferences = array( - 'HideToolbar' => true, - 'HideMenubar' => true, - 'HideWindowUI' => true, - 'FitWindow' => true, - 'CenterWindow' => true, - 'DisplayDocTitle' => true, - 'NonFullScreenPageMode' => 'UseNone', // UseNone, UseOutlines, UseThumbs, UseOC - 'ViewArea' => 'CropBox', // CropBox, BleedBox, TrimBox, ArtBox - 'ViewClip' => 'CropBox', // CropBox, BleedBox, TrimBox, ArtBox - 'PrintArea' => 'CropBox', // CropBox, BleedBox, TrimBox, ArtBox - 'PrintClip' => 'CropBox', // CropBox, BleedBox, TrimBox, ArtBox - 'PrintScaling' => 'AppDefault', // None, AppDefault - 'Duplex' => 'DuplexFlipLongEdge', // Simplex, DuplexFlipShortEdge, DuplexFlipLongEdge - 'PickTrayByPDFSize' => true, - 'PrintPageRange' => array(1,1,2,3), - 'NumCopies' => 2 -); - -// Check the example n. 60 for advanced page settings - -// set pdf viewer preferences -$pdf->setViewerPreferences($preferences); - -// set font -$pdf->setFont('times', '', 14); - -// add a page -$pdf->AddPage(); - -// print a line -$pdf->Cell(0, 12, 'DISPLAY PREFERENCES - PAGE 1', 1, 1, 'C'); - -$pdf->Ln(5); - -$pdf->Write(0, 'You can use the setViewerPreferences() method to change viewer preferences.', '', 0, 'L', true, 0, false, false, 0); - -// add a page -$pdf->AddPage(); -// print a line -$pdf->Cell(0, 12, 'DISPLAY PREFERENCES - PAGE 2', 0, 0, 'C'); - -// add a page -$pdf->AddPage(); -// print a line -$pdf->Cell(0, 12, 'DISPLAY PREFERENCES - PAGE 3', 0, 0, 'C'); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_029.pdf', 'D'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_030.php b/tools/tcpdf/examples/example_030.php deleted file mode 100644 index 4b57b7ac3..000000000 --- a/tools/tcpdf/examples/example_030.php +++ /dev/null @@ -1,190 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 030'); -$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.' 030', 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); - -// --- first page ------------------------------------------ - -// add a page -$pdf->AddPage(); - -$pdf->Cell(0, 0, 'TCPDF Gradients', 0, 1, 'C', 0, '', 0, false, 'T', 'M'); - -// set colors for gradients (r,g,b) or (grey 0-255) -$red = array(255, 0, 0); -$blue = array(0, 0, 200); -$yellow = array(255, 255, 0); -$green = array(0, 255, 0); -$white = array(255); -$black = array(0); - -// set the coordinates x1,y1,x2,y2 of the gradient (see linear_gradient_coords.jpg) -$coords = array(0, 0, 1, 0); - -// paint a linear gradient -$pdf->LinearGradient(20, 45, 80, 80, $red, $blue, $coords); - -// write label -$pdf->Text(20, 130, 'LinearGradient()'); - -// set the coordinates fx,fy,cx,cy,r of the gradient (see radial_gradient_coords.jpg) -$coords = array(0.5, 0.5, 1, 1, 1.2); - -// paint a radial gradient -$pdf->RadialGradient(110, 45, 80, 80, $white, $black, $coords); - -// write label -$pdf->Text(110, 130, 'RadialGradient()'); - -// paint a coons patch mesh with default coordinates -$pdf->CoonsPatchMesh(20, 155, 80, 80, $yellow, $blue, $green, $red); - -// write label -$pdf->Text(20, 240, 'CoonsPatchMesh()'); - -// set the coordinates for the cubic Bézier points x1,y1 ... x12, y12 of the patch (see coons_patch_mesh_coords.jpg) -$coords = array( - 0.00,0.00, 0.33,0.20, //lower left - 0.67,0.00, 1.00,0.00, 0.80,0.33, //lower right - 0.80,0.67, 1.00,1.00, 0.67,0.80, //upper right - 0.33,1.00, 0.00,1.00, 0.20,0.67, //upper left - 0.00,0.33); //lower left -$coords_min = 0; //minimum value of the coordinates -$coords_max = 1; //maximum value of the coordinates - -// paint a coons patch gradient with the above coordinates -$pdf->CoonsPatchMesh(110, 155, 80, 80, $yellow, $blue, $green, $red, $coords, $coords_min, $coords_max); - -// write label -$pdf->Text(110, 240, 'CoonsPatchMesh()'); - -// --- second page ----------------------------------------- -$pdf->AddPage(); - -// first patch: f = 0 -$patch_array[0]['f'] = 0; -$patch_array[0]['points'] = array( - 0.00,0.00, 0.33,0.00, - 0.67,0.00, 1.00,0.00, 1.00,0.33, - 0.8,0.67, 1.00,1.00, 0.67,0.8, - 0.33,1.80, 0.00,1.00, 0.00,0.67, - 0.00,0.33); -$patch_array[0]['colors'][0] = array('r' => 255, 'g' => 255, 'b' => 0); -$patch_array[0]['colors'][1] = array('r' => 0, 'g' => 0, 'b' => 255); -$patch_array[0]['colors'][2] = array('r' => 0, 'g' => 255,'b' => 0); -$patch_array[0]['colors'][3] = array('r' => 255, 'g' => 0,'b' => 0); - -// second patch - above the other: f = 2 -$patch_array[1]['f'] = 2; -$patch_array[1]['points'] = array( - 0.00,1.33, - 0.00,1.67, 0.00,2.00, 0.33,2.00, - 0.67,2.00, 1.00,2.00, 1.00,1.67, - 1.5,1.33); -$patch_array[1]['colors'][0]=array('r' => 0, 'g' => 0, 'b' => 0); -$patch_array[1]['colors'][1]=array('r' => 255, 'g' => 0, 'b' => 255); - -// third patch - right of the above: f = 3 -$patch_array[2]['f'] = 3; -$patch_array[2]['points'] = array( - 1.33,0.80, - 1.67,1.50, 2.00,1.00, 2.00,1.33, - 2.00,1.67, 2.00,2.00, 1.67,2.00, - 1.33,2.00); -$patch_array[2]['colors'][0] = array('r' => 0, 'g' => 255, 'b' => 255); -$patch_array[2]['colors'][1] = array('r' => 0, 'g' => 0, 'b' => 0); - -// fourth patch - below the above, which means left(?) of the above: f = 1 -$patch_array[3]['f'] = 1; -$patch_array[3]['points'] = array( - 2.00,0.67, - 2.00,0.33, 2.00,0.00, 1.67,0.00, - 1.33,0.00, 1.00,0.00, 1.00,0.33, - 0.8,0.67); -$patch_array[3]['colors'][0] = array('r' => 0, 'g' => 0, 'b' => 0); -$patch_array[3]['colors'][1] = array('r' => 0, 'g' => 0, 'b' => 255); - -$coords_min = 0; -$coords_max = 2; - -$pdf->CoonsPatchMesh(10, 45, 190, 200, '', '', '', '', $patch_array, $coords_min, $coords_max); - -// write label -$pdf->Text(10, 250, 'CoonsPatchMesh()'); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_030.pdf', 'D'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_031.php b/tools/tcpdf/examples/example_031.php deleted file mode 100644 index 354ffcd76..000000000 --- a/tools/tcpdf/examples/example_031.php +++ /dev/null @@ -1,105 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 031'); -$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.' 031', 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 PieSector() method.'); - -$xc = 105; -$yc = 100; -$r = 50; - -$pdf->setFillColor(0, 0, 255); -$pdf->PieSector($xc, $yc, $r, 20, 120, 'FD', false, 0, 2); - -$pdf->setFillColor(0, 255, 0); -$pdf->PieSector($xc, $yc, $r, 120, 250, 'FD', false, 0, 2); - -$pdf->setFillColor(255, 0, 0); -$pdf->PieSector($xc, $yc, $r, 250, 20, 'FD', false, 0, 2); - -// write labels -$pdf->setTextColor(255,255,255); -$pdf->Text(105, 65, 'BLUE'); -$pdf->Text(60, 95, 'GREEN'); -$pdf->Text(120, 115, 'RED'); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_031.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_032.php b/tools/tcpdf/examples/example_032.php deleted file mode 100644 index dbba89a03..000000000 --- a/tools/tcpdf/examples/example_032.php +++ /dev/null @@ -1,93 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 032'); -$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.' 032', 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', '', 12); - -$pdf->AddPage(); - -$html = << -NOTE: Please use SVG format for a better vector support. -EOD; - -// Print text using writeHTMLCell() -$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); - -$pdf->ImageEps('images/tcpdf_box.ai', 10, 40, 150, '', 'http://www.tcpdf.org', true, '', '', 0, false); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_032.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_033.php b/tools/tcpdf/examples/example_033.php deleted file mode 100644 index 3696e5205..000000000 --- a/tools/tcpdf/examples/example_033.php +++ /dev/null @@ -1,107 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 033'); -$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.' 033', 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); -} - -// --------------------------------------------------------- - -// add a page -$pdf->AddPage(); - -// set default font subsetting mode -$pdf->setFontSubsetting(false); - -$pdf->setFont('helvetica', 'B', 20); - -$pdf->Write(0, 'Font Types', '', 0, 'C', 1, 0, false, false, 0); - -$pdf->Ln(10); - -$pdf->setFont('times', '', 10); - -$pdf->MultiCell(80, 0, "[Core font] : Cras eros leo, porttitor porta, accumsan fermentum, ornare ac, est. Praesent dui lorem, imperdiet at, cursus sed, facilisis aliquam, nibh. Nulla accumsan nonummy diam. Donec tempus. Etiam posuere. Proin lectus. Donec purus. Duis in sem pretium urna feugiat vehicula. Ut suscipit velit eget massa. Nam nonummy, enim commodo euismod placerat, tortor elit tempus lectus, quis suscipit metus lorem blandit turpis.\n", 1, 'J', 0, 1, '', '', true, 0); - -$pdf->Ln(2); - -$pdf->setFont('dejavusans', '', 10); - -$pdf->MultiCell(80, 0, "[True Type Unicode font] : Cras eros leo, porttitor porta, accumsan fermentum, ornare ac, est. Praesent dui lorem, imperdiet at, cursus sed, facilisis aliquam, nibh. Nulla accumsan nonummy diam. Donec tempus. Etiam posuere. Proin lectus. Donec purus. Duis in sem pretium urna feugiat vehicula. Ut suscipit velit eget massa. Nam nonummy, enim commodo euismod placerat, tortor elit tempus lectus, quis suscipit metus lorem blandit turpis.\n", 1, 'J', 0, 1, '', '', true, 0); - -$pdf->Ln(2); - -$pdf->setFont('cid0jp', '', 9); - -$pdf->MultiCell(80, 0, "[CID-0 font] : Cras eros leo, porttitor porta, accumsan fermentum, ornare ac, est. Praesent dui lorem, imperdiet at, cursus sed, facilisis aliquam, nibh. Nulla accumsan nonummy diam. Donec tempus. Etiam posuere. Proin lectus. Donec purus. Duis in sem pretium urna feugiat vehicula. Ut suscipit velit eget massa. Nam nonummy, enim commodo euismod placerat, tortor elit tempus lectus, quis suscipit metus lorem blandit turpis.\n", 1, 'J', 0, 1, '', '', true, 0); - - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_033.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_034.php b/tools/tcpdf/examples/example_034.php deleted file mode 100644 index 29b156398..000000000 --- a/tools/tcpdf/examples/example_034.php +++ /dev/null @@ -1,98 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 034'); -$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.' 034', 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, 'Image Clipping using geometric functions', '', 0, 'C', 1, 0, false, false, 0); - -//Start Graphic Transformation -$pdf->StartTransform(); - -// set clipping mask -$pdf->StarPolygon(105, 100, 30, 10, 3, 0, 1, 'CNZ'); - -// draw jpeg image to be clipped -$pdf->Image('images/image_demo.jpg', 75, 70, 60, 60, '', 'http://www.tcpdf.org', '', true, 72); - -//Stop Graphic Transformation -$pdf->StopTransform(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_034.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_035.php b/tools/tcpdf/examples/example_035.php deleted file mode 100644 index 78cf99337..000000000 --- a/tools/tcpdf/examples/example_035.php +++ /dev/null @@ -1,113 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 035'); -$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.' 035', 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('times', 'BI', 16); - -// add a page -$pdf->AddPage(); - -$pdf->Write(0, 'Example of SetLineStyle() method', '', 0, 'L', true, 0, false, false, 0); - -$pdf->Ln(); - -$pdf->setLineStyle(array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 4, 'color' => array(255, 0, 0))); -$pdf->setFillColor(255,255,128); -$pdf->setTextColor(0,0,128); - -$text="DUMMY"; - -$pdf->Cell(0, 0, $text, 1, 1, 'L', 1, 0); - -$pdf->Ln(); - -$pdf->setLineStyle(array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 255))); -$pdf->setFillColor(255,255,0); -$pdf->setTextColor(0,0,255); -$pdf->MultiCell(60, 4, $text, 1, 'C', 1, 0); - -$pdf->setLineStyle(array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 255, 0))); -$pdf->setFillColor(0,0,255); -$pdf->setTextColor(255,255,0); -$pdf->MultiCell(60, 4, $text, 'TB', 'C', 1, 0); - -$pdf->setLineStyle(array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 0, 255))); -$pdf->setFillColor(0,255,0); -$pdf->setTextColor(255,0,255); -$pdf->MultiCell(60, 4, $text, 1, 'C', 1, 1); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_035.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_036.php b/tools/tcpdf/examples/example_036.php deleted file mode 100644 index 195d13993..000000000 --- a/tools/tcpdf/examples/example_036.php +++ /dev/null @@ -1,91 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 036'); -$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.' 036', 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('times', '', 16); - -// add a page -$pdf->AddPage(); - -$txt = 'Example of Text Annotation. -Move your mouse over the yellow box or double click on it to display the annotation text.'; -$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0); - -// text annotation -$pdf->Annotation(83, 27, 10, 10, "Text annotation example\naccented letters test: àèéìòù", array('Subtype'=>'Text', 'Name' => 'Comment', 'T' => 'title example', 'Subj' => 'example', 'C' => array(255, 255, 0))); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_036.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_037.php b/tools/tcpdf/examples/example_037.php deleted file mode 100644 index af705b424..000000000 --- a/tools/tcpdf/examples/example_037.php +++ /dev/null @@ -1,149 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 037'); -$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.' 037', 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', '', 11); - -// add a page -$pdf->AddPage(); - -$html = '

      Example of Spot Colors

      Spot colors are single ink colors, rather than colors produced by four (CMYK), six (CMYKOG) or more inks in the printing process (process colors). They can be obtained by special vendors, but often the printers have found their own way of mixing inks to match defined colors.

      As long as no open standard for spot colours exists, TCPDF users will have to buy a colour book by one of the colour manufacturers and insert the values and names of spot colours directly into the $spotcolor array in include/tcpdf_colors.php file, or define them using the AddSpotColor() method.

      Common industry standard spot colors are:
      ANPA-COLOR, DIC, FOCOLTONE, GCMI, HKS, PANTONE, TOYO, TRUMATCH.'; - -// Print text using writeHTMLCell() -$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, 'J', true); - - -$pdf->setFont('helvetica', '', 10); - -// Define some new spot colors -// $c, $m, $y and $k (2nd, 3rd, 4th and 5th parameter) are the CMYK color components. -// AddSpotColor($name, $c, $m, $y, $k) - -$pdf->AddSpotColor('My TCPDF Dark Green', 100, 50, 80, 45); -$pdf->AddSpotColor('My TCPDF Light Yellow', 0, 0, 55, 0); -$pdf->AddSpotColor('My TCPDF Black', 0, 0, 0, 100); -$pdf->AddSpotColor('My TCPDF Red', 30, 100, 90, 10); -$pdf->AddSpotColor('My TCPDF Green', 100, 30, 100, 0); -$pdf->AddSpotColor('My TCPDF Blue', 100, 60, 10, 5); -$pdf->AddSpotColor('My TCPDF Yellow', 0, 20, 100, 0); - -// Select the spot color -// $tint (the second parameter) is the intensity of the color (0-100). -// setTextSpotColor($name, $tint=100) -// setDrawSpotColor($name, $tint=100) -// setFillSpotColor($name, $tint=100) - -$pdf->setTextSpotColor('My TCPDF Black', 100); -$pdf->setDrawSpotColor('My TCPDF Black', 100); - -$starty = 100; - -// print some spot colors - -$pdf->setFillSpotColor('My TCPDF Dark Green', 100); -$pdf->Rect(30, $starty, 40, 20, 'DF'); -$pdf->Text(73, $starty + 8, 'My TCPDF Dark Green'); - -$starty += 24; -$pdf->setFillSpotColor('My TCPDF Light Yellow', 100); -$pdf->Rect(30, $starty, 40, 20, 'DF'); -$pdf->Text(73, $starty + 8, 'My TCPDF Light Yellow'); - - -// --- default values defined on spotcolors.php --- - -$starty += 24; -$pdf->setFillSpotColor('My TCPDF Red', 100); -$pdf->Rect(30, $starty, 40, 20, 'DF'); -$pdf->Text(73, $starty + 8, 'My TCPDF Red'); - -$starty += 24; -$pdf->setFillSpotColor('My TCPDF Green', 100); -$pdf->Rect(30, $starty, 40, 20, 'DF'); -$pdf->Text(73, $starty + 8, 'My TCPDF Green'); - -$starty += 24; -$pdf->setFillSpotColor('My TCPDF Blue', 100); -$pdf->Rect(30, $starty, 40, 20, 'DF'); -$pdf->Text(73, $starty + 8, 'My TCPDF Blue'); - -$starty += 24; -$pdf->setFillSpotColor('My TCPDF Yellow', 100); -$pdf->Rect(30, $starty, 40, 20, 'DF'); -$pdf->Text(73, $starty + 8, 'My TCPDF Yellow'); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_037.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_038.php b/tools/tcpdf/examples/example_038.php deleted file mode 100644 index 568610aca..000000000 --- a/tools/tcpdf/examples/example_038.php +++ /dev/null @@ -1,94 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 038'); -$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.' 038', 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', '', 20); - -// add a page -$pdf->AddPage(); - -$txt = 'Example of CID-0 CJK unembedded font. -To display extended text you must have CJK fonts installed for your PDF reader:'; -$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0); - -// set font -$pdf->setFont('cid0jp', '', 40); - -$txt = 'こんにちは世界'; -$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_038.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_039.php b/tools/tcpdf/examples/example_039.php deleted file mode 100644 index 0eabd0840..000000000 --- a/tools/tcpdf/examples/example_039.php +++ /dev/null @@ -1,106 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 039'); -$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.' 039', 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); -} - -// --------------------------------------------------------- - -// add a page -$pdf->AddPage(); - -// set font -$pdf->setFont('helvetica', 'B', 20); - -$pdf->Write(0, 'Example of HTML Justification', '', 0, 'L', true, 0, false, false, 0); - -// create some HTML content -$html = 'a abc abcdefghijkl (abcdef) abcdefg abcdefghi a ((abc)) abcd test alt attribute abcdef abcdefg abcdefghi a abc abcd abcdef abcdefg abcdefghi a abc abcd abcdef abcdefg abcdefghi a abc abcd abcdef abcdefg abcdefghi a abc \(abcd\) abcdef abcdefg abcdefghi a abc \\\(abcd\\\) abcdef abcdefg abcdefghi a abc abcd abcdef abcdefg abcdefghi a abc abcd abcdef abcdefg abcdefghi a abc abcd abcdef abcdefg abcdefghi a abc abcd abcdef abcdefg start a abc before yellow color after a abc abcd abcdef abcdefg abcdefghi a abc abcd end abcdefg abcdefghi a abc abcd abcdef abcdefg abcdefghi a abc abcd abcdef abcdefg abcdefghi a abc abcd abcdef abcdefg abcdefghi a abc abcd abcdef abcdefg abcdefghi a abc abcd abcdef abcdefg abcdefghi a abc abcd abcdef abcdefg abcdefghi a abc abcd abcdef abcdefg abcdefghi
      abcd abcdef abcdefg abcdefghi
      abcd abcde abcdef
      '; - -// set core font -$pdf->setFont('helvetica', '', 10); - -// output the HTML content -$pdf->writeHTML($html, true, 0, true, true); - -$pdf->Ln(); - -// set UTF-8 Unicode font -$pdf->setFont('dejavusans', '', 10); - -// output the HTML content -$pdf->writeHTML($html, true, 0, true, true); - -// reset pointer to the last page -$pdf->lastPage(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_039.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_040.php b/tools/tcpdf/examples/example_040.php deleted file mode 100644 index 970370807..000000000 --- a/tools/tcpdf/examples/example_040.php +++ /dev/null @@ -1,118 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 040'); -$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.' 040', 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 display mode -$pdf->setDisplayMode($zoom='fullpage', $layout='TwoColumnRight', $mode='UseNone'); - -// set pdf viewer preferences -$pdf->setViewerPreferences(array('Duplex' => 'DuplexFlipLongEdge')); - -// set booklet mode -$pdf->setBooklet(true, 10, 30); - -// set core font -$pdf->setFont('helvetica', '', 18); - -// add a page (left page) -$pdf->AddPage(); - -$pdf->Write(0, 'Example of booklet mode', '', 0, 'L', true, 0, false, false, 0); - -// print a line using Cell() -$pdf->Cell(0, 0, 'PAGE 1', 1, 1, 'C'); - - -// add a page (right page) -$pdf->AddPage(); - -// print a line using Cell() -$pdf->Cell(0, 0, 'PAGE 2', 1, 1, 'C'); - - -// add a page (left page) -$pdf->AddPage(); - -// print a line using Cell() -$pdf->Cell(0, 0, 'PAGE 3', 1, 1, 'C'); - -// add a page (right page) -$pdf->AddPage(); - -// print a line using Cell() -$pdf->Cell(0, 0, 'PAGE 4', 1, 1, 'C'); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_040.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_041.php b/tools/tcpdf/examples/example_041.php deleted file mode 100644 index 68ba81c76..000000000 --- a/tools/tcpdf/examples/example_041.php +++ /dev/null @@ -1,93 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 041'); -$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.' 041', 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('times', '', 16); - -// add a page -$pdf->AddPage(); - - -$txt = 'Example of File Attachment. -Double click on the icon to open the attached file.'; -$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0); - -// attach an external file -$pdf->Annotation(85, 27, 5, 5, 'text file', array('Subtype'=>'FileAttachment', 'Name' => 'PushPin', 'FS' => 'data/utf8test.txt')); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_041.pdf', 'D'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_042.php b/tools/tcpdf/examples/example_042.php deleted file mode 100644 index 039e3e1b8..000000000 --- a/tools/tcpdf/examples/example_042.php +++ /dev/null @@ -1,104 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 042'); -$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.' 042', 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 JPEG quality -//$pdf->setJPEGQuality(75); - -$pdf->setFont('helvetica', '', 18); - -// add a page -$pdf->AddPage(); - -// create background text -$background_text = str_repeat('TCPDF test PNG Alpha Channel ', 50); -$pdf->MultiCell(0, 5, $background_text, 0, 'J', 0, 2, '', '', true, 0, false); - -// --- Method (A) ------------------------------------------ -// the Image() method recognizes the alpha channel embedded on the image: - -$pdf->Image('images/image_with_alpha.png', 50, 50, 100, '', '', 'http://www.tcpdf.org', '', false, 300); - -// --- Method (B) ------------------------------------------ -// provide image + separate 8-bit mask - -// first embed mask image (w, h, x and y will be ignored, the image will be scaled to the target image's size) -$mask = $pdf->Image('images/alpha.png', 50, 140, 100, '', '', '', '', false, 300, '', true); - -// embed image, masked with previously embedded mask -$pdf->Image('images/img.png', 50, 140, 100, '', '', 'http://www.tcpdf.org', '', false, 300, '', false, $mask); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_042.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_043.php b/tools/tcpdf/examples/example_043.php deleted file mode 100644 index d73e46a5f..000000000 --- a/tools/tcpdf/examples/example_043.php +++ /dev/null @@ -1,87 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 043'); -$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.' 043', 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', '', 16); - -// add a page -$pdf->AddPage(); - -// Multicell test -$pdf->MultiCell(0, 0, 'DISK CACHING TEST: check the parameters of the class constructor.', 1, 'L', 0, 0, '', '', true); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_043.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_044.php b/tools/tcpdf/examples/example_044.php deleted file mode 100644 index 668ccc5c8..000000000 --- a/tools/tcpdf/examples/example_044.php +++ /dev/null @@ -1,130 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 044'); -$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.' 044', 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', 40); - -// print a line using Cell() -$pdf->AddPage(); -$pdf->Cell(0, 10, 'PAGE: A', 0, 1, 'L'); - -// add some vertical space -$pdf->Ln(10); - -// print some text -$pdf->setFont('times', 'I', 16); -$txt = 'TCPDF allows you to Copy, Move and Delete pages.'; -$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0); - -$pdf->setFont('helvetica', 'B', 40); - -$pdf->AddPage(); -$pdf->Cell(0, 10, 'PAGE: B', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Cell(0, 10, 'PAGE: D', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Cell(0, 10, 'PAGE: E', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Cell(0, 10, 'PAGE: E-2', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Cell(0, 10, 'PAGE: F', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Cell(0, 10, 'PAGE: C', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Cell(0, 10, 'PAGE: G', 0, 1, 'L'); - -// Move page 7 to page 3 -$pdf->movePage(7, 3); - -// Delete page 6 -$pdf->deletePage(6); - -$pdf->AddPage(); -$pdf->Cell(0, 10, 'PAGE: H', 0, 1, 'L'); - -// copy the second page -$pdf->copyPage(2); - -// NOTE: to insert a page to a previous position, you can add a new page to the end of document and then move it using movePage(). - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_044.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_045.php b/tools/tcpdf/examples/example_045.php deleted file mode 100644 index a7f613731..000000000 --- a/tools/tcpdf/examples/example_045.php +++ /dev/null @@ -1,143 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 045'); -$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.' 045', 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('times', 'B', 20); - -// add a page -$pdf->AddPage(); - -// set a bookmark for the current position -$pdf->Bookmark('Chapter 1', 0, 0, '', 'B', array(0,64,128)); - -// print a line using Cell() -$pdf->Cell(0, 10, 'Chapter 1', 0, 1, 'L'); - -// Create a fixed link to the first page using the * character -$index_link = $pdf->AddLink(); -$pdf->setLink($index_link, 0, '*1'); -$pdf->Cell(0, 10, 'Link to INDEX', 0, 1, 'R', false, $index_link); - -$pdf->AddPage(); -$pdf->Bookmark('Paragraph 1.1', 1, 0, '', '', array(128,0,0)); -$pdf->Cell(0, 10, 'Paragraph 1.1', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Bookmark('Paragraph 1.2', 1, 0, '', '', array(128,0,0)); -$pdf->Cell(0, 10, 'Paragraph 1.2', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Bookmark('Sub-Paragraph 1.2.1', 2, 0, '', 'I', array(0,128,0)); -$pdf->Cell(0, 10, 'Sub-Paragraph 1.2.1', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Bookmark('Paragraph 1.3', 1, 0, '', '', array(128,0,0)); -$pdf->Cell(0, 10, 'Paragraph 1.3', 0, 1, 'L'); - -// fixed link to the first page using the * character -$html = 'link to INDEX (page 1)'; -$pdf->writeHTML($html, true, false, true, false, ''); - - -// add some pages and bookmarks -for ($i = 2; $i < 12; $i++) { - $pdf->AddPage(); - $pdf->Bookmark('Chapter '.$i, 0, 0, '', 'B', array(0,64,128)); - $pdf->Cell(0, 10, 'Chapter '.$i, 0, 1, 'L'); -} - -// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -// add a new page for TOC -$pdf->addTOCPage(); - -// write the TOC title -$pdf->setFont('times', 'B', 16); -$pdf->MultiCell(0, 0, 'Table Of Content', 0, 'C', 0, 1, '', '', true, 0); -$pdf->Ln(); - -$pdf->setFont('dejavusans', '', 12); - -// add a simple Table Of Content at first page -// (check the example n. 59 for the HTML version) -$pdf->addTOC(1, 'courier', '.', 'INDEX', 'B', array(128,0,0)); - -// end of TOC page -$pdf->endTOCPage(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_045.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_046.php b/tools/tcpdf/examples/example_046.php deleted file mode 100644 index 1071b54f0..000000000 --- a/tools/tcpdf/examples/example_046.php +++ /dev/null @@ -1,125 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 046'); -$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.' 046', 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 Text Hyphenation', '', 0, 'L', true, 0, false, false, 0); - -$pdf->Ln(10); - -/* -Unicode Data for SHY: - Name : SOFT HYPHEN, commonly abbreviated as SHY - HTML Entity (decimal): ­ - HTML Entity (hex): ­ - HTML Entity (named): ­ - How to type in Microsoft Windows: [Alt +00AD] or [Alt 0173] - UTF-8 (hex): 0xC2 0xAD (c2ad) -*/ - -/* -// You can automatically add SOFT HYPHENS to your text using -// the hyphenateText() method, but this requires either an -// hyphenation pattern array of a hyphenation pattern TEX file. -// You can download hyphenation TEX patterns from: -// http://www.ctan.org/tex-archive/language/hyph-utf8/tex/generic/hyph-utf8/patterns/ - -// EXAMPLE: - -$html = 'On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains.'; - -$hyphen_patterns = $pdf->getHyphenPatternsFromTEX('hyphens/hyph-en-gb.tex'); - -$html = $pdf->hyphenateText($html, $hyphen_patterns, array(), 1, 2, 1, 8); -*/ - - -// HTML text with soft hyphens (­) -$html = 'On the other hand, we de­nounce with righ­teous in­dig­na­tion and dis­like men who are so be­guiled and de­mo­r­al­ized by the charms of plea­sure of the mo­ment, so blind­ed by de­sire, that they can­not fore­see the pain and trou­ble that are bound to en­sue; and equal blame be­longs to those who fail in their du­ty through weak­ness of will, which is the same as say­ing through shrink­ing from toil and pain. Th­ese cas­es are per­fect­ly sim­ple and easy to distin­guish. In a free hour, when our pow­er of choice is un­tram­melled and when noth­ing pre­vents our be­ing able to do what we like best, ev­ery plea­sure is to be wel­comed and ev­ery pain avoid­ed. But in cer­tain cir­cum­s­tances and ow­ing to the claims of du­ty or the obli­ga­tions of busi­ness it will fre­quent­ly oc­cur that plea­sures have to be re­pu­di­at­ed and an­noy­ances ac­cept­ed. The wise man there­fore al­ways holds in th­ese mat­ters to this prin­ci­ple of se­lec­tion: he re­jects plea­sures to se­cure other greater plea­sures, or else he en­dures pains to avoid worse pains.'; - -$pdf->setFont('times', '', 10); -$pdf->setDrawColor(255,0,0); -$pdf->setTextColor(0,63,127); - -// print a cell -$pdf->writeHTMLCell(50, 0, '', '', $html, 1, 1, 0, true, 'J'); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_046.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_047.php b/tools/tcpdf/examples/example_047.php deleted file mode 100644 index a6bd1f528..000000000 --- a/tools/tcpdf/examples/example_047.php +++ /dev/null @@ -1,119 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 047'); -$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.' 047', 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', '', 16); - -// add a page -$pdf->AddPage(); - -$txt = 'Example of Transactions. -TCPDF allows you to undo some operations using the Transactions. -Check the source code for further information.'; -$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0); - -$pdf->Ln(5); - -$pdf->setFont('times', '', 12); - -// start transaction -$pdf->startTransaction(); - -$pdf->Write(0, "LINE 1\n"); -$pdf->Write(0, "LINE 2\n"); - -// restarts transaction -$pdf->startTransaction(); - -$pdf->Write(0, "LINE 3\n"); -$pdf->Write(0, "LINE 4\n"); - -// rolls back to the last (re)start -$pdf = $pdf->rollbackTransaction(); - -$pdf->Write(0, "LINE 5\n"); -$pdf->Write(0, "LINE 6\n"); - -// start transaction -$pdf->startTransaction(); - -$pdf->Write(0, "LINE 7\n"); - -// commit transaction (actually just frees memory) -$pdf->commitTransaction(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_047.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_048.php b/tools/tcpdf/examples/example_048.php deleted file mode 100644 index b7226fe18..000000000 --- a/tools/tcpdf/examples/example_048.php +++ /dev/null @@ -1,316 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 048'); -$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.' 048', 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 = << - - COL 1 - ROW 1
      COLSPAN 3 - COL 2 - ROW 1 - COL 3 - ROW 1 - - - COL 2 - ROW 2 - COLSPAN 2
      text line
      text line
      text line
      text line - COL 3 - ROW 2 - - - COL 3 - ROW 3 - - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -$tbl = << - - COL 1 - ROW 1
      COLSPAN 3
      text line
      text line
      text line
      text line
      text line
      text line - COL 2 - ROW 1 - COL 3 - ROW 1 - - - COL 2 - ROW 2 - COLSPAN 2
      text line
      text line
      text line
      text line - COL 3 - ROW 2 - - - COL 3 - ROW 3 - - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -$tbl = << - - COL 1 - ROW 1
      COLSPAN 3
      text line
      text line
      text line
      text line
      text line
      text line - COL 2 - ROW 1 - COL 3 - ROW 1 - - - COL 2 - ROW 2 - COLSPAN 2
      text line
      text line
      text line
      text line - COL 3 - ROW 2
      text line
      text line - - - COL 3 - ROW 3 - - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -$tbl = << - -Left column -Heading Column Span 5 -Heading Column Span 9 - - -Rowspan 2
      This is some text that fills the table cell. -span 2 -span 2 -2 rows -Colspan 8 - - -1a -2a -1b -2b -1 -2 -3 -4 -5 -6 -7 -8 - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -// Table with rowspans and THEAD -$tbl = << - - - A - XXXX - XXXX - XXXX - XXXX - XXXX - - - B - XXXX - XXXX - XXXX - XXXX - XXXX - - - - 1. - XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX - XXXX
      XXXX - XXXX
      XXXX - XXXX - XXXX
      XXXX - - - 2. - XXXX
      XXXX - XXXX
      XXXX - XXXX
      XXXX - XXXX
      XXXX - - - XXXX
      XXXX
      XXXX
      XXXX - XXXX
      XXXX - XXXX
      XXXX - - - RRRRRR
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX - XXXX
      XXXX - XXXX
      XXXX - - - 3. - XXXX1
      XXXX - XXXX
      XXXX - XXXX
      XXXX - - - 4. - XXXX
      XXXX - XXXX
      XXXX - XXXX
      XXXX - XXXX
      XXXX - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -// NON-BREAKING TABLE (nobr="true") - -$tbl = << - - NON-BREAKING TABLE - - - 1-1 - 1-2 - 1-3 - - - 2-1 - 3-2 - 3-3 - - - 3-1 - 3-2 - 3-3 - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -// NON-BREAKING ROWS (nobr="true") - -$tbl = << - - NON-BREAKING ROWS - - - ROW 1
      COLUMN 1 - ROW 1
      COLUMN 2 - ROW 1
      COLUMN 3 - - - ROW 2
      COLUMN 1 - ROW 2
      COLUMN 2 - ROW 2
      COLUMN 3 - - - ROW 3
      COLUMN 1 - ROW 3
      COLUMN 2 - ROW 3
      COLUMN 3 - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_048.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_049.php b/tools/tcpdf/examples/example_049.php deleted file mode 100644 index c8a818662..000000000 --- a/tools/tcpdf/examples/example_049.php +++ /dev/null @@ -1,128 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 049'); -$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.' 049', 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', '', 10); - -// add a page -$pdf->AddPage(); - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - -IMPORTANT: -If you are printing user-generated content, the tcpdf tag should be considered unsafe. -This tag is disabled by default by the K_TCPDF_CALLS_IN_HTML constant on TCPDF configuration file. -Please use this feature only if you are in control of the HTML content and you are sure that it does not contain any harmful code. - -For security reasons, the content of the TCPDF tag must be prepared and encoded with the serializeTCPDFtag() method (see the example below). - - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - -$html = '

      Test TCPDF Methods in HTML

      -

      IMPORTANT:

      -If you are using user-generated content, the tcpdf tag should be considered unsafe.
      -Please use this feature only if you are in control of the HTML content and you are sure that it does not contain any harmful code.
      -This feature is disabled by default by the K_TCPDF_CALLS_IN_HTML constant on TCPDF configuration file.
      -

      write1DBarcode method in HTML

      '; - -$data = $pdf->serializeTCPDFtag('write1DBarcode', array('CODE 39', 'C39', '', '', 80, 30, 0.4, array('position'=>'S', 'border'=>true, 'padding'=>4, 'fgcolor'=>array(0,0,0), 'bgcolor'=>array(255,255,255), 'text'=>true, 'font'=>'helvetica', 'fontsize'=>8, 'stretchtext'=>4), 'N')); -$html .= ''; - -$data = $pdf->serializeTCPDFtag('write1DBarcode', array('CODE 128', 'C128', '', '', 80, 30, 0.4, array('position'=>'S', 'border'=>true, 'padding'=>4, 'fgcolor'=>array(0,0,0), 'bgcolor'=>array(255,255,255), 'text'=>true, 'font'=>'helvetica', 'fontsize'=>8, 'stretchtext'=>4), 'N')); -$html .= ''; - -$data = $pdf->serializeTCPDFtag('AddPage'); -$html .= '

      Graphic Functions

      '; - -$data = $pdf->serializeTCPDFtag('SetDrawColor', array(0)); -$html .= ''; - -$data = $pdf->serializeTCPDFtag('Rect', array(50, 50, 40, 10, 'DF', array(), array(0,128,255))); -$html .= ''; - - -// output the HTML content -$pdf->writeHTML($html, true, 0, true, 0); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// reset pointer to the last page -$pdf->lastPage(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_049.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_050.php b/tools/tcpdf/examples/example_050.php deleted file mode 100644 index 6bbb299e2..000000000 --- a/tools/tcpdf/examples/example_050.php +++ /dev/null @@ -1,212 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 050'); -$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.' 050', 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); -} - -// --------------------------------------------------------- - -// NOTE: 2D barcode algorithms must be implemented on 2dbarcode.php class file. - -// set font -$pdf->setFont('helvetica', '', 11); - -// add a page -$pdf->AddPage(); - -// print a message -$txt = "You can also export 2D barcodes in other formats (PNG, SVG, HTML). Check the examples inside the barcode directory.\n"; -$pdf->MultiCell(70, 50, $txt, 0, 'J', false, 1, 125, 30, true, 0, false, true, 0, 'T', false); - - -$pdf->setFont('helvetica', '', 10); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// set style for barcode -$style = array( - 'border' => true, - 'vpadding' => 'auto', - 'hpadding' => 'auto', - 'fgcolor' => array(0,0,0), - 'bgcolor' => false, //array(255,255,255) - 'module_width' => 1, // width of a single module in points - 'module_height' => 1 // height of a single module in points -); - -// write RAW 2D Barcode - -$code = '111011101110111,010010001000010,010011001110010,010010000010010,010011101110010'; -$pdf->write2DBarcode($code, 'RAW', 80, 30, 30, 20, $style, 'N'); - -// write RAW2 2D Barcode -$code = '[111011101110111][010010001000010][010011001110010][010010000010010][010011101110010]'; -$pdf->write2DBarcode($code, 'RAW2', 80, 60, 30, 20, $style, 'N'); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// set style for barcode -$style = array( - 'border' => 2, - 'vpadding' => 'auto', - 'hpadding' => 'auto', - 'fgcolor' => array(0,0,0), - 'bgcolor' => false, //array(255,255,255) - 'module_width' => 1, // width of a single module in points - 'module_height' => 1 // height of a single module in points -); - -// QRCODE,L : QR-CODE Low error correction -$pdf->write2DBarcode('www.tcpdf.org', 'QRCODE,L', 20, 30, 50, 50, $style, 'N'); -$pdf->Text(20, 25, 'QRCODE L'); - -// QRCODE,M : QR-CODE Medium error correction -$pdf->write2DBarcode('www.tcpdf.org', 'QRCODE,M', 20, 90, 50, 50, $style, 'N'); -$pdf->Text(20, 85, 'QRCODE M'); - -// QRCODE,Q : QR-CODE Better error correction -$pdf->write2DBarcode('www.tcpdf.org', 'QRCODE,Q', 20, 150, 50, 50, $style, 'N'); -$pdf->Text(20, 145, 'QRCODE Q'); - -// QRCODE,H : QR-CODE Best error correction -$pdf->write2DBarcode('www.tcpdf.org', 'QRCODE,H', 20, 210, 50, 50, $style, 'N'); -$pdf->Text(20, 205, 'QRCODE H'); - -// ------------------------------------------------------------------- -// PDF417 (ISO/IEC 15438:2006) - -/* - - The $type parameter can be simple 'PDF417' or 'PDF417' followed by a - number of comma-separated options: - - 'PDF417,a,e,t,s,f,o0,o1,o2,o3,o4,o5,o6' - - Possible options are: - - a = aspect ratio (width/height); - e = error correction level (0-8); - - Macro Control Block options: - - t = total number of macro segments; - s = macro segment index (0-99998); - f = file ID; - o0 = File Name (text); - o1 = Segment Count (numeric); - o2 = Time Stamp (numeric); - o3 = Sender (text); - o4 = Addressee (text); - o5 = File Size (numeric); - o6 = Checksum (numeric). - - Parameters t, s and f are required for a Macro Control Block, all other parameters are optional. - To use a comma character ',' on text options, replace it with the character 255: "\xff". - -*/ - -$pdf->write2DBarcode('www.tcpdf.org', 'PDF417', 80, 90, 0, 30, $style, 'N'); -$pdf->Text(80, 85, 'PDF417 (ISO/IEC 15438:2006)'); - -// ------------------------------------------------------------------- -// DATAMATRIX (ISO/IEC 16022:2006) - -$pdf->write2DBarcode('http://www.tcpdf.org', 'DATAMATRIX', 80, 150, 50, 50, $style, 'N'); -$pdf->Text(80, 145, 'DATAMATRIX (ISO/IEC 16022:2006)'); - -// ------------------------------------------------------------------- - -// new style -$style = array( - 'border' => 2, - 'padding' => 'auto', - 'fgcolor' => array(0,0,255), - 'bgcolor' => array(255,255,64) -); - -// QRCODE,H : QR-CODE Best error correction -$pdf->write2DBarcode('www.tcpdf.org', 'QRCODE,H', 80, 210, 50, 50, $style, 'N'); -$pdf->Text(80, 205, 'QRCODE H - COLORED'); - -// new style -$style = array( - 'border' => false, - 'padding' => 0, - 'fgcolor' => array(128,0,0), - 'bgcolor' => false -); - -// QRCODE,H : QR-CODE Best error correction -$pdf->write2DBarcode('www.tcpdf.org', 'QRCODE,H', 140, 210, 50, 50, $style, 'N'); -$pdf->Text(140, 205, 'QRCODE H - NO PADDING'); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_050.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_051.php b/tools/tcpdf/examples/example_051.php deleted file mode 100644 index c3a9ce2f2..000000000 --- a/tools/tcpdf/examples/example_051.php +++ /dev/null @@ -1,148 +0,0 @@ -getBreakMargin(); - // get current auto-page-break mode - $auto_page_break = $this->AutoPageBreak; - // disable auto-page-break - $this->setAutoPageBreak(false, 0); - // set bacground image - $img_file = K_PATH_IMAGES.'image_demo.jpg'; - $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 - $this->setPageMark(); - } -} - -// create new PDF document -$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); - -// set document information -$pdf->setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 051'); -$pdf->setSubject('TCPDF Tutorial'); -$pdf->setKeywords('TCPDF, PDF, example, test, guide'); - -// set header and footer fonts -$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); - -// set default monospaced font -$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); - -// set margins -$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); -$pdf->setHeaderMargin(0); -$pdf->setFooterMargin(0); - -// remove default footer -$pdf->setPrintFooter(false); - -// 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('times', '', 48); - -// add a page -$pdf->AddPage(); - -// Print a text -$html = ' PAGE 1  -

      You can set a full page background.

      '; -$pdf->writeHTML($html, true, false, true, false, ''); - - -// add a page -$pdf->AddPage(); - -// Print a text -$html = ' PAGE 2 '; -$pdf->writeHTML($html, true, false, true, false, ''); - -// --- example with background set on page --- - -// remove default header -$pdf->setPrintHeader(false); - -// add a page -$pdf->AddPage(); - - -// -- set new background --- - -// get the current page break margin -$bMargin = $pdf->getBreakMargin(); -// get current auto-page-break mode -$auto_page_break = $pdf->getAutoPageBreak(); -// disable auto-page-break -$pdf->setAutoPageBreak(false, 0); -// set bacground image -$img_file = K_PATH_IMAGES.'image_demo.jpg'; -$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 -$pdf->setPageMark(); - - -// Print a text -$html = 'PAGE 3'; -$pdf->writeHTML($html, true, false, true, false, ''); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_051.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_052.php b/tools/tcpdf/examples/example_052.php deleted file mode 100644 index 10cfb2e4f..000000000 --- a/tools/tcpdf/examples/example_052.php +++ /dev/null @@ -1,123 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 052'); -$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.' 052', 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); -} - -// --------------------------------------------------------- - -/* -NOTES: - - To create self-signed signature: openssl req -x509 -nodes -days 365000 -newkey rsa:1024 -keyout tcpdf.crt -out tcpdf.crt - - To export crt to p12: openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12 - - To convert pfx certificate to pem: openssl pkcs12 -in tcpdf.pfx -out tcpdf.crt -nodes -*/ - -// set certificate file -$certificate = 'file://data/cert/tcpdf.crt'; - -// set additional information -$info = array( - 'Name' => 'TCPDF', - 'Location' => 'Office', - 'Reason' => 'Testing TCPDF', - 'ContactInfo' => 'http://www.tcpdf.org', - ); - -// set document signature -$pdf->setSignature($certificate, $certificate, 'tcpdfdemo', '', 2, $info); - -// set font. 'helvetica' MUST be used to avoid a PHP notice from PHP 7.4+ -$pdf->setFont('helvetica', '', 12); - -// add a page -$pdf->AddPage(); - -// print a line of text -$text = 'This is a digitally signed document using the default (example) tcpdf.crt certificate.
      To validate this signature you have to load the tcpdf.fdf on the Arobat Reader to add the certificate to List of Trusted Identities.

      For more information check the source code of this example and the source code documentation for the setSignature() method.

      www.tcpdf.org'; -$pdf->writeHTML($text, true, 0, true, 0); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// *** set signature appearance *** - -// create content for signature (image and/or text) -$pdf->Image('images/tcpdf_signature.png', 180, 60, 15, 15, 'PNG'); - -// define active area for signature appearance -$pdf->setSignatureAppearance(180, 60, 15, 15); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// *** set an empty signature appearance *** -$pdf->addEmptySignatureAppearance(180, 80, 15, 15); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_052.pdf', 'D'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_053.php b/tools/tcpdf/examples/example_053.php deleted file mode 100644 index dbeb67e25..000000000 --- a/tools/tcpdf/examples/example_053.php +++ /dev/null @@ -1,110 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 053'); -$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.' 053', 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('times', '', 14); - -// add a page -$pdf->AddPage(); - -// print a some of text -$text = 'This is an example of JavaScript usage on PDF documents.

      For more information check the source code of this example, the source code documentation for the IncludeJS() method and the JavaScript for Acrobat API Reference guide.

      www.tcpdf.org'; -$pdf->writeHTML($text, true, 0, true, 0); - -// write some JavaScript code -$js = <<IncludeJS($js); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_053.pdf', 'D'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_054.php b/tools/tcpdf/examples/example_054.php deleted file mode 100644 index 3a5011d49..000000000 --- a/tools/tcpdf/examples/example_054.php +++ /dev/null @@ -1,131 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 054'); -$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.' 054', 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); -} - -// --------------------------------------------------------- - -// IMPORTANT: disable font subsetting to allow users editing the document -$pdf->setFontSubsetting(false); - -// set font. 'helvetica' MUST be used to avoid a PHP notice from PHP 7.4+ -$pdf->setFont('helvetica', '', 10, '', false); - -// add a page -$pdf->AddPage(); - -// create some HTML content -$html = <<XHTML Form Example -
      -
      -

      -

      -

      -
      -
      -

      - -

      - -


      -
      -
      -


      - - - - -
      -
      -EOD; - -// output the HTML content -$pdf->writeHTML($html, true, 0, true, 0); - -// reset pointer to the last page -$pdf->lastPage(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_054.pdf', 'D'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_055.php b/tools/tcpdf/examples/example_055.php deleted file mode 100644 index 0f50da096..000000000 --- a/tools/tcpdf/examples/example_055.php +++ /dev/null @@ -1,118 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 055'); -$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.' 055', 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', '', 14); - -// array of font names -$core_fonts = array('courier', 'courierB', 'courierI', 'courierBI', 'helvetica', 'helveticaB', 'helveticaI', 'helveticaBI', 'times', 'timesB', 'timesI', 'timesBI', 'symbol', 'zapfdingbats'); - -// set fill color -$pdf->setFillColor(221,238,255); - -// create one HTML table for each core font -foreach($core_fonts as $font) { - // add a page - $pdf->AddPage(); - - // Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='', $stretch=0, $ignore_min_height=false, $calign='T', $valign='M') - - // set font for title - $pdf->setFont('helvetica', 'B', 16); - - // print font name - $pdf->Cell(0, 10, 'FONT: '.$font, 1, 1, 'C', true, '', 0, false, 'T', 'M'); - - // set font for chars - $pdf->setFont($font, '', 16); - - // print each character - for ($i = 0; $i < 256; ++$i) { - if (($i > 0) AND (($i % 16) == 0)) { - $pdf->Ln(); - } - $pdf->Cell(11.25, 11.25, TCPDF_FONTS::unichr($i), 1, 0, 'C', false, '', 0, false, 'T', 'M'); - } - - $pdf->Ln(20); - - // print a pangram - $pdf->Cell(0, 0, 'The quick brown fox jumps over the lazy dog', 0, 1, 'C', false, '', 0, false, 'T', 'M'); -} - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_055.pdf', 'D'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_056.php b/tools/tcpdf/examples/example_056.php deleted file mode 100644 index 40ef2508b..000000000 --- a/tools/tcpdf/examples/example_056.php +++ /dev/null @@ -1,135 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 056'); -$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.' 056', 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', '', 18); - -// add a page -$pdf->AddPage(); - -$pdf->Write(0, 'Example of Registration Marks, Crop Marks and Color Bars', '', 0, 'L', true, 0, false, false, 0); - -$pdf->Ln(5); - -// color registration bars - -// A,W,R,G,B,C,M,Y,K,RGB,CMYK,ALL,ALLSPOT, -$pdf->colorRegistrationBar(50, 70, 40, 40, true, false, 'A,R,G,B,C,M,Y,K'); -$pdf->colorRegistrationBar(90, 70, 40, 40, true, true, 'A,R,G,B,C,M,Y,K'); -$pdf->colorRegistrationBar(50, 115, 80, 5, false, true, 'A,W,R,G,B,C,M,Y,K,ALL'); -$pdf->colorRegistrationBar(135, 70, 5, 50, false, false, 'A,W,R,G,B,C,M,Y,K,ALL'); - -// corner crop marks - -$pdf->cropMark(50, 70, 10, 10, 'TL'); -$pdf->cropMark(140, 70, 10, 10, 'TR'); -$pdf->cropMark(50, 120, 10, 10, 'BL'); -$pdf->cropMark(140, 120, 10, 10, 'BR'); - -// various crop marks - -$pdf->cropMark(95, 65, 5, 5, 'LEFT,TOP,RIGHT', array(255,0,0)); -$pdf->cropMark(95, 125, 5, 5, 'LEFT,BOTTOM,RIGHT', array(255,0,0)); - -$pdf->cropMark(45, 95, 5, 5, 'TL,BL', array(0,255,0)); -$pdf->cropMark(145, 95, 5, 5, 'TR,BR', array(0,255,0)); - -$pdf->cropMark(95, 140, 5, 5, 'A,D', array(0,0,255)); - -// registration marks - -$pdf->registrationMark(40, 60, 5, false); -$pdf->registrationMark(150, 60, 5, true, array(0,0,0), array(255,255,0)); -$pdf->registrationMark(40, 130, 5, true, array(0,0,0), array(255,255,0)); -$pdf->registrationMark(150, 130, 5, false, array(100,100,100,100,'All'), array(0,0,0,0,'None')); - -// test registration bar with spot colors - -$pdf->AddSpotColor('My TCPDF Dark Green', 100, 50, 80, 45); -$pdf->AddSpotColor('My TCPDF Light Yellow', 0, 0, 55, 0); -$pdf->AddSpotColor('My TCPDF Black', 0, 0, 0, 100); -$pdf->AddSpotColor('My TCPDF Red', 30, 100, 90, 10); -$pdf->AddSpotColor('My TCPDF Green', 100, 30, 100, 0); -$pdf->AddSpotColor('My TCPDF Blue', 100, 60, 10, 5); -$pdf->AddSpotColor('My TCPDF Yellow', 0, 20, 100, 0); - -$pdf->colorRegistrationBar(50, 150, 80, 10, false, true, 'ALLSPOT'); - -// CMYK registration mark -$pdf->registrationMarkCMYK(150, 155, 8); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_056.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_057.php b/tools/tcpdf/examples/example_057.php deleted file mode 100644 index c0bbe4af3..000000000 --- a/tools/tcpdf/examples/example_057.php +++ /dev/null @@ -1,270 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 057'); -$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.' 057', 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 alignment options for Cell()', '', 0, 'L', true, 0, false, false, 0); - -$pdf->setFont('helvetica', '', 11); - -// set border width -$pdf->setLineWidth(0.7); - -// set color for cell border -$pdf->setDrawColor(0,128,255); - -$pdf->setCellHeightRatio(3); - -$pdf->setXY(15, 60); - -// text on center -$pdf->Cell(30, 0, 'Top-Center', 1, $ln=0, 'C', 0, '', 0, false, 'T', 'C'); -$pdf->Cell(30, 0, 'Center-Center', 1, $ln=0, 'C', 0, '', 0, false, 'C', 'C'); -$pdf->Cell(30, 0, 'Bottom-Center', 1, $ln=0, 'C', 0, '', 0, false, 'B', 'C'); -$pdf->Cell(30, 0, 'Ascent-Center', 1, $ln=0, 'C', 0, '', 0, false, 'A', 'C'); -$pdf->Cell(30, 0, 'Baseline-Center', 1, $ln=0, 'C', 0, '', 0, false, 'L', 'C'); -$pdf->Cell(30, 0, 'Descent-Center', 1, $ln=0, 'C', 0, '', 0, false, 'D', 'C'); - - -$pdf->setXY(15, 90); - -// text on top -$pdf->Cell(30, 0, 'Top-Top', 1, $ln=0, 'C', 0, '', 0, false, 'T', 'T'); -$pdf->Cell(30, 0, 'Center-Top', 1, $ln=0, 'C', 0, '', 0, false, 'C', 'T'); -$pdf->Cell(30, 0, 'Bottom-Top', 1, $ln=0, 'C', 0, '', 0, false, 'B', 'T'); -$pdf->Cell(30, 0, 'Ascent-Top', 1, $ln=0, 'C', 0, '', 0, false, 'A', 'T'); -$pdf->Cell(30, 0, 'Baseline-Top', 1, $ln=0, 'C', 0, '', 0, false, 'L', 'T'); -$pdf->Cell(30, 0, 'Descent-Top', 1, $ln=0, 'C', 0, '', 0, false, 'D', 'T'); - - -$pdf->setXY(15, 120); - -// text on bottom -$pdf->Cell(30, 0, 'Top-Bottom', 1, $ln=0, 'C', 0, '', 0, false, 'T', 'B'); -$pdf->Cell(30, 0, 'Center-Bottom', 1, $ln=0, 'C', 0, '', 0, false, 'C', 'B'); -$pdf->Cell(30, 0, 'Bottom-Bottom', 1, $ln=0, 'C', 0, '', 0, false, 'B', 'B'); -$pdf->Cell(30, 0, 'Ascent-Bottom', 1, $ln=0, 'C', 0, '', 0, false, 'A', 'B'); -$pdf->Cell(30, 0, 'Baseline-Bottom', 1, $ln=0, 'C', 0, '', 0, false, 'L', 'B'); -$pdf->Cell(30, 0, 'Descent-Bottom', 1, $ln=0, 'C', 0, '', 0, false, 'D', 'B'); - - -// draw some reference lines -$linestyle = array('width' => 0.1, 'cap' => 'butt', 'join' => 'miter', 'dash' => '', 'phase' => 0, 'color' => array(255, 0, 0)); -$pdf->Line(15, 60, 195, 60, $linestyle); -$pdf->Line(15, 90, 195, 90, $linestyle); -$pdf->Line(15, 120, 195, 120, $linestyle); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Print an image to explain cell measures - -$pdf->Image('images/tcpdf_cell.png', 15, 160, 100, 100, 'PNG', '', '', false, 300, '', false, false, 0, false, false, false); -$legend = 'LEGEND: - -X: cell x top-left origin (top-right for RTL) -Y: cell y top-left origin (top-right for RTL) -CW: cell width -CH: cell height -LW: line width -NRL: normal line position -EXT: external line position -INT: internal line position -ML: margin left -MR: margin right -MT: margin top -MB: margin bottom -PL: padding left -PR: padding right -PT: padding top -PB: padding bottom -TW: text width -FA: font ascent -FB: font baseline -FD: font descent'; -$pdf->setFont('helvetica', '', 10); -$pdf->setCellHeightRatio(1.25); -$pdf->MultiCell(0, 0, $legend, 0, 'L', false, 1, 125, 160, true, 0, false, true, 0, 'T', false); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// CELL BORDERS - -// add a page -$pdf->AddPage(); - -$pdf->setFont('helvetica', 'B', 20); - -$pdf->Write(0, 'Example of borders for Cell()', '', 0, 'L', true, 0, false, false, 0); - -$pdf->setFont('helvetica', '', 11); - -// set border width -$pdf->setLineWidth(0.508); - -// set color for cell border -$pdf->setDrawColor(0,128,255); - -// set filling color -$pdf->setFillColor(255,255,128); - -// set cell height ratio -$pdf->setCellHeightRatio(3); - -$pdf->Cell(30, 0, '1', 1, 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(2); -$pdf->Cell(30, 0, 'LTRB', 'LTRB', 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(2); -$pdf->Cell(30, 0, 'LTR', 'LTR', 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(2); -$pdf->Cell(30, 0, 'TRB', 'TRB', 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(2); -$pdf->Cell(30, 0, 'LRB', 'LRB', 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(2); -$pdf->Cell(30, 0, 'LTB', 'LTB', 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(2); -$pdf->Cell(30, 0, 'LT', 'LT', 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(2); -$pdf->Cell(30, 0, 'TR', 'TR', 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(2); -$pdf->Cell(30, 0, 'RB', 'RB', 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(2); -$pdf->Cell(30, 0, 'LB', 'LB', 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(2); -$pdf->Cell(30, 0, 'LR', 'LR', 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(2); -$pdf->Cell(30, 0, 'TB', 'TB', 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(2); -$pdf->Cell(30, 0, 'L', 'L', 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(2); -$pdf->Cell(30, 0, 'T', 'T', 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(2); -$pdf->Cell(30, 0, 'R', 'R', 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(2); -$pdf->Cell(30, 0, 'B', 'B', 1, 'C', 1, '', 0, false, 'T', 'C'); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// ADVANCED SETTINGS FOR CELL BORDERS - -// add a page -$pdf->AddPage(); - -$pdf->setFont('helvetica', 'B', 20); - -$pdf->Write(0, 'Example of advanced border settings for Cell()', '', 0, 'L', true, 0, false, false, 0); - -$pdf->setFont('helvetica', '', 11); - -// set border width -$pdf->setLineWidth(1); - -// set color for cell border -$pdf->setDrawColor(0,128,255); - -// set filling color -$pdf->setFillColor(255,255,128); - -$border = array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 0, 0))); -$pdf->Cell(30, 0, 'LTRB', $border, 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(5); - -$border = array( -'L' => array('width' => 2, 'cap' => 'square', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 0, 0)), -'R' => array('width' => 2, 'cap' => 'square', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 0, 255)), -'T' => array('width' => 2, 'cap' => 'square', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 255, 0)), -'B' => array('width' => 2, 'cap' => 'square', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 255))); -$pdf->Cell(30, 0, 'LTRB', $border, 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(5); - -$border = array('mode' => 'ext', 'LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 0, 0))); -$pdf->Cell(30, 0, 'LTRB EXT', $border, 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(5); - -$border = array('mode' => 'int', 'LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 0, 0))); -$pdf->Cell(30, 0, 'LTRB INT', $border, 1, 'C', 1, '', 0, false, 'T', 'C'); -$pdf->Ln(5); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// reset pointer to the last page -$pdf->lastPage(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_057.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_058.php b/tools/tcpdf/examples/example_058.php deleted file mode 100644 index 583228bbc..000000000 --- a/tools/tcpdf/examples/example_058.php +++ /dev/null @@ -1,97 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 058'); -$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.' 058', 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', '', 10); - -// add a page -$pdf->AddPage(); - -// NOTE: Uncomment the following line to rasterize SVG image using the ImageMagick library. -//$pdf->setRasterizeVectorImages(true); - -$pdf->ImageSVG($file='images/testsvg.svg', $x=15, $y=30, $w='', $h='', $link='http://www.tcpdf.org', $align='', $palign='', $border=1, $fitonpage=false); - -$pdf->ImageSVG($file='images/tux.svg', $x=30, $y=100, $w='', $h=100, $link='', $align='', $palign='', $border=0, $fitonpage=false); - -$pdf->setFont('helvetica', '', 8); -$pdf->setY(195); -$txt = '© The copyright holder of the above Tux image is Larry Ewing, allows anyone to use it for any purpose, provided that the copyright holder is properly attributed. Redistribution, derivative work, commercial use, and all other use is permitted.'; -$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_058.pdf', 'D'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_059.php b/tools/tcpdf/examples/example_059.php deleted file mode 100644 index 6f05b2e8e..000000000 --- a/tools/tcpdf/examples/example_059.php +++ /dev/null @@ -1,193 +0,0 @@ -tocpage) { - // *** replace the following parent::Header() with your code for TOC page - parent::Header(); - } else { - // *** replace the following parent::Header() with your code for normal pages - parent::Header(); - } - } - - /** - * Overwrite Footer() method. - * @public - */ - public function Footer() { - if ($this->tocpage) { - // *** replace the following parent::Footer() with your code for TOC page - parent::Footer(); - } else { - // *** replace the following parent::Footer() with your code for normal pages - parent::Footer(); - } - } - -} // end of class - -// create new PDF document -$pdf = new TOC_TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); - -// set document information -$pdf->setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 059'); -$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.' 059', 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', '', 10); - -// --------------------------------------------------------- - -// create some content ... - -// add a page -$pdf->AddPage(); - -// set a bookmark for the current position -$pdf->Bookmark('Chapter 1', 0, 0, '', 'B', array(0,64,128)); - -// print a line using Cell() -$pdf->Cell(0, 10, 'Chapter 1', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Bookmark('Paragraph 1.1', 1, 0, '', '', array(128,0,0)); -$pdf->Cell(0, 10, 'Paragraph 1.1', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Bookmark('Paragraph 1.2', 1, 0, '', '', array(128,0,0)); -$pdf->Cell(0, 10, 'Paragraph 1.2', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Bookmark('Sub-Paragraph 1.2.1', 2, 0, '', 'I', array(0,128,0)); -$pdf->Cell(0, 10, 'Sub-Paragraph 1.2.1', 0, 1, 'L'); - -$pdf->AddPage(); -$pdf->Bookmark('Paragraph 1.3', 1, 0, '', '', array(128,0,0)); -$pdf->Cell(0, 10, 'Paragraph 1.3', 0, 1, 'L'); - -// add some pages and bookmarks -for ($i = 2; $i < 12; $i++) { - $pdf->AddPage(); - $pdf->Bookmark('Chapter '.$i, 0, 0, '', 'B', array(0,64,128)); - $pdf->Cell(0, 10, 'Chapter '.$i, 0, 1, 'L'); -} - - -// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - -// add a new page for TOC -$pdf->addTOCPage(); - -// write the TOC title and/or other elements on the TOC page -$pdf->setFont('times', 'B', 16); -$pdf->MultiCell(0, 0, 'Table Of Content', 0, 'C', 0, 1, '', '', true, 0); -$pdf->Ln(); -$pdf->setFont('helvetica', '', 10); - -// define styles for various bookmark levels -$bookmark_templates = array(); - -/* - * The key of the $bookmark_templates array represent the bookmark level (from 0 to n). - * The following templates will be replaced with proper content: - * #TOC_DESCRIPTION# this will be replaced with the bookmark description; - * #TOC_PAGE_NUMBER# this will be replaced with page number. - * - * NOTES: - * If you want to align the page number on the right you have to use a monospaced font like courier, otherwise you can left align using any font type. - * The following is just an example, you can get various styles by combining various HTML elements. - */ - -// A monospaced font for the page number is mandatory to get the right alignment -$bookmark_templates[0] = '
      #TOC_DESCRIPTION##TOC_PAGE_NUMBER#
      '; -$bookmark_templates[1] = '
       #TOC_DESCRIPTION##TOC_PAGE_NUMBER#
      '; -$bookmark_templates[2] = '
       #TOC_DESCRIPTION##TOC_PAGE_NUMBER#
      '; -// add other bookmark level templates here ... - -// add table of content at page 1 -// (check the example n. 45 for a text-only TOC -$pdf->addHTMLTOC(1, 'INDEX', $bookmark_templates, true, 'B', array(128,0,0)); - -// end of TOC page -$pdf->endTOCPage(); - -// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_059.pdf', 'D'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_060.php b/tools/tcpdf/examples/example_060.php deleted file mode 100644 index dcdd9cc22..000000000 --- a/tools/tcpdf/examples/example_060.php +++ /dev/null @@ -1,110 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 060'); -$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.' 060', 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', '', 20); - -// --------------------------------------------------------- - -// set page format (read source code documentation for further information) -$page_format = array( - 'MediaBox' => array ('llx' => 0, 'lly' => 0, 'urx' => 210, 'ury' => 297), - 'CropBox' => array ('llx' => 0, 'lly' => 0, 'urx' => 210, 'ury' => 297), - 'BleedBox' => array ('llx' => 5, 'lly' => 5, 'urx' => 205, 'ury' => 292), - 'TrimBox' => array ('llx' => 10, 'lly' => 10, 'urx' => 200, 'ury' => 287), - 'ArtBox' => array ('llx' => 15, 'lly' => 15, 'urx' => 195, 'ury' => 282), - 'Dur' => 3, - 'trans' => array( - 'D' => 1.5, - 'S' => 'Split', - 'Dm' => 'V', - 'M' => 'O' - ), - 'Rotate' => 90, - 'PZ' => 1, -); - -// Check the example n. 29 for viewer preferences - -// add first page --- -$pdf->AddPage('P', $page_format, false, false); -$pdf->Cell(0, 12, 'First Page', 1, 1, 'C'); - -// add second page --- -$page_format['Rotate'] = 270; -$pdf->AddPage('P', $page_format, false, false); -$pdf->Cell(0, 12, 'Second Page', 1, 1, 'C'); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_060.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_061.php b/tools/tcpdf/examples/example_061.php deleted file mode 100644 index 607547dfc..000000000 --- a/tools/tcpdf/examples/example_061.php +++ /dev/null @@ -1,267 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 061'); -$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.' 061', 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', '', 10); - -// add a page -$pdf->AddPage(); - -/* NOTE: - * ********************************************************* - * You can load external XHTML using : - * - * $html = file_get_contents('/path/to/your/file.html'); - * - * External CSS files will be automatically loaded. - * Sometimes you need to fix the path of the external CSS. - * ********************************************************* - */ - -// define some HTML content with style -$html = << - - -

      Example of XHTML + CSS

      - -

      Example of paragraph with class selector. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc.

      - -

      Example of paragraph with ID selector. Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa.

      - -
      example of DIV with border and fill. -
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. -
      text-transform LOWERCASE Lorem ipsum dolor sit amet, consectetur adipiscing elit. -
      text-transform uppercase Lorem ipsum dolor sit amet, consectetur adipiscing elit. -
      text-transform cAPITALIZE Lorem ipsum dolor sit amet, consectetur adipiscing elit. -
      - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      No.XXXXXXXX XXXXXXXXXXXX
      1.XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXXXXXX
      XXXX
      2.XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      3.XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      4.XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      XXXX
      -EOF; - -// output the HTML content -$pdf->writeHTML($html, true, false, true, false, ''); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// add a page -$pdf->AddPage(); - -$html = ' -

      HTML TIPS & TRICKS

      - -

      REMOVE CELL PADDING

      -
      $pdf->setCellPadding(0);
      -This is used to remove any additional vertical space inside a single cell of text. - -

      REMOVE TAG TOP AND BOTTOM MARGINS

      -
      $tagvs = array(\'p\' => array(0 => array(\'h\' => 0, \'n\' => 0), 1 => array(\'h\' => 0, \'n\' => 0)));
      -$pdf->setHtmlVSpace($tagvs);
      -Since the CSS margin command is not yet implemented on TCPDF, you need to set the spacing of block tags using the following method. - -

      SET LINE HEIGHT

      -
      $pdf->setCellHeightRatio(1.25);
      -You can use the following method to fine tune the line height (the number is a percentage relative to font height). - -

      CHANGE THE PIXEL CONVERSION RATIO

      -
      $pdf->setImageScale(0.47);
      -This is used to adjust the conversion ratio between pixels and document units. Increase the value to get smaller objects.
      -Since you are using pixel unit, this method is important to set theright zoom factor.

      -Suppose that you want to print a web page larger 1024 pixels to fill all the available page width.
      -An A4 page is larger 210mm equivalent to 8.268 inches, if you subtract 13mm (0.512") of margins for each side, the remaining space is 184mm (7.244 inches).
      -The default resolution for a PDF document is 300 DPI (dots per inch), so you have 7.244 * 300 = 2173.2 dots (this is the maximum number of points you can print at 300 DPI for the given width).
      -The conversion ratio is approximatively 1024 / 2173.2 = 0.47 px/dots
      -If the web page is larger 1280 pixels, on the same A4 page the conversion ratio to use is 1280 / 2173.2 = 0.59 pixels/dots'; - -// output the HTML content -$pdf->writeHTML($html, true, false, true, false, ''); - -// reset pointer to the last page -$pdf->lastPage(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_061.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_062.php b/tools/tcpdf/examples/example_062.php deleted file mode 100644 index d0bf89fe9..000000000 --- a/tools/tcpdf/examples/example_062.php +++ /dev/null @@ -1,142 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 062'); -$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.' 062', 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, 'XObject Templates', '', 0, 'C', 1, 0, false, false, 0); - -/* - * An XObject Template is a PDF block that is a self-contained - * description of any sequence of graphics objects (including path - * objects, text objects, and sampled images). - * An XObject Template may be painted multiple times, either on - * several pages or at several locations on the same page and produces - * the same results each time, subject only to the graphics state at - * the time it is invoked. - */ - - -// start a new XObject Template and set transparency group option -$template_id = $pdf->startTemplate(60, 60, true); - -// create Template content -// ................................................................... -//Start Graphic Transformation -$pdf->StartTransform(); - -// set clipping mask -$pdf->StarPolygon(30, 30, 29, 10, 3, 0, 1, 'CNZ'); - -// draw jpeg image to be clipped -$pdf->Image('images/image_demo.jpg', 0, 0, 60, 60, '', '', '', true, 72, '', false, false, 0, false, false, false); - -//Stop Graphic Transformation -$pdf->StopTransform(); - -$pdf->setXY(0, 0); - -$pdf->setFont('times', '', 40); - -$pdf->setTextColor(255, 0, 0); - -// print a text -$pdf->Cell(60, 60, 'Template', 0, 0, 'C', false, '', 0, false, 'T', 'M'); -// ................................................................... - -// end the current Template -$pdf->endTemplate(); - - -// print the selected Template various times using various transparencies - -$pdf->setAlpha(0.4); -$pdf->printTemplate($template_id, 15, 50, 20, 20, '', '', false); - -$pdf->setAlpha(0.6); -$pdf->printTemplate($template_id, 27, 62, 40, 40, '', '', false); - -$pdf->setAlpha(0.8); -$pdf->printTemplate($template_id, 55, 85, 60, 60, '', '', false); - -$pdf->setAlpha(1); -$pdf->printTemplate($template_id, 95, 125, 80, 80, '', '', false); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_062.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_063.php b/tools/tcpdf/examples/example_063.php deleted file mode 100644 index f68f4f90a..000000000 --- a/tools/tcpdf/examples/example_063.php +++ /dev/null @@ -1,133 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 063'); -$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.' 063', 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', 16); - -// add a page -$pdf->AddPage(); - -$pdf->Write(0, 'Example of Text Stretching and Spacing (tracking)', '', 0, 'L', true, 0, false, false, 0); -$pdf->Ln(5); - -// create several cells to display all cases of stretching and spacing combinations. - -$fonts = array('times', 'dejavuserif'); -$alignments = array('L' => 'LEFT', 'C' => 'CENTER', 'R' => 'RIGHT', 'J' => 'JUSTIFY'); - - -// Test all cases using direct stretching/spacing methods -foreach ($fonts as $fkey => $font) { - $pdf->setFont($font, '', 14); - foreach ($alignments as $align_mode => $align_name) { - for ($stretching = 90; $stretching <= 110; $stretching += 10) { - for ($spacing = -0.254; $spacing <= 0.254; $spacing += 0.254) { - $pdf->setFontStretching($stretching); - $pdf->setFontSpacing($spacing); - $txt = $align_name.' | Stretching = '.$stretching.'% | Spacing = '.sprintf('%+.3F', $spacing).'mm'; - $pdf->Cell(0, 0, $txt, 1, 1, $align_mode); - } - } - } - $pdf->AddPage(); -} - - -// Test all cases using CSS stretching/spacing properties -foreach ($fonts as $fkey => $font) { - $pdf->setFont($font, '', 11); - foreach ($alignments as $align_mode => $align_name) { - for ($stretching = 90; $stretching <= 110; $stretching += 10) { - for ($spacing = -0.254; $spacing <= 0.254; $spacing += 0.254) { - $html = ''.$align_name.' | Stretching = '.$stretching.'% | Spacing = '.sprintf('%+.3F', $spacing).'mm
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
      '; - $pdf->writeHTMLCell(0, 0, '', '', $html, 1, 1, false, true, $align_mode, false); - } - } - if (!(($fkey == 1) AND ($align_mode == 'J'))) { - $pdf->AddPage(); - } - } -} - - -// reset font stretching -$pdf->setFontStretching(100); - -// reset font spacing -$pdf->setFontSpacing(0); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_063.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_064.php b/tools/tcpdf/examples/example_064.php deleted file mode 100644 index 8efaf4fea..000000000 --- a/tools/tcpdf/examples/example_064.php +++ /dev/null @@ -1,178 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 064'); -$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.' 064', 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', '', 8); - - -// define some html content for testing -$txt = '

      TEST PAGE REGIONS: A no-write region is a portion of the page with a rectangular or trapezium shape that will not be covered when writing text or html code. A region is always aligned on the left or right side of the page ad is defined using a vertical segment. You can set multiple regions for the same page. You can combine several adjacent regions to approximate curved shapes. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc. -Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa. -Integer non sem eget neque mattis accumsan. Maecenas eu nisl mauris, sit amet interdum ipsum. In pharetra erat vel lectus venenatis elementum. Nulla non elit ligula, sit amet mollis urna. Morbi ut gravida est. Mauris tincidunt sem et turpis molestie malesuada. Curabitur vel nulla risus, sed mollis erat. Suspendisse vehicula accumsan purus nec varius. Donec fermentum lorem id felis sodales dictum. Quisque et dolor ipsum. Nam luctus consectetur dui vitae fermentum. Curabitur sodales consequat augue, id ultricies augue tempor ac. Aliquam ac magna id ipsum vehicula bibendum. Sed elementum congue tristique. Phasellus vel lorem eu lectus porta sodales. Etiam neque tortor, sagittis id pharetra quis, laoreet vel arcu. -Cras quam mi, ornare laoreet laoreet vel, vehicula at lacus. Maecenas a lacus accumsan augue convallis sagittis sed quis odio. Morbi sit amet turpis diam, dictum convallis urna. Cras eget interdum augue. Cras eu nisi sit amet dolor faucibus porttitor. Suspendisse potenti. Nunc vitae dolor risus, at cursus libero. Suspendisse bibendum tellus non nibh hendrerit tristique. Mauris eget orci elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porta libero non ante laoreet semper. Proin volutpat sodales mi, ac fermentum erat sagittis in. Vivamus at viverra felis. Ut pretium facilisis ante et pharetra. -Nulla facilisi. Cras varius quam eget libero aliquam vitae tincidunt leo rutrum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque a nisl massa, quis pretium urna. Proin vel porttitor tortor. Cras rhoncus congue velit in bibendum. Donec pharetra semper augue id lacinia. Quisque magna quam, hendrerit eu aliquam et, pellentesque ut tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas nulla quam, rutrum eu feugiat at, elementum eu libero. Maecenas ullamcorper leo et turpis rutrum ac laoreet eros faucibus. Phasellus condimentum lorem quis neque imperdiet quis molestie enim iaculis. Phasellus risus est, vestibulum ut convallis ultrices, dignissim nec erat. Etiam congue lobortis laoreet. Nulla ut neque sed velit dapibus semper. Quisque nec dolor id nibh eleifend iaculis. Vivamus vitae fermentum odio. Etiam malesuada quam in nulla aliquam sed convallis dui feugiat.

      '; - - -// add a page -$pdf->AddPage(); - -// print some graphic content -$pdf->Image('images/image_demo.jpg', 155, 30, 40, 40, 'JPG', '', '', true); -$pdf->Image('images/image_demo.jpg', 15, 230, 40, 40, 'JPG', '', '', true); - -// define some graphic styles -$styleA = array('width' => 0.254, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 0, 0)); -$styleB = array('width' => 0.254, 'cap' => 'butt', 'join' => 'miter', 'dash' => 3, 'color' => array(127, 127, 127)); -$pdf->setFillColor(220, 255, 220); - -// write a trapezoid with some information about no-write page regions -$pdf->Polygon(array(15,90, 57,90, 67,140, 15,140), 'DF', array($styleB, $styleA, $styleB, $styleB)); -$pdf->setXY(15, 90); -$pdf->Cell(42, 0, 'xt,yt', 0, 0, 'R', false, '', 0, false, 'T', 'T'); -$pdf->setXY(15, 140); -$pdf->Cell(52, 0, 'xb,yb', 0, 0, 'R', false, '', 0, false, 'B', 'B'); -$pdf->setXY(15, 115); -$pdf->Cell(40, 0, 'side', 0, 0, 'R', false, '', 0, false, 'B', 'B'); -$pdf->setLineStyle(array('width' => 0.254, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))); -$pdf->Arrow(60, 115, 35, 115, 2, 5, 15); - -// write a trapezoid with some information about no-write page regions -$pdf->Polygon(array(145,130, 195,130, 195,180, 155,180), 'DF', array($styleB, $styleB, $styleB, $styleA)); -$pdf->setXY(145, 130); -$pdf->Cell(42, 0, 'xt,yt', 0, 0, 'L', false, '', 0, false, 'T', 'T'); -$pdf->setXY(155, 180); -$pdf->Cell(52, 0, 'xb,yb', 0, 0, 'L', false, '', 0, false, 'B', 'B'); -$pdf->setXY(160, 155); -$pdf->Cell(30, 0, 'side', 0, 0, 'L', false, '', 0, false, 'B', 'B'); -$pdf->setLineStyle(array('width' => 0.254, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))); -$pdf->Arrow(155, 155, 180, 155, 2, 5, 15); - -// reset x,y position -$pdf->setXY(15, 30); - - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// define no-write page regions to avoid text overlapping images -/* - 'page' => page number or empy for current page - 'xt' => X top - 'yt' => Y top - 'yb' => Y bottom - 'side' => page side ('L' = left or 'R' = right) -*/ -$regions = array( -array('page' => '', 'xt' => 153, 'yt' => 30, 'xb' => 153, 'yb' => 70, 'side' => 'R'), -array('page' => '', 'xt' => 60, 'yt' => 90, 'xb' => 70, 'yb' => 140, 'side' => 'L'), -array('page' => '', 'xt' => 143, 'yt' => 130, 'xb' => 153, 'yb' => 180, 'side' => 'R'), -array('page' => '', 'xt' => 58, 'yt' => 230, 'xb' => 58, 'yb' => 270, 'side' => 'L') -); - -// set page regions, check also getPageRegions(), addPageRegion() and removePageRegion() -$pdf->setPageRegions($regions); - -// write html text -$pdf->writeHTML($txt, true, false, true, false, ''); - - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// set a circular no-write region on the second page -$regions = array( -array('page' => 2, 'xt' => 195, 'yt' => 110, 'xb' => 179.693, 'yb' => 113.045, 'side' => 'R'), -array('page' => 2, 'xt' => 179.693, 'yt' => 113.045, 'xb' => 166.716, 'yb' => 121.716, 'side' => 'R'), -array('page' => 2, 'xt' => 166.716, 'yt' => 121.716, 'xb' => 158.045, 'yb' => 134.693, 'side' => 'R'), -array('page' => 2, 'xt' => 158.045, 'yt' => 134.693, 'xb' => 155, 'yb' => 150, 'side' => 'R'), -array('page' => 2, 'xt' => 155, 'yt' => 150, 'xb' => 158.045, 'yb' => 165.307, 'side' => 'R'), -array('page' => 2, 'xt' => 158.045, 'yt' => 165.307, 'xb' => 166.716, 'yb' => 178.284, 'side' => 'R'), -array('page' => 2, 'xt' => 166.716, 'yt' => 178.284, 'xb' => 179.693, 'yb' => 186.955, 'side' => 'R'), -array('page' => 2, 'xt' => 179.693, 'yt' => 186.955, 'xb' => 195, 'yb' => 190, 'side' => 'R') -); -$pdf->setPageRegions($regions); - -$pdf->Polygon(array(195,110, 179.693,113.045, 166.716,121.716, 158.045,134.693, 155,150, 158.045,165.307, 166.716,178.284, 179.693,186.955, 195,190), 'DF'); - -$pdf->Ln(15); - -// define some html content for testing -$txt = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc. Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa. Integer non sem eget neque mattis accumsan. Maecenas eu nisl mauris, sit amet interdum ipsum. In pharetra erat vel lectus venenatis elementum. Nulla non elit ligula, sit amet mollis urna. Morbi ut gravida est. Mauris tincidunt sem et turpis molestie malesuada. Curabitur vel nulla risus, sed mollis erat. Suspendisse vehicula accumsan purus nec varius. Donec fermentum lorem id felis sodales dictum. Quisque et dolor ipsum. Nam luctus consectetur dui vitae fermentum. Curabitur sodales consequat augue, id ultricies augue tempor ac. Aliquam ac magna id ipsum vehicula bibendum. Sed elementum congue tristique. Phasellus vel lorem eu lectus porta sodales. Etiam neque tortor, sagittis id pharetra quis, laoreet vel arcu. Cras quam mi, ornare laoreet laoreet vel, vehicula at lacus. Maecenas a lacus accumsan augue convallis sagittis sed quis odio. Morbi sit amet turpis diam, dictum convallis urna. Cras eget interdum augue. Cras eu nisi sit amet dolor faucibus porttitor. Suspendisse potenti. Nunc vitae dolor risus, at cursus libero. Suspendisse bibendum tellus non nibh hendrerit tristique. Mauris eget orci elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porta libero non ante laoreet semper. Proin volutpat sodales mi, ac fermentum erat sagittis in. Vivamus at viverra felis. Ut pretium facilisis ante et pharetra. Nulla facilisi. Cras varius quam eget libero aliquam vitae tincidunt leo rutrum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque a nisl massa, quis pretium urna. Proin vel porttitor tortor. Cras rhoncus congue velit in bibendum. Donec pharetra semper augue id lacinia. Quisque magna quam, hendrerit eu aliquam et, pellentesque ut tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas nulla quam, rutrum eu feugiat at, elementum eu libero. Maecenas ullamcorper leo et turpis rutrum ac laoreet eros faucibus. Phasellus condimentum lorem quis neque imperdiet quis molestie enim iaculis. Phasellus risus est, vestibulum ut convallis ultrices, dignissim nec erat. Etiam congue lobortis laoreet. Nulla ut neque sed velit dapibus semper. Quisque nec dolor id nibh eleifend iaculis. Vivamus vitae fermentum odio. Etiam malesuada quam in nulla aliquam sed convallis dui feugiat.'."\n"; - -// write text -$pdf->MultiCell(0, 0, $txt, 0, 'J', false, 1, '', '', true, 0, false, true, 0, 'T', false); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_064.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_065.php b/tools/tcpdf/examples/example_065.php deleted file mode 100644 index 90794804c..000000000 --- a/tools/tcpdf/examples/example_065.php +++ /dev/null @@ -1,100 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 065'); -$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.' 065', 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 default font subsetting mode -$pdf->setFontSubsetting(true); - -// Set font -$pdf->setFont('helvetica', '', 14, '', true); - -// Add a page -// This method has several options, check the source code documentation for more information. -$pdf->AddPage(); - -// Set some content to print -$html = <<Example of  TCPDF  document in PDF/A-1b mode. -This document conforms to the standard PDF/A-1b (ISO 19005-1:2005). -

      Please check the source code documentation and other examples for further information (http://www.tcpdf.org).

      -

      TO IMPROVE AND EXPAND TCPDF I NEED YOUR SUPPORT, PLEASE MAKE A DONATION!

      -EOD; - -// Print text using writeHTMLCell() -$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); - -// --------------------------------------------------------- - -// Close and output PDF document -// This method has several options, check the source code documentation for more information. -$pdf->Output('example_065.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_066.php b/tools/tcpdf/examples/example_066.php deleted file mode 100644 index 41b8b4729..000000000 --- a/tools/tcpdf/examples/example_066.php +++ /dev/null @@ -1,88 +0,0 @@ - - * @license LGPL-3.0 - */ - -/** - * Creates an example PDF/A-1b document using TCPDF - * - * @abstract TCPDF - Example: PDF/A-1b mode - * @author Nicola Asuni - * @since 2021-03-26 - * @group A-1b - * @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, true); - -// set document information -$pdf->setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 066'); -$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 . ' 066', 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(__DIR__ . '/lang/eng.php')) { - require_once __DIR__ . '/lang/eng.php'; - - $pdf->setLanguageArray($l); -} - -// --------------------------------------------------------- - -// set default font subsetting mode -$pdf->setFontSubsetting(true); - -// Set font -$pdf->setFont('helvetica', '', 14, '', true); - -// Add a page -// This method has several options, check the source code documentation for more information. -$pdf->AddPage(); - -// Set some content to print -$html = <<Example of  TCPDF  document in PDF/A-1b mode. -This document conforms to the standard PDF/A-1b (ISO 19005-1:2005). -

      Please check the source code documentation and other examples for further information (http://www.tcpdf.org).

      -HTML; - -// Print text using writeHTMLCell() -$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); - -// --------------------------------------------------------- - -// Close and output PDF document -// This method has several options, check the source code documentation for more information. -$pdf->Output('example_066.pdf', 'I'); diff --git a/tools/tcpdf/examples/example_067.php b/tools/tcpdf/examples/example_067.php deleted file mode 100644 index e0262bfde..000000000 --- a/tools/tcpdf/examples/example_067.php +++ /dev/null @@ -1,223 +0,0 @@ -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 = << - - COL 1 - ROW 1
      COLSPAN 3 - COL 2 - ROW 1 - COL 3 - ROW 1 - - - COL 2 - ROW 2 - COLSPAN 2
      text line
      text line
      text line
      text line - COL 3 - ROW 2 - - - COL 3 - ROW 3 - - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -$tbl = << - - COL 1 - ROW 1
      COLSPAN 3 - COL 2 - ROW 1 - COL 3 - ROW 1 - - - COL 2 - ROW 2 - COLSPAN 2
      text line
      text line
      text line
      text line - COL 3 - ROW 2 - - - COL 3 - ROW 3 - - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -$tbl = << - - COL 1 - ROW 1
      COLSPAN 3 - COL 2 - ROW 1 - COL 3 - ROW 1 - - - COL 2 - ROW 2 - COLSPAN 2
      text line
      text line
      text line
      text line - COL 3 - ROW 2 - - - COL 3 - ROW 3 - - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -$tbl = << - - COL 1 - ROW 1
      COLSPAN 3 - COL 2 - ROW 1 - COL 3 - ROW 1 - - - COL 2 - ROW 2 - COLSPAN 2
      text line
      text line
      text line
      text line - COL 3 - ROW 2 - - - COL 3 - ROW 3 - - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -$tbl = << - - COL 1 - ROW 1
      COLSPAN 3 - COL 2 - ROW 1 - COL 3 - ROW 1 - - - COL 2 - ROW 2 - COLSPAN 2
      text line
      text line
      text line
      text line - COL 3 - ROW 2 - - - COL 3 - ROW 3 - - - -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 = << - - COL 1 - ROW 1
      COLSPAN 3 - COL 2 - ROW 1 - COL 3 - ROW 1 - - - COL 2 - ROW 2 - COLSPAN 2
      text line
      text line
      text line
      text line - COL 3 - ROW 2 - - - COL 3 - ROW 3 - - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); -// ----------------------------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_067.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/images/_blank.png b/tools/tcpdf/examples/images/_blank.png deleted file mode 100644 index 38f7b2fa5..000000000 Binary files a/tools/tcpdf/examples/images/_blank.png and /dev/null differ diff --git a/tools/tcpdf/examples/images/alpha.png b/tools/tcpdf/examples/images/alpha.png deleted file mode 100644 index 4980117de..000000000 Binary files a/tools/tcpdf/examples/images/alpha.png and /dev/null differ diff --git a/tools/tcpdf/examples/images/image_demo.jpg b/tools/tcpdf/examples/images/image_demo.jpg deleted file mode 100644 index 262bce272..000000000 Binary files a/tools/tcpdf/examples/images/image_demo.jpg and /dev/null differ diff --git a/tools/tcpdf/examples/images/image_with_alpha.png b/tools/tcpdf/examples/images/image_with_alpha.png deleted file mode 100644 index f87dc9a1b..000000000 Binary files a/tools/tcpdf/examples/images/image_with_alpha.png and /dev/null differ diff --git a/tools/tcpdf/examples/images/img.png b/tools/tcpdf/examples/images/img.png deleted file mode 100644 index 2461637e3..000000000 Binary files a/tools/tcpdf/examples/images/img.png and /dev/null differ diff --git a/tools/tcpdf/examples/images/logo_example.gif b/tools/tcpdf/examples/images/logo_example.gif deleted file mode 100644 index 010b487d9..000000000 Binary files a/tools/tcpdf/examples/images/logo_example.gif and /dev/null differ diff --git a/tools/tcpdf/examples/images/logo_example.jpg b/tools/tcpdf/examples/images/logo_example.jpg deleted file mode 100644 index 6d9b8fd80..000000000 Binary files a/tools/tcpdf/examples/images/logo_example.jpg and /dev/null differ diff --git a/tools/tcpdf/examples/images/logo_example.png b/tools/tcpdf/examples/images/logo_example.png deleted file mode 100644 index a57be4ce9..000000000 Binary files a/tools/tcpdf/examples/images/logo_example.png and /dev/null differ diff --git a/tools/tcpdf/examples/images/tcpdf_box.ai b/tools/tcpdf/examples/images/tcpdf_box.ai deleted file mode 100644 index 0c1484614..000000000 --- a/tools/tcpdf/examples/images/tcpdf_box.ai +++ /dev/null @@ -1,214 +0,0 @@ -%!PS-Adobe-3.0 EPSF -%%Creator: Adobe Illustrator -%%BoundingBox: -7 0 487 327 -%%HiResBoundingBox: -6.66162 2.44007e-05 486.662 326.648 -%AI5_FileFormat 3 -%%EndComments -%%BeginProlog -%%EndProlog -%%BeginSetup -%%EndSetup -1 XR -%AI5_BeginLayer -1 1 1 1 0 0 -1 49 80 161 Lb -(New Layer) Ln -0.620000 0.580000 0.435000 0.996000 K -[] 0 d -1.402287 w -0 j -0 J -0.263000 0.290000 0.898000 0.263000 k -72.7885 255.643 m -277.08 286.778 L -425.478 260.993 L -408.269 190.301 L -113.504 181.247 L -113.504 181.247 72.9813 241.769 72.7885 255.643 C -b -0.620000 0.580000 0.435000 0.996000 K -1 j -0.094000 0.102000 0.369000 0.016000 k -423.247 259.914 m -240.217 207.097 L -240.635 0.701168 L -397.776 116.053 L -423.247 259.914 L -b -0.620000 0.580000 0.435000 0.996000 K -0.133000 0.141000 0.541000 0.035000 k -72.1745 254.207 m -240.217 207.097 L -240.561 0.783816 L -101.054 87.946 L -72.1745 254.207 L -b -0.047000 0.059000 0.184000 0.004000 k -423.247 259.914 m -308.187 51.1553 L -396.862 116.972 L -423.247 259.914 L -f -0.620000 0.580000 0.435000 0.996000 K -0 j -0.047000 0.059000 0.184000 0.004000 k -479.312 250.415 m -423.613 260.243 L -240.385 206.966 L -314.061 186.394 L -479.312 250.415 L -b -0.620000 0.580000 0.435000 0.996000 K -0.047000 0.059000 0.184000 0.004000 k -69.9121 254.273 m -237.965 207.131 L -163.618 164.537 L -0.687544 234.686 L -69.9121 254.273 L -b -0.620000 0.580000 0.435000 0.996000 K -0.047000 0.059000 0.184000 0.004000 k -242.971 319.299 m -275.613 286.233 L -72.5703 254.295 L -16.555 296.161 L -242.971 319.299 L -b -0.620000 0.580000 0.435000 0.996000 K -0.133000 0.141000 0.541000 0.035000 k -423.496 260.684 m -275.426 286.441 L -307.326 316.69 L -462.053 292.606 L -423.496 260.684 L -b -0.196000 0.227000 0.871000 0.106000 k -75.26 254.037 m -274.806 285.371 L -227.928 211.257 L -163.396 228.836 130.937 238.701 75.26 254.037 C -f -0.620000 0.580000 0.435000 0.996000 K -1 j -0.169000 0.314000 0.424000 0.094000 k -275.528 286.329 m -274.75 216.78 L -275.528 286.329 L -b -0.031000 0.949000 0.745000 0.729000 k -285.929 160.982 m -285.929 160.982 285.078 139.734 285.078 139.734 C -285.078 139.734 275.378 135.096 275.378 135.096 C -275.378 135.096 273.058 57.6061 273.058 57.6061 C -273.058 57.6061 257.133 47.3536 257.133 47.3536 C -257.133 47.3536 258.059 126.816 258.059 126.816 C -258.059 126.816 247.186 121.618 247.186 121.618 C -247.186 121.618 247.186 144.26 247.186 144.26 C -247.186 144.26 285.929 160.982 285.929 160.982 C -F -0.031000 0.949000 0.745000 0.729000 k -320.884 135.342 m -320.884 135.342 307.279 128.129 307.279 128.129 C -307.279 128.129 308.36 144.944 308.36 144.944 C -308.681 149.948 308.724 153.011 308.483 154.097 C -308.268 155.24 307.632 155.567 306.572 155.073 C -305.368 154.512 304.553 153.381 304.135 151.687 C -303.718 149.995 303.36 146.608 303.063 141.565 C -303.063 141.565 300.477 97.6864 300.477 97.6864 C -300.22 93.3298 300.208 90.6032 300.439 89.4791 C -300.668 88.3599 301.318 88.1316 302.385 88.7881 C -303.403 89.4149 304.103 90.4684 304.487 91.9528 C -304.894 93.4524 305.253 96.6211 305.567 101.497 C -305.567 101.497 306.297 112.86 306.297 112.86 C -306.297 112.86 319.718 120.438 319.718 120.438 C -319.718 120.438 319.446 116.964 319.446 116.964 C -318.734 107.862 317.873 101.293 316.856 97.1389 C -315.864 93.0164 314.026 88.8059 311.329 84.474 C -308.636 80.1307 305.421 76.743 301.646 74.2975 C -297.651 71.7096 294.365 70.7251 291.812 71.3887 C -289.213 72.064 287.545 74.2699 286.838 78.0362 C -286.121 81.8925 285.954 88.3297 286.349 97.4441 C -286.349 97.4441 287.575 125.751 287.575 125.751 C -287.89 133.007 288.277 138.586 288.737 142.421 C -289.202 146.323 290.251 150.369 291.883 154.544 C -293.54 158.732 295.716 162.4 298.394 165.529 C -301.078 168.689 304.052 170.959 307.296 172.342 C -311.621 174.188 315.02 174.154 317.521 172.296 C -319.974 170.473 321.427 167.541 321.911 163.514 C -322.39 159.578 322.275 153.119 321.579 144.225 C -321.579 144.225 320.884 135.342 320.884 135.342 C -F -0.031000 0.949000 0.745000 0.729000 k -*u -329.084 179.607 m -329.084 179.607 342.074 185.214 342.074 185.214 C -345.446 186.669 347.94 187.235 349.586 186.932 C -351.233 186.642 352.374 185.695 353.019 184.1 C -353.677 182.527 353.999 180.418 353.991 177.777 C -354.005 175.2 353.703 171.072 353.088 165.429 C -353.088 165.429 352.244 157.683 352.244 157.683 C -351.634 152.084 350.908 147.89 350.063 145.056 C -349.22 142.228 347.957 139.718 346.265 137.514 C -344.583 135.308 342.474 133.487 339.919 132.046 C -339.919 132.046 336.736 130.25 336.736 130.25 C -336.736 130.25 333.512 96.527 333.512 96.527 C -333.512 96.527 321.545 88.8222 321.545 88.8222 C -321.545 88.8222 329.084 179.607 329.084 179.607 C -F -340.42 168.795 m -340.42 168.795 338.184 145.407 338.184 145.407 C -338.526 145.552 338.82 145.69 339.068 145.822 C -340.172 146.404 340.98 147.319 341.498 148.568 C -342.038 149.863 342.473 152.174 342.805 155.518 C -342.805 155.518 343.55 163.014 343.55 163.014 C -343.863 166.167 343.82 168.111 343.416 168.832 C -343.011 169.557 342.015 169.547 340.42 168.795 C -F -*U -0.031000 0.949000 0.745000 0.729000 k -*u -359.204 192.607 m -359.204 192.607 367.556 196.212 367.556 196.212 C -372.753 198.454 376.114 199.414 377.734 199.14 C -379.351 198.877 380.446 197.777 381.03 195.854 C -381.608 193.948 381.815 191.642 381.655 188.934 C -381.502 186.28 380.88 180.934 379.804 172.981 C -379.804 172.981 375.968 144.653 375.968 144.653 C -375.021 137.654 374.236 132.926 373.604 130.399 C -372.993 127.921 372.216 125.786 371.268 123.986 C -370.323 122.215 369.243 120.698 368.023 119.43 C -366.801 118.187 365.012 116.807 362.638 115.279 C -362.638 115.279 349.593 106.88 349.593 106.88 C -349.593 106.88 359.204 192.607 359.204 192.607 C -F -368.395 181.985 m -368.395 181.985 361.644 126.918 361.644 126.918 C -363.113 127.815 364.084 128.947 364.566 130.32 C -365.053 131.727 365.629 135.077 366.301 140.416 C -366.301 140.416 370.368 172.752 370.368 172.752 C -370.86 176.666 371.12 179.163 371.145 180.223 C -371.168 181.285 371.006 181.972 370.654 182.282 C -370.306 182.629 369.555 182.531 368.395 181.985 C -F -*U -0.031000 0.949000 0.745000 0.729000 k -387.58 204.854 m -387.58 204.854 403.348 211.659 403.348 211.659 C -403.348 211.659 400.803 195.062 400.803 195.062 C -400.803 195.062 394.579 192.087 394.579 192.087 C -394.579 192.087 392.296 176.619 392.296 176.619 C -392.296 176.619 397.801 179.482 397.801 179.482 C -397.801 179.482 395.533 164.634 395.533 164.634 C -395.533 164.634 390.075 161.574 390.075 161.574 C -390.075 161.574 385.406 129.937 385.406 129.937 C -385.406 129.937 376.374 124.122 376.374 124.122 C -376.374 124.122 387.58 204.854 387.58 204.854 C -F -LB -%AI5_EndLayer-- -%AI5_BeginLayer -1 1 1 1 0 0 -1 49 80 161 Lb -(MasterLayer 1) Ln -LB -%AI5_EndLayer-- -%%Trailer -%%EOF diff --git a/tools/tcpdf/examples/images/tcpdf_box.svg b/tools/tcpdf/examples/images/tcpdf_box.svg deleted file mode 100644 index 8c29e64ab..000000000 --- a/tools/tcpdf/examples/images/tcpdf_box.svg +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/tools/tcpdf/examples/images/tcpdf_cell.png b/tools/tcpdf/examples/images/tcpdf_cell.png deleted file mode 100644 index 2e3e92ccb..000000000 Binary files a/tools/tcpdf/examples/images/tcpdf_cell.png and /dev/null differ diff --git a/tools/tcpdf/examples/images/tcpdf_logo.jpg b/tools/tcpdf/examples/images/tcpdf_logo.jpg deleted file mode 100644 index 257f8fb6d..000000000 Binary files a/tools/tcpdf/examples/images/tcpdf_logo.jpg and /dev/null differ diff --git a/tools/tcpdf/examples/images/tcpdf_signature.png b/tools/tcpdf/examples/images/tcpdf_signature.png deleted file mode 100644 index 64caa51fe..000000000 Binary files a/tools/tcpdf/examples/images/tcpdf_signature.png and /dev/null differ diff --git a/tools/tcpdf/examples/images/testsvg.svg b/tools/tcpdf/examples/images/testsvg.svg deleted file mode 100644 index fd8314e34..000000000 --- a/tools/tcpdf/examples/images/testsvg.svg +++ /dev/null @@ -1,328 +0,0 @@ - - - - - TCPDF SVG EXAMPLE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - www.tcpdf.org - - - - - - - - SVG - diff --git a/tools/tcpdf/examples/images/tux.svg b/tools/tcpdf/examples/images/tux.svg deleted file mode 100644 index de8c86968..000000000 --- a/tools/tcpdf/examples/images/tux.svg +++ /dev/null @@ -1,1487 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/tcpdf/examples/index.php b/tools/tcpdf/examples/index.php deleted file mode 100644 index d865689b1..000000000 --- a/tools/tcpdf/examples/index.php +++ /dev/null @@ -1,117 +0,0 @@ -'; -?> - - - - - -TCPDF Examples - - - - - - - - -

      TCPDF Examples

      - -

      PDF

      - -
        -
      1. Simple PDF with default Header and Footer: [PDF]
      2. -
      3. Simple PDF without Header and Footer: [PDF]
      4. -
      5. Custom Header and Footer: [PDF]
      6. -
      7. Cell stretching: [PDF]
      8. -
      9. Multicell: [PDF]
      10. -
      11. WriteHTML and RTL support: [PDF]
      12. -
      13. Independent columns with WriteHTMLCell: [PDF]
      14. -
      15. External UTF-8 text file: [PDF]
      16. -
      17. Image: [PDF]
      18. -
      19. Multiple columns: [PDF]
      20. -
      21. Colored Tables: [PDF]
      22. -
      23. Graphic Functions: [PDF]
      24. -
      25. Graphic Transformations: [PDF]
      26. -
      27. Javascript and Forms: [PDF]
      28. -
      29. Bookmarks (Table of Content): [PDF]
      30. -
      31. Document Encryption: [PDF]
      32. -
      33. Independent columns with MultiCell: [PDF]
      34. -
      35. Persian and Arabic language on RTL document: [PDF]
      36. -
      37. Non unicode / Alternative config file: [PDF]
      38. -
      39. Multicell complex alignment: [PDF]
      40. -
      41. writeHTML alignment: [PDF]
      42. -
      43. CMYK colors: [PDF]
      44. -
      45. Page Groups: [PDF]
      46. -
      47. Object Visibility and Layers: [PDF]
      48. -
      49. Object Transparency: [PDF]
      50. -
      51. Text Rendering Modes and Text Clipping: [PDF]
      52. -
      53. 1D Barcodes: [PDF]
      54. -
      55. Multiple page formats: [PDF]
      56. -
      57. Set PDF viewer display preferences: [PDF]
      58. -
      59. Colour gradients: [PDF]
      60. -
      61. Pie Chart Graphic: [PDF]
      62. -
      63. EPS/AI vectorial image: [PDF]
      64. -
      65. Mixed font types (TrueType Unicode, core, CID-0): [PDF]
      66. -
      67. Clipping masks: [PDF]
      68. -
      69. Line styles with cells and multicells: [PDF]
      70. -
      71. Text Annotations: [PDF]
      72. -
      73. Spot Colors: [PDF]
      74. -
      75. NON-embedded CID-0 CJK font: [PDF]
      76. -
      77. HTML Justification: [PDF]
      78. -
      79. Booklet (double-sided pages): [PDF]
      80. -
      81. File attachment: [PDF]
      82. -
      83. Image with Alpha Channel Transparency: [PDF]
      84. -
      85. Disk caching: [PDF]
      86. -
      87. Move, Copy and Delete page: [PDF]
      88. -
      89. Table Of Content with Bookmarks: [PDF]
      90. -
      91. Text hyphenation: [PDF]
      92. -
      93. Transactions and UNDO: [PDF]
      94. -
      95. Table header and rowspan: [PDF]
      96. -
      97. TCPDF methods in HTML: [PDF]
      98. -
      99. 2D Barcode (QR-Code, Datamatrix ECC200 and PDF417): [PDF]
      100. -
      101. Full page background: [PDF]
      102. -
      103. Digital Signature Certification: [PDF]
      104. -
      105. Javascript functions: [PDF]
      106. -
      107. XHTML Form: [PDF]
      108. -
      109. Font Dump: [PDF]
      110. -
      111. Crop Marks and Registration Marks: [PDF]
      112. -
      113. Cell vertical alignments and borders: [PDF]
      114. -
      115. SVG Image: [PDF]
      116. -
      117. Table Of Content with HTML templates: [PDF]
      118. -
      119. Advanced page settings: [PDF]
      120. -
      121. XHTML + CSS: [PDF]
      122. -
      123. XObject Templates: [PDF]
      124. -
      125. Text stretching and spacing (tracking/kerning): [PDF]
      126. -
      127. No-write page regions: [PDF]
      128. -
      129. PDF/A-1b (ISO 19005-1:2005) document: [PDF]
      130. -
      131. Using WriteHTMLCell: [PDF]
      132. -
      133. Shorthand border styles including !important: [PDF]
      134. -
      - -

      Barcodes

      - -
        -
      1. 1D barcode HTML format [HTML]
      2. -
      3. 1D barcode PNG format [PNG]
      4. -
      5. 1D barcode SVG format [SVG]
      6. -
      7. 1D barcode SVG INLINE format [SVG INLINE]
      8. - -
      9. 2D datamatrix barcode HTML format [HTML]
      10. -
      11. 2D datamatrix barcode PNG format [PNG]
      12. -
      13. 2D datamatrix barcode SVG format [SVG]
      14. -
      15. 2D datamatrix barcode SVG INLINE format [SVG INLINE]
      16. - -
      17. 2D pdf417 barcode HTML format [HTML]
      18. -
      19. 2D pdf417 barcode PNG format [PNG]
      20. -
      21. 2D pdf417 barcode SVG format [SVG]
      22. -
      23. 2D pdf417 barcode SVG INLINE format [SVG INLINE]
      24. - -
      25. 2D qrcode barcode HTML format [HTML]
      26. -
      27. 2D qrcode barcode PNG format [PNG]
      28. -
      29. 2D qrcode barcode SVG format [SVG]
      30. -
      31. 2D qrcode barcode SVG INLINE format [SVG INLINE]
      32. -
      - - - diff --git a/tools/tcpdf/examples/lang/afr.php b/tools/tcpdf/examples/lang/afr.php deleted file mode 100644 index 367b7e87f..000000000 --- a/tools/tcpdf/examples/lang/afr.php +++ /dev/null @@ -1,44 +0,0 @@ - + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. @@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see -. +. The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -. +. diff --git a/tools/tcpdf/fonts/freefont-20100919/CREDITS b/tools/tcpdf/fonts/freefont-20100919/CREDITS index 0b69784b5..e4a8b634e 100644 --- a/tools/tcpdf/fonts/freefont-20100919/CREDITS +++ b/tools/tcpdf/fonts/freefont-20100919/CREDITS @@ -331,7 +331,7 @@ a set of TTF fonts for nine Indian scripts (Devanagari, Gujarati, Telugu, Tamil, Malayalam, Kannada, Bengali, Oriya, and Gurumukhi) under the GNU General Public License (GPL). You can download the fonts from the Free Software Foundation of India WWW site -(http://www.gnu.org.in/akruti-fonts/) or from the Akruti website. +(https://www.gnu.org.in/akruti-fonts/) or from the Akruti website. For any further information or assistance regarding these fonts, please contact mssridhar AT vsnl.com. diff --git a/tools/tcpdf/fonts/freefont-20120503/COPYING b/tools/tcpdf/fonts/freefont-20120503/COPYING index 94a9ed024..ae0725d80 100644 --- a/tools/tcpdf/fonts/freefont-20120503/COPYING +++ b/tools/tcpdf/fonts/freefont-20120503/COPYING @@ -1,7 +1,7 @@ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. @@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see -. +. The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -. +. diff --git a/tools/tcpdf/fonts/freefont-20120503/CREDITS b/tools/tcpdf/fonts/freefont-20120503/CREDITS index f4430ecf9..bc078aacc 100644 --- a/tools/tcpdf/fonts/freefont-20120503/CREDITS +++ b/tools/tcpdf/fonts/freefont-20120503/CREDITS @@ -336,7 +336,7 @@ a set of TTF fonts for nine Indian scripts (Devanagari, Gujarati, Telugu, Tamil, Malayalam, Kannada, Bengali, Oriya, and Gurumukhi) under the GNU General Public License (GPL). You can download the fonts from the Free Software Foundation of India WWW site -(http://www.gnu.org.in/akruti-fonts/) or from the Akruti website. +(https://www.gnu.org.in/akruti-fonts/) or from the Akruti website. For any further information or assistance regarding these fonts, please contact mssridhar AT vsnl.com. diff --git a/tools/tcpdf/fonts/freefont-20120503/README b/tools/tcpdf/fonts/freefont-20120503/README index d83f4a945..daf679e67 100644 --- a/tools/tcpdf/fonts/freefont-20120503/README +++ b/tools/tcpdf/fonts/freefont-20120503/README @@ -30,7 +30,7 @@ FreeFont covers the following character ranges * geometrical shapes, box drawing * musical symbols, gaming symbols, miscellaneous symbols etc. -For more detail see +For more detail see Editing ------- @@ -108,7 +108,7 @@ Further information ------------------- Home page of GNU FreeFont: - http://www.gnu.org/software/freefont/ + https://www.gnu.org/software/freefont/ More information is at the main project page of Free UCS scalable fonts: http://savannah.gnu.org/projects/freefont/ diff --git a/tools/tcpdf/fonts/freefont-20120503/TROUBLESHOOTING b/tools/tcpdf/fonts/freefont-20120503/TROUBLESHOOTING index a7af22255..0639198ac 100644 --- a/tools/tcpdf/fonts/freefont-20120503/TROUBLESHOOTING +++ b/tools/tcpdf/fonts/freefont-20120503/TROUBLESHOOTING @@ -27,7 +27,7 @@ a different font. First double-check that the font in question really contains the character in question. If you don't have font development software, this can be tricky. In the case of FreeFont, you can check if a given character -range is supported: +range is supported: Next double-check that your application (web browser, text editor, etc) has indeed been properly instructed to use the font. diff --git a/tools/tcpdf/include/barcodes/datamatrix.php b/tools/tcpdf/include/barcodes/datamatrix.php index d1cc6d2a9..77822fdf1 100644 --- a/tools/tcpdf/include/barcodes/datamatrix.php +++ b/tools/tcpdf/include/barcodes/datamatrix.php @@ -5,9 +5,9 @@ // Begin : 2010-06-07 // Last Update : 2014-05-06 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2010-2014 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2010-2014 2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- diff --git a/tools/tcpdf/include/barcodes/pdf417.php b/tools/tcpdf/include/barcodes/pdf417.php index bda24822f..4c9a4b3d1 100644 --- a/tools/tcpdf/include/barcodes/pdf417.php +++ b/tools/tcpdf/include/barcodes/pdf417.php @@ -5,9 +5,9 @@ // Begin : 2010-06-03 // Last Update : 2014-04-25 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2010-2013 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2010-2013 2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- diff --git a/tools/tcpdf/include/barcodes/qrcode.php b/tools/tcpdf/include/barcodes/qrcode.php index 1a64a4cb5..72cbf15e8 100644 --- a/tools/tcpdf/include/barcodes/qrcode.php +++ b/tools/tcpdf/include/barcodes/qrcode.php @@ -5,9 +5,9 @@ // Begin : 2010-03-22 // Last Update : 2012-07-25 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2010-2012 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2010-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- diff --git a/tools/tcpdf/include/tcpdf_colors.php b/tools/tcpdf/include/tcpdf_colors.php index 5a51594c3..fc5aeb08f 100644 --- a/tools/tcpdf/include/tcpdf_colors.php +++ b/tools/tcpdf/include/tcpdf_colors.php @@ -5,9 +5,9 @@ // Begin : 2002-04-09 // Last Update : 2014-04-25 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2002-2013 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2002-2013 2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- @@ -275,7 +275,7 @@ class TCPDF_COLORS { $color = strtolower($color); // check for javascript color array syntax if (strpos($color, '[') !== false) { - if (preg_match('/[\[][\"\'](t|g|rgb|cmyk)[\"\'][\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\]]/', $color, $m) > 0) { + if (preg_match('/[\[][\"\'](t|g|rgba|rgb|cmyk)[\"\'][\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\]]/', $color, $m) > 0) { $returncolor = array(); switch ($m[1]) { case 'cmyk': { @@ -286,7 +286,8 @@ class TCPDF_COLORS { $returncolor['K'] = max(0, min(100, (floatval($m[5]) * 100))); break; } - case 'rgb': { + case 'rgb': + case 'rgba': { // RGB $returncolor['R'] = max(0, min(255, (floatval($m[2]) * 255))); $returncolor['G'] = max(0, min(255, (floatval($m[3]) * 255))); @@ -317,6 +318,25 @@ class TCPDF_COLORS { if (strlen($color) == 0) { return $defcol; } + // RGBA ARRAY + if (substr($color, 0, 4) == 'rgba') { + $codes = substr($color, 5); + $codes = str_replace(')', '', $codes); + $returncolor = explode(',', $codes); + // remove alpha component + array_pop($returncolor); + foreach ($returncolor as $key => $val) { + if (strpos($val, '%') > 0) { + // percentage + $returncolor[$key] = (255 * intval($val) / 100); + } else { + $returncolor[$key] = intval($val); /* floatize */ + } + // normalize value + $returncolor[$key] = max(0, min(255, $returncolor[$key])); + } + return $returncolor; + } // RGB ARRAY if (substr($color, 0, 3) == 'rgb') { $codes = substr($color, 4); diff --git a/tools/tcpdf/include/tcpdf_filters.php b/tools/tcpdf/include/tcpdf_filters.php index 3009cff7c..96be66f5d 100644 --- a/tools/tcpdf/include/tcpdf_filters.php +++ b/tools/tcpdf/include/tcpdf_filters.php @@ -5,9 +5,9 @@ // Begin : 2011-05-23 // Last Update : 2014-04-25 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2011-2013 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2011-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // diff --git a/tools/tcpdf/include/tcpdf_font_data.php b/tools/tcpdf/include/tcpdf_font_data.php index 974e72ec7..d7eae2f30 100644 --- a/tools/tcpdf/include/tcpdf_font_data.php +++ b/tools/tcpdf/include/tcpdf_font_data.php @@ -5,9 +5,9 @@ // Begin : 2008-01-01 // Last Update : 2013-04-01 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2008-2013 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2008-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- diff --git a/tools/tcpdf/include/tcpdf_fonts.php b/tools/tcpdf/include/tcpdf_fonts.php index f4518d9ef..1fc24f5af 100644 --- a/tools/tcpdf/include/tcpdf_fonts.php +++ b/tools/tcpdf/include/tcpdf_fonts.php @@ -1,13 +1,13 @@ . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- @@ -42,7 +42,7 @@ * @class TCPDF_FONTS * Font methods for TCPDF library. * @package com.tecnick.tcpdf - * @version 1.1.0 + * @version 1.1.1 * @author Nicola Asuni - info@tecnick.com */ class TCPDF_FONTS { @@ -191,29 +191,30 @@ class TCPDF_FONTS { fclose($fp); // get font info $fmetric['Flags'] = $flags; - preg_match ('#/FullName[\s]*\(([^\)]*)#', $font, $matches); + preg_match ('#/FullName[\s]*+\(([^\)]*+)#', $font, $matches); $fmetric['name'] = preg_replace('/[^a-zA-Z0-9_\-]/', '', $matches[1]); - preg_match('#/FontBBox[\s]*{([^}]*)#', $font, $matches); - $fmetric['bbox'] = trim($matches[1]); - $bv = explode(' ', $fmetric['bbox']); - $fmetric['Ascent'] = intval($bv[3]); - $fmetric['Descent'] = intval($bv[1]); - preg_match('#/ItalicAngle[\s]*([0-9\+\-]*)#', $font, $matches); + preg_match('#/FontBBox[\s]*+{([^}]*+)#', $font, $matches); + $rawbvl = explode(' ', trim($matches[1])); + $bvl = [(int) $rawbvl[0], (int) $rawbvl[1], (int) $rawbvl[2], (int) $rawbvl[3]]; + $fmetric['bbox'] = implode(' ', $bvl); + $fmetric['Ascent'] = $bvl[3]; + $fmetric['Descent'] = $bvl[1]; + preg_match('#/ItalicAngle[\s]*+([0-9\+\-]*+)#', $font, $matches); $fmetric['italicAngle'] = intval($matches[1]); if ($fmetric['italicAngle'] != 0) { $fmetric['Flags'] |= 64; } - preg_match('#/UnderlinePosition[\s]*([0-9\+\-]*)#', $font, $matches); + preg_match('#/UnderlinePosition[\s]*+([0-9\+\-]*+)#', $font, $matches); $fmetric['underlinePosition'] = intval($matches[1]); - preg_match('#/UnderlineThickness[\s]*([0-9\+\-]*)#', $font, $matches); + preg_match('#/UnderlineThickness[\s]*+([0-9\+\-]*+)#', $font, $matches); $fmetric['underlineThickness'] = intval($matches[1]); - preg_match('#/isFixedPitch[\s]*([^\s]*)#', $font, $matches); + preg_match('#/isFixedPitch[\s]*+([^\s]*+)#', $font, $matches); if ($matches[1] == 'true') { $fmetric['Flags'] |= 1; } // get internal map $imap = array(); - if (preg_match_all('#dup[\s]([0-9]+)[\s]*/([^\s]*)[\s]put#sU', $font, $fmap, PREG_SET_ORDER) > 0) { + if (preg_match_all('#dup[\s]([0-9]+)[\s]*+/([^\s]*+)[\s]put#sU', $font, $fmap, PREG_SET_ORDER) > 0) { foreach ($fmap as $v) { $imap[$v[2]] = $v[1]; } @@ -229,22 +230,22 @@ class TCPDF_FONTS { $eplain .= chr($chr ^ ($r >> 8)); $r = ((($chr + $r) * $c1 + $c2) % 65536); } - if (preg_match('#/ForceBold[\s]*([^\s]*)#', $eplain, $matches) > 0) { + if (preg_match('#/ForceBold[\s]*+([^\s]*+)#', $eplain, $matches) > 0) { if ($matches[1] == 'true') { $fmetric['Flags'] |= 0x40000; } } - if (preg_match('#/StdVW[\s]*\[([^\]]*)#', $eplain, $matches) > 0) { + if (preg_match('#/StdVW[\s]*+\[([^\]]*+)#', $eplain, $matches) > 0) { $fmetric['StemV'] = intval($matches[1]); } else { $fmetric['StemV'] = 70; } - if (preg_match('#/StdHW[\s]*\[([^\]]*)#', $eplain, $matches) > 0) { + if (preg_match('#/StdHW[\s]*+\[([^\]]*+)#', $eplain, $matches) > 0) { $fmetric['StemH'] = intval($matches[1]); } else { $fmetric['StemH'] = 30; } - if (preg_match('#/BlueValues[\s]*\[([^\]]*)#', $eplain, $matches) > 0) { + if (preg_match('#/BlueValues[\s]*+\[([^\]]*+)#', $eplain, $matches) > 0) { $bv = explode(' ', $matches[1]); if (count($bv) >= 6) { $v1 = intval($bv[2]); @@ -265,7 +266,7 @@ class TCPDF_FONTS { $fmetric['CapHeight'] = 700; } // get the number of random bytes at the beginning of charstrings - if (preg_match('#/lenIV[\s]*([0-9]*)#', $eplain, $matches) > 0) { + if (preg_match('#/lenIV[\s]*+([\d]*+)#', $eplain, $matches) > 0) { $lenIV = intval($matches[1]); } else { $lenIV = 4; @@ -273,7 +274,7 @@ class TCPDF_FONTS { $fmetric['Leading'] = 0; // get charstring data $eplain = substr($eplain, (strpos($eplain, '/CharStrings') + 1)); - preg_match_all('#/([A-Za-z0-9\.]*)[\s][0-9]+[\s]RD[\s](.*)[\s]ND#sU', $eplain, $matches, PREG_SET_ORDER); + preg_match_all('#/([A-Za-z0-9\.]*+)[\s][0-9]+[\s]RD[\s](.*)[\s]ND#sU', $eplain, $matches, PREG_SET_ORDER); if (!empty($enc) AND isset(TCPDF_FONT_DATA::$encmap[$enc])) { $enc_map = TCPDF_FONT_DATA::$encmap[$enc]; } else { @@ -1383,7 +1384,7 @@ class TCPDF_FONTS { } // set checkSumAdjustment on head table $checkSumAdjustment = 0xB1B0AFBA - self::_getTTFtableChecksum($font, strlen($font)); - $font = substr($font, 0, $table['head']['offset'] + $offset + 8).pack('N', $checkSumAdjustment).substr($font, $table['head']['offset'] + $offset + 12); + $font = substr($font, 0, $table['head']['offset'] + $offset + 4).pack('N', $checkSumAdjustment).substr($font, $table['head']['offset'] + $offset + 8); return $font; } diff --git a/tools/tcpdf/include/tcpdf_images.php b/tools/tcpdf/include/tcpdf_images.php index 6f2860c60..2d8b96e62 100644 --- a/tools/tcpdf/include/tcpdf_images.php +++ b/tools/tcpdf/include/tcpdf_images.php @@ -5,9 +5,9 @@ // Begin : 2002-08-03 // Last Update : 2014-11-15 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2002-2014 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2002-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -126,7 +126,9 @@ class TCPDF_IMAGES { // create temporary PNG image imagepng($image, $tempfile); // remove image from memory - imagedestroy($image); + if (PHP_VERSION_ID < 80000) { + imagedestroy($image); + } // get PNG image data $retvars = self::_parsepng($tempfile); // tidy up by removing temporary image @@ -145,7 +147,9 @@ class TCPDF_IMAGES { */ public static function _toJPEG($image, $quality, $tempfile) { imagejpeg($image, $tempfile, $quality); - imagedestroy($image); + if (PHP_VERSION_ID < 80000) { + imagedestroy($image); + } $retvars = self::_parsejpeg($tempfile); // tidy up by removing temporary image unlink($tempfile); @@ -270,12 +274,12 @@ class TCPDF_IMAGES { return 'pngalpha'; } if (ord(fread($f, 1)) != 0) { - // Unknown compression method + // Unknownn compression method fclose($f); return false; } if (ord(fread($f, 1)) != 0) { - // Unknown filter method + // Unknownn filter method fclose($f); return false; } @@ -327,7 +331,7 @@ class TCPDF_IMAGES { } // get compression method if (ord(fread($f, 1)) != 0) { - // Unknown filter method + // Unknownn filter method fclose($f); return false; } diff --git a/tools/tcpdf/include/tcpdf_static.php b/tools/tcpdf/include/tcpdf_static.php index 16828944c..86dbad577 100644 --- a/tools/tcpdf/include/tcpdf_static.php +++ b/tools/tcpdf/include/tcpdf_static.php @@ -1,13 +1,13 @@ * @package com.tecnick.tcpdf * @author Nicola Asuni - * @version 1.1.2 + * @version 1.1.5 */ /** @@ -46,7 +46,7 @@ * Static methods used by the TCPDF class. * @package com.tecnick.tcpdf * @brief PHP class for generating PDF documents without requiring external extensions. - * @version 1.1.1 + * @version 1.1.5 * @author Nicola Asuni - info@tecnick.com */ class TCPDF_STATIC { @@ -55,7 +55,7 @@ class TCPDF_STATIC { * Current TCPDF version. * @private static */ - private static $tcpdf_version = '6.7.8'; + private static $tcpdf_version = '6.11.3'; /** * String alias for total number of pages. @@ -106,6 +106,31 @@ class TCPDF_STATIC { */ public static $pageboxes = array('MediaBox', 'CropBox', 'BleedBox', 'TrimBox', 'ArtBox'); + /** + * Array of default cURL options for curl_setopt_array. + * + * @var array cURL options. + */ + protected const CURLOPT_DEFAULT = [ + CURLOPT_CONNECTTIMEOUT => 5, + CURLOPT_MAXREDIRS => 5, + CURLOPT_PROTOCOLS => CURLPROTO_HTTPS | CURLPROTO_HTTP | CURLPROTO_FTP | CURLPROTO_FTPS, + CURLOPT_SSL_VERIFYHOST => 2, + CURLOPT_SSL_VERIFYPEER => true, + CURLOPT_TIMEOUT => 30, + CURLOPT_USERAGENT => 'tcpdf', + ]; + + /** + * Array of fixed cURL options for curl_setopt_array. + * + * @var array cURL options. + */ + protected const CURLOPT_FIXED = [ + CURLOPT_FAILONERROR => true, + CURLOPT_RETURNTRANSFER => true, + ]; + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /** @@ -467,7 +492,7 @@ class TCPDF_STATIC { * @param string $last_enc_key_c Reference to last RC4 computed key. * @return string encrypted text * @since 2.0.000 (2008-01-02) - * @author Klemen Vodopivec, Nicola Asuni + * @author Klemen Vodopivec,2026 Nicola Asuni * @public static */ public static function _RC4($key, $text, &$last_enc_key, &$last_enc_key_c) { @@ -1823,26 +1848,24 @@ class TCPDF_STATIC { */ public static function url_exists($url) { $crs = curl_init(); - // encode query params in URL to get right response form the server - $url = self::encodeUrlQuery($url); - curl_setopt($crs, CURLOPT_URL, $url); - curl_setopt($crs, CURLOPT_NOBODY, true); - curl_setopt($crs, CURLOPT_FAILONERROR, true); - if ((ini_get('open_basedir') == '') && (!ini_get('safe_mode'))) { - curl_setopt($crs, CURLOPT_FOLLOWLOCATION, true); - } - curl_setopt($crs, CURLOPT_CONNECTTIMEOUT, 5); - curl_setopt($crs, CURLOPT_TIMEOUT, 30); - curl_setopt($crs, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($crs, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt($crs, CURLOPT_USERAGENT, 'tc-lib-file'); - curl_setopt($crs, CURLOPT_MAXREDIRS, 5); - if (defined('CURLOPT_PROTOCOLS')) { - curl_setopt($crs, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS | CURLPROTO_HTTP | CURLPROTO_FTP | CURLPROTO_FTPS); - } + $curlopts = []; + if ( + (ini_get('open_basedir') == '') + && (ini_get('safe_mode') === '' + || ini_get('safe_mode') === false) + ) { + $curlopts[CURLOPT_FOLLOWLOCATION] = true; + } + $curlopts = array_replace($curlopts, self::CURLOPT_DEFAULT); + $curlopts = array_replace($curlopts, K_CURLOPTS); + $curlopts = array_replace($curlopts, self::CURLOPT_FIXED); + $curlopts[CURLOPT_URL] = $url; + curl_setopt_array($crs, $curlopts); curl_exec($crs); $code = curl_getinfo($crs, CURLINFO_HTTP_CODE); - curl_close($crs); + if (PHP_VERSION_ID < 80000) { + curl_close($crs); + } return ($code == 200); } @@ -1960,23 +1983,23 @@ class TCPDF_STATIC { ) { // try to get remote file data using cURL $crs = curl_init(); - curl_setopt($crs, CURLOPT_URL, $path); - curl_setopt($crs, CURLOPT_FAILONERROR, true); - curl_setopt($crs, CURLOPT_RETURNTRANSFER, true); - if ((ini_get('open_basedir') == '') && (!ini_get('safe_mode'))) { - curl_setopt($crs, CURLOPT_FOLLOWLOCATION, true); - } - curl_setopt($crs, CURLOPT_CONNECTTIMEOUT, 5); - curl_setopt($crs, CURLOPT_TIMEOUT, 30); - curl_setopt($crs, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($crs, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt($crs, CURLOPT_USERAGENT, 'tc-lib-file'); - curl_setopt($crs, CURLOPT_MAXREDIRS, 5); - if (defined('CURLOPT_PROTOCOLS')) { - curl_setopt($crs, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS | CURLPROTO_HTTP | CURLPROTO_FTP | CURLPROTO_FTPS); + $curlopts = []; + if ( + (ini_get('open_basedir') == '') + && (ini_get('safe_mode') === '' + || ini_get('safe_mode') === false) + ) { + $curlopts[CURLOPT_FOLLOWLOCATION] = true; } + $curlopts = array_replace($curlopts, self::CURLOPT_DEFAULT); + $curlopts = array_replace($curlopts, K_CURLOPTS); + $curlopts = array_replace($curlopts, self::CURLOPT_FIXED); + $curlopts[CURLOPT_URL] = $url; + curl_setopt_array($crs, $curlopts); $ret = curl_exec($crs); - curl_close($crs); + if (PHP_VERSION_ID < 80000) { + curl_close($crs); + } if ($ret !== false) { return $ret; } @@ -2633,7 +2656,6 @@ class TCPDF_STATIC { return $page_mode; } - } // END OF TCPDF_STATIC CLASS //============================================================+ diff --git a/tools/tcpdf/tcpdf.php b/tools/tcpdf/tcpdf.php index 3404c52b3..b369532dc 100644 --- a/tools/tcpdf/tcpdf.php +++ b/tools/tcpdf/tcpdf.php @@ -1,13 +1,13 @@ * @package com.tecnick.tcpdf * @author Nicola Asuni - * @version 6.7.8 + * @version 6.11.3 */ // TCPDF configuration @@ -128,7 +128,7 @@ require_once(dirname(__FILE__).'/include/tcpdf_static.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 6.7.8 + * @version 6.11.3 * @author Nicola Asuni - info@tecnick.com * @IgnoreAnnotation("protected") * @IgnoreAnnotation("public") @@ -1131,7 +1131,7 @@ class TCPDF { protected $opencell = true; /** - * Array of files to embedd. + * Array of files to embed. * @protected * @since 4.4.000 (2008-12-07) */ @@ -1810,6 +1810,13 @@ class TCPDF { */ protected $custom_xmp_rdf = ''; + /** + * Custom XMP RDF pdfaextension data. + * @protected + * @since 6.9.0 (2025-02-11) + */ + protected $custom_xmp_rdf_pdfaExtension = ''; + /** * Overprint mode array. * (Check the "Entries in a Graphics State Parameter Dictionary" on PDF 32000-1:2008). @@ -2900,14 +2907,7 @@ class TCPDF { * @since 1.4 */ public function setCompression($compress=true) { - $this->compress = false; - if (function_exists('gzcompress')) { - if ($compress) { - if ( !$this->pdfa_mode) { - $this->compress = true; - } - } - } + $this->compress = ($compress && function_exists('gzcompress')); } /** @@ -3007,6 +3007,7 @@ class TCPDF { public function Error($msg) { // unset all class variables $this->_destroy(true); + $msg = htmlspecialchars($msg, ENT_QUOTES, 'UTF-8'); if (defined('K_TCPDF_THROW_EXCEPTION_ERROR') AND !K_TCPDF_THROW_EXCEPTION_ERROR) { die('TCPDF ERROR: '.$msg); } else { @@ -4251,7 +4252,7 @@ class TCPDF { * @param string $style Font style. Possible values are (case insensitive):
      • empty string: regular (default)
      • B: bold
      • I: italic
      • BI or IB: bold italic
      * @param string $fontfile The font definition file. By default, the name is built from the family and style, in lower case with no spaces. * @return array|false array containing the font data, or false in case of error. - * @param mixed $subset if true embedd only a subset of the font (stores only the information related to the used characters); if false embedd full font; if 'default' uses the default value set using setFontSubsetting(). This option is valid only for TrueTypeUnicode fonts. If you want to enable users to change the document, set this parameter to false. If you subset the font, the person who receives your PDF would need to have your same font in order to make changes to your PDF. The file size of the PDF would also be smaller because you are embedding only part of a font. + * @param mixed $subset if true embed only a subset of the font (stores only the information related to the used characters); if false embed full font; if 'default' uses the default value set using setFontSubsetting(). This option is valid only for TrueTypeUnicode fonts. If you want to enable users to change the document, set this parameter to false. If you subset the font, the person who receives your PDF would need to have your same font in order to make changes to your PDF. The file size of the PDF would also be smaller because you are embedding only part of a font. * @public * @since 1.5 * @see SetFont(), setFontSubsetting() @@ -4431,7 +4432,7 @@ class TCPDF { $this->Error('All fonts must be embedded in PDF/A mode!'); } } else { - $this->Error('Unknow font type: '.$type.''); + $this->Error('Unknown font type: '.$type.''); } // set name if unset if (empty($name)) { @@ -4521,7 +4522,7 @@ class TCPDF { * @param string $style Font style. Possible values are (case insensitive):
      • empty string: regular
      • B: bold
      • I: italic
      • U: underline
      • D: line through
      • O: overline
      or any combination. The default value is regular. Bold and italic styles do not apply to Symbol and ZapfDingbats basic fonts or other fonts when not defined. * @param float|null $size Font size in points. The default value is the current size. If no size has been specified since the beginning of the document, the value taken is 12 * @param string $fontfile The font definition file. By default, the name is built from the family and style, in lower case with no spaces. - * @param mixed $subset if true embedd only a subset of the font (stores only the information related to the used characters); if false embedd full font; if 'default' uses the default value set using setFontSubsetting(). This option is valid only for TrueTypeUnicode fonts. If you want to enable users to change the document, set this parameter to false. If you subset the font, the person who receives your PDF would need to have your same font in order to make changes to your PDF. The file size of the PDF would also be smaller because you are embedding only part of a font. + * @param mixed $subset if true embed only a subset of the font (stores only the information related to the used characters); if false embed full font; if 'default' uses the default value set using setFontSubsetting(). This option is valid only for TrueTypeUnicode fonts. If you want to enable users to change the document, set this parameter to false. If you subset the font, the person who receives your PDF would need to have your same font in order to make changes to your PDF. The file size of the PDF would also be smaller because you are embedding only part of a font. * @param boolean $out if true output the font size command, otherwise only set the font properties. * @author Nicola Asuni * @public @@ -4931,6 +4932,32 @@ class TCPDF { } } + /** + * Embed the attached files. + * @since 6.9.000 (2025-02-11) + * @public + */ + public function EmbedFile($opt) { + if (!$this->pdfa_mode || ($this->pdfa_mode && $this->pdfa_version == 3)) { + if ((($opt['Subtype'] == 'FileAttachment')) AND (!TCPDF_STATIC::empty_string($opt['FS'])) + AND (@TCPDF_STATIC::file_exists($opt['FS']) OR TCPDF_STATIC::isValidURL($opt['FS'])) + AND (!isset($this->embeddedfiles[basename($opt['FS'])]))) { + $this->embeddedfiles[basename($opt['FS'])] = array('f' => ++$this->n, 'n' => ++$this->n, 'file' => $opt['FS']); + } + } + } + + /** + * Embed the attached files. + * @since 6.9.000 (2025-02-11) + * @public + */ + public function EmbedFileFromString($filename, $content) { + if (!$this->pdfa_mode || ($this->pdfa_mode && $this->pdfa_version == 3)) { + $this->embeddedfiles[$filename] = array('f' => ++$this->n, 'n' => ++$this->n, 'content' => $content ); + } + } + /** * Embedd the attached files. * @since 4.4.000 (2008-12-07) @@ -4944,7 +4971,12 @@ class TCPDF { } reset($this->embeddedfiles); foreach ($this->embeddedfiles as $filename => $filedata) { - $data = $this->getCachedFileContents($filedata['file']); + $data = false; + if (isset($filedata['file']) && !empty($filedata['file'])) { + $data = $this->getCachedFileContents($filedata['file']); + } elseif ($filedata['content'] && !empty($filedata['content'])) { + $data = $filedata['content']; + } if ($data !== FALSE) { $rawsize = strlen($data); if ($rawsize > 0) { @@ -4962,11 +4994,10 @@ class TCPDF { $filter = ''; if ($this->compress) { $data = gzcompress($data); - $filter = ' /Filter /FlateDecode'; + $filter .= ' /Filter /FlateDecode'; } - if ($this->pdfa_version == 3) { - $filter = ' /Subtype /text#2Fxml'; + $filter .= ' /Subtype /text#2Fxml'; } $stream = $this->_getrawstream($data, $filedata['n']); @@ -6232,7 +6263,7 @@ class TCPDF { * @param array|null $cellpadding Internal cell padding, if empty uses default cell padding. * @param mixed $border Indicates if borders must be drawn around the cell. The value can be a number:
      • 0: no border (default)
      • 1: frame
      or a string containing some or all of the following characters (in any order):
      • L: left
      • T: top
      • R: right
      • B: bottom
      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 float Return the minimal height needed for multicell method for printing the $txt param. - * @author Alexander Escalona Fern\E1ndez, Nicola Asuni + * @author Alexander Escalona Fern\E1ndez,2026 Nicola Asuni * @public * @since 4.5.011 */ @@ -6428,7 +6459,7 @@ class TCPDF { // replacement for SHY character (minus symbol) $shy_replacement = 45; $shy_replacement_char = TCPDF_FONTS::unichr($shy_replacement, $this->isunicode); - // widht for SHY replacement + // width for SHY replacement $shy_replacement_width = $this->GetCharWidth($shy_replacement); // page width $pw = $w = $this->w - $this->lMargin - $this->rMargin; @@ -6886,8 +6917,8 @@ class TCPDF { // fallback to avoid division by zero $h = $h == 0 ? 1 : $h; $ratio_wh = ($w / $h); - if (($y + $h) > $this->PageBreakTrigger) { - $h = $this->PageBreakTrigger - $y; + if (($y + $h) > $this->PageBreakTrigger + $this->bMargin) { + $h = $this->PageBreakTrigger + $this->bMargin - $y; $w = ($h * $ratio_wh); } if ((!$this->rtl) AND (($x + $w) > ($this->w - $this->rMargin))) { @@ -6988,7 +7019,7 @@ class TCPDF { unset($imgdata); $imsize = @getimagesize($file); if ($imsize === FALSE) { - unlink($file); + $this->_unlink($file); $file = $original_file; } } @@ -7221,7 +7252,7 @@ class TCPDF { $tempname = TCPDF_STATIC::getObjFilename('img', $this->file_id); $img->writeImage($tempname); $info = TCPDF_IMAGES::_parsejpeg($tempname); - unlink($tempname); + $this->_unlink($tempname); $img->destroy(); } catch(Exception $e) { $info = false; @@ -7401,12 +7432,16 @@ class TCPDF { } } imagepng($imgalpha, $tempfile_alpha); - imagedestroy($imgalpha); + if (PHP_VERSION_ID < 80000) { + imagedestroy($imgalpha); + } // extract image without alpha channel $imgplain = imagecreatetruecolor($wpx, $hpx); imagecopy($imgplain, $img, 0, 0, 0, 0, $wpx, $hpx); imagepng($imgplain, $tempfile_plain); - imagedestroy($imgplain); + if (PHP_VERSION_ID < 80000) { + imagedestroy($imgplain); + } $parsed = true; } catch (Exception $e) { // GD fails @@ -7848,7 +7883,7 @@ class TCPDF { * @since 4.5.016 (2009-02-24) */ public function _destroy($destroyall=false, $preserve_objcopy=false) { - if (isset(self::$cleaned_ids[$this->file_id])) { + if (isset($this->file_id) && isset(self::$cleaned_ids[$this->file_id])) { $destroyall = false; } if ($destroyall AND !$preserve_objcopy && isset($this->file_id)) { @@ -7857,15 +7892,16 @@ class TCPDF { if ($handle = @opendir(K_PATH_CACHE)) { while ( false !== ( $file_name = readdir( $handle ) ) ) { if (strpos($file_name, '__tcpdf_'.$this->file_id.'_') === 0) { - unlink(K_PATH_CACHE.$file_name); + $this->_unlink(K_PATH_CACHE.$file_name); } } closedir($handle); } if (isset($this->imagekeys)) { foreach($this->imagekeys as $file) { - if (strpos($file, K_PATH_CACHE) === 0 && TCPDF_STATIC::file_exists($file)) { - @unlink($file); + if ((strpos($file, K_PATH_CACHE.'__tcpdf_'.$this->file_id.'_') === 0) + && TCPDF_STATIC::file_exists($file)) { + $this->_unlink($file); } } } @@ -8310,15 +8346,15 @@ class TCPDF { break; } case 'locked': { - $fval += 1 << 8; + $fval += 1 << 7; break; } case 'togglenoview': { - $fval += 1 << 9; + $fval += 1 << 8; break; } case 'lockedcontents': { - $fval += 1 << 10; + $fval += 1 << 9; break; } default: { @@ -8895,7 +8931,7 @@ class TCPDF { $this->_out('<< /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences ['.$diff.'] >>'."\n".'endobj'); } foreach ($this->FontFiles as $file => $info) { - // search and get font file to embedd + // search and get font file to embed $fontfile = TCPDF_FONTS::getFontFullPath($file, $info['fontdir']); if (!TCPDF_STATIC::empty_string($fontfile)) { $font = file_get_contents($fontfile); @@ -9110,9 +9146,9 @@ class TCPDF { $this->_newobj(); // Embed CIDToGIDMap // A specification of the mapping from CIDs to glyph indices - // search and get CTG font file to embedd + // search and get CTG font file to embed $ctgfile = strtolower($font['ctg']); - // search and get ctg font file to embedd + // search and get ctg font file to embed $fontfile = TCPDF_FONTS::getFontFullPath($ctgfile, $fontdir); if (TCPDF_STATIC::empty_string($fontfile)) { $this->Error('Font file not found: '.$ctgfile); @@ -9137,7 +9173,7 @@ class TCPDF { * A Type 0 CIDFont contains glyph descriptions based on the Adobe Type 1 font format * @param array $font font data * @protected - * @author Andrew Whitehead, Nicola Asuni, Yukihiro Nakadaira + * @author Andrew Whitehead,2026 Nicola Asuni, Yukihiro Nakadaira * @since 3.2.000 (2008-06-23) */ protected function _putcidfont0($font) { @@ -9628,6 +9664,17 @@ class TCPDF { $this->custom_xmp_rdf = $xmp; } + /** + * Set additional XMP data to be added to the default XMP data for PDF/A extensions. + * IMPORTANT: This data is added as-is without controls, so you have to validate your data before using this method! + * @param string $xmp Custom XMP RDF data. + * @since 6.9.0 (2025-02-14) + * @public + */ + public function setExtraXMPPdfaextension($xmp) { + $this->custom_xmp_rdf_pdfaExtension = $xmp; + } + /** * Put XMP data object and return ID. * @return int The object ID. @@ -9762,6 +9809,7 @@ class TCPDF { $xmp .= "\t\t\t\t\t\t\t".''."\n"; $xmp .= "\t\t\t\t\t\t".''."\n"; $xmp .= "\t\t\t\t\t".''."\n"; + $xmp .= $this->custom_xmp_rdf_pdfaExtension; $xmp .= "\t\t\t\t".''."\n"; $xmp .= "\t\t\t".''."\n"; $xmp .= "\t\t".''."\n"; @@ -9800,7 +9848,11 @@ class TCPDF { } // start catalog $oid = $this->_newobj(); - $out = '<< /Type /Catalog'; + $out = '<< '; + if (!empty($this->efnames)) { + $out .= ' /AF [ '. implode(' ', $this->efnames) .' ]'; + } + $out .= ' /Type /Catalog'; $out .= ' /Version /'.$this->PDFVersion; //$out .= ' /Extensions <<>>'; $out .= ' /Pages 1 0 R'; @@ -12275,7 +12327,7 @@ class TCPDF { * @param int $head_style (0 = draw only arrowhead arms, 1 = draw closed arrowhead, but no fill, 2 = closed and filled arrowhead, 3 = filled arrowhead) * @param float $arm_size length of arrowhead arms * @param int $arm_angle angle between an arm and the shaft - * @author Piotr Galecki, Nicola Asuni, Andy Meier + * @author Piotr Galecki,2026 Nicola Asuni, Andy Meier * @since 4.6.018 (2009-07-10) */ public function Arrow($x0, $y0, $x1, $y1, $head_style=0, $arm_size=5, $arm_angle=15) { @@ -12340,7 +12392,7 @@ class TCPDF { * @param float $x X position in user units of the destiantion on the selected page (default = -1 = current position;). * @return string|false Stripped named destination identifier or false in case of error. * @public - * @author Christian Deligant, Nicola Asuni + * @author Christian Deligant,2026 Nicola Asuni * @since 5.9.097 (2011-06-23) */ public function setDestination($name, $y=-1, $page='', $x=-1) { @@ -12393,7 +12445,7 @@ class TCPDF { /** * Insert Named Destinations. * @protected - * @author Johannes G\FCntert, Nicola Asuni + * @author Johannes G\FCntert,2026 Nicola Asuni * @since 5.9.098 (2011-06-23) */ protected function _putdests() { @@ -12502,7 +12554,7 @@ class TCPDF { /** * Create a bookmark PDF string. * @protected - * @author Olivier Plathey, Nicola Asuni + * @author Olivier Plathey,2026 Nicola Asuni * @since 2.1.002 (2008-02-12) */ protected function _putbookmarks() { @@ -12628,7 +12680,7 @@ class TCPDF { * Adds a javascript * @param string $script Javascript code * @public - * @author Johannes G\FCntert, Nicola Asuni + * @author Johannes G\FCntert,2026 Nicola Asuni * @since 2.1.002 (2008-02-12) */ public function IncludeJS($script) { @@ -12657,7 +12709,7 @@ class TCPDF { /** * Create a javascript PDF string. * @protected - * @author Johannes G\FCntert, Nicola Asuni + * @author Johannes G\FCntert,2026 Nicola Asuni * @since 2.1.002 (2008-02-12) */ protected function _putjavascript() { @@ -12715,7 +12767,7 @@ class TCPDF { * @param int $h height * @param array $prop javascript field properties. Possible values are described on official Javascript for Acrobat API reference. * @protected - * @author Denis Van Nuffelen, Nicola Asuni + * @author Denis Van Nuffelen,2026 Nicola Asuni * @since 2.1.002 (2008-02-12) */ protected function _addfield($type, $name, $x, $y, $w, $h, $prop) { @@ -14448,7 +14500,7 @@ class TCPDF { * @param array $col1 first color (Grayscale, RGB or CMYK components). * @param array $col2 second color (Grayscale, RGB or CMYK components). * @param array $coords array of the form (x1, y1, x2, y2) which defines the gradient vector (see linear_gradient_coords.jpg). The default value is from left to right (x1=0, y1=0, x2=1, y2=0). - * @author Andreas W\FCrmser, Nicola Asuni + * @author Andreas W\FCrmser,2026 Nicola Asuni * @since 3.1.000 (2008-06-09) * @public */ @@ -14466,7 +14518,7 @@ class TCPDF { * @param array $col1 first color (Grayscale, RGB or CMYK components). * @param array $col2 second color (Grayscale, RGB or CMYK components). * @param array $coords array of the form (fx, fy, cx, cy, r) where (fx, fy) is the starting point of the gradient with color1, (cx, cy) is the center of the circle with color2, and r is the radius of the circle (see radial_gradient_coords.jpg). (fx, fy) should be inside the circle, otherwise some areas will not be defined. - * @author Andreas W\FCrmser, Nicola Asuni + * @author Andreas W\FCrmser,2026 Nicola Asuni * @since 3.1.000 (2008-06-09) * @public */ @@ -14489,7 +14541,7 @@ class TCPDF { * @param array $coords_min minimum value used by the coordinates. If a coordinate's value is smaller than this it will be cut to coords_min. default: 0 * @param array $coords_max maximum value used by the coordinates. If a coordinate's value is greater than this it will be cut to coords_max. default: 1 * @param boolean $antialias A flag indicating whether to filter the shading function to prevent aliasing artifacts. - * @author Andreas W\FCrmser, Nicola Asuni + * @author Andreas W\FCrmser,2026 Nicola Asuni * @since 3.1.000 (2008-06-09) * @public */ @@ -14581,7 +14633,7 @@ class TCPDF { * @param float $y ordinate of the top left corner of the rectangle. * @param float $w width of the rectangle. * @param float $h height of the rectangle. - * @author Andreas W\FCrmser, Nicola Asuni + * @author Andreas W\FCrmser,2026 Nicola Asuni * @since 3.1.000 (2008-06-09) * @protected */ @@ -14907,7 +14959,7 @@ class TCPDF { * @param string $style Style of rendering. See the getPathPaintOperator() function for more information. * @param float $cw indicates whether to go clockwise (default: true). * @param float $o origin of angles (0 for 3 o'clock, 90 for noon, 180 for 9 o'clock, 270 for 6 o'clock). Default: 90. - * @author Maxime Delorme, Nicola Asuni + * @author Maxime Delorme,2026 Nicola Asuni * @since 3.1.000 (2008-06-09) * @public */ @@ -14928,7 +14980,7 @@ class TCPDF { * @param float $cw indicates whether to go clockwise. * @param float $o origin of angles (0 for 3 o'clock, 90 for noon, 180 for 9 o'clock, 270 for 6 o'clock). * @param integer $nc Number of curves used to draw a 90 degrees portion of arc. - * @author Maxime Delorme, Nicola Asuni + * @author Maxime Delorme,2026 Nicola Asuni * @since 3.1.000 (2008-06-09) * @public */ @@ -14972,7 +15024,7 @@ class TCPDF { * @param mixed $border Indicates if borders must be drawn around the cell. The value can be a number:
      • 0: no border (default)
      • 1: frame
      or a string containing some or all of the following characters (in any order):
      • L: left
      • T: top
      • R: right
      • B: bottom
      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))) * @param boolean $fitonpage if true the image is resized to not exceed page dimensions. * @param boolean $fixoutvals if true remove values outside the bounding box. - * @author Valentin Schmidt, Nicola Asuni + * @author Valentin Schmidt,2026 Nicola Asuni * @since 3.1.000 (2008-06-09) * @public */ @@ -16396,7 +16448,7 @@ class TCPDF { * @since 3.2.000 (2008-06-20) */ protected function getHtmlDomArray($html) { - // set inheritable properties fot the first void element + // set inheritable properties for the first void element // possible inheritable properties are: azimuth, border-collapse, border-spacing, caption-side, color, cursor, direction, empty-cells, font, font-family, font-stretch, font-size, font-size-adjust, font-style, font-variant, font-weight, letter-spacing, line-height, list-style, list-style-image, list-style-position, list-style-type, orphans, page, page-break-inside, quotes, speak, speak-header, text-align, text-indent, text-transform, volume, white-space, widows, word-spacing $dom = array( array( @@ -16862,7 +16914,7 @@ class TCPDF { $dom[$key]['height'] = $dom[$key]['style']['height']; } // check for text alignment - if (isset($dom[$key]['style']['text-align'])) { + if (isset($dom[$key]['style']['text-align'][0])) { $dom[$key]['align'] = strtoupper($dom[$key]['style']['text-align'][0]); } // check for CSS border properties @@ -17259,7 +17311,7 @@ class TCPDF { $hlen = intval(substr($data, 0, $hpos)); $hash = substr($data, $hpos + 1, $hlen); $encoded = substr($data, $hpos + 2 + $hlen); - if ($hash != $this->hashTCPDFtag($encoded)) { + if (!hash_equals( $this->hashTCPDFtag($encoded), $hash)) { $this->Error('Invalid parameters'); } return json_decode(urldecode($encoded), true); @@ -17425,6 +17477,9 @@ class TCPDF { } } if ($key == $maxel) break; + if ($dom[$key]['tag'] AND $dom[$key]['opening'] AND !empty($dom[$key]['attribute']['id'])) { + $this->setDestination($dom[$key]['attribute']['id']); + } if ($dom[$key]['tag'] AND isset($dom[$key]['attribute']['pagebreak'])) { // check for pagebreak if (($dom[$key]['attribute']['pagebreak'] == 'true') OR ($dom[$key]['attribute']['pagebreak'] == 'left') OR ($dom[$key]['attribute']['pagebreak'] == 'right')) { @@ -18867,6 +18922,29 @@ class TCPDF { unset($dom); } + /** + * Check if the path is relative. + * @param string $path path to check + * @return boolean true if the path is relative + * @protected + * @since 6.9.1 + */ + protected function isRelativePath($path) { + return (strpos(str_ireplace('%2E', '.', $this->unhtmlentities($path)), '..') !== false); + } + + /** + * Check if it contains a non-allowed external protocol. + * @param string $path path to check + * @return boolean true if the protocol is not allowed. + * @protected + * @since 6.9.3 + */ + protected function hasExtForbiddenProtocol($path) { + return ((strpos($path, '://') !== false) + && (preg_match('|^https?://|', $path) !== 1)); + } + /** * Process opening tags. * @param array $dom html dom array @@ -19059,13 +19137,15 @@ class TCPDF { } else if (preg_match('@^data:image/([^;]*);base64,(.*)@', $imgsrc, $reg)) { $imgsrc = '@'.base64_decode($reg[2]); $type = $reg[1]; - } elseif (strpos($imgsrc, '../') !== false) { + } elseif ($this->isRelativePath($imgsrc)) { // accessing parent folders is not allowed break; } elseif ( $this->allowLocalFiles && substr($imgsrc, 0, 7) === 'file://') { // get image type from a local file path $imgsrc = substr($imgsrc, 7); $type = TCPDF_IMAGES::getImageFileType($imgsrc); + } elseif ($this->hasExtForbiddenProtocol($imgsrc)) { + break; } else { if (($imgsrc[0] === '/') AND !empty($_SERVER['DOCUMENT_ROOT']) AND ($_SERVER['DOCUMENT_ROOT'] != '/')) { // fix image path @@ -19124,7 +19204,7 @@ class TCPDF { $imglink = ''; if (isset($this->HREF['url']) AND !TCPDF_STATIC::empty_string($this->HREF['url'])) { $imglink = $this->HREF['url']; - if ($imglink[0] == '#') { + if ($imglink[0] == '#' AND isset($imglink[1]) AND is_numeric($imglink[1])) { // convert url to internal link $lnkdata = explode(',', $imglink); if (isset($lnkdata[0])) { @@ -19985,7 +20065,7 @@ class TCPDF { } } if (!$in_table_head) { // we are not inside a thead section - $this->cell_padding = isset($table_el['old_cell_padding']) ? $table_el['old_cell_padding'] : null; + $this->cell_padding = isset($table_el['old_cell_padding']) ? $table_el['old_cell_padding'] : array('T' => 0, 'R' => 0, 'B' => 0, 'L' => 0); // reset row height $this->resetLastH(); if (($this->page == ($this->numpages - 1)) AND ($this->pageopen[$this->numpages])) { @@ -23184,8 +23264,11 @@ class TCPDF { $error_message = sprintf('SVG Error: %s at line %d', xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser)); $this->Error($error_message); } - // free this XML parser - xml_parser_free($parser); + + // free this XML parser (does nothing in PHP >= 8.0) + if (function_exists('xml_parser_free') && PHP_VERSION_ID < 80000) { + xml_parser_free($parser); + } // >= PHP 7.0.0 "explicitly unset the reference to parser to avoid memory leaks" unset($parser); @@ -23416,7 +23499,8 @@ class TCPDF { $gradient['coords'][4] /= $w; } elseif ($gradient['mode'] == 'percentage') { foreach($gradient['coords'] as $key => $val) { - $gradient['coords'][$key] = (intval($val) / 100); + $val = floatval($val) / 100; + $gradient['coords'][$key] = $val; if ($val < 0) { $gradient['coords'][$key] = 0; } elseif ($val > 1) { @@ -23452,6 +23536,8 @@ class TCPDF { $fill_color = TCPDF_COLORS::convertHTMLColorToDec($svgstyle['fill'], $this->spot_colors); if ($svgstyle['fill-opacity'] != 1) { $this->setAlpha($this->alpha['CA'], 'Normal', $svgstyle['fill-opacity'], false); + } elseif (preg_match('/rgba\(\d+%?,\s*\d+%?,\s*\d+%?,\s*(\d+(?:\.\d+)?)\)/i', $svgstyle['fill'], $rgba_matches)) { + $this->setAlpha($this->alpha['CA'], 'Normal', $rgba_matches[1], false); } $this->setFillColorArray($fill_color); if ($svgstyle['fill-rule'] == 'evenodd') { @@ -23485,7 +23571,7 @@ class TCPDF { if (preg_match('/font-family[\s]*:[\s]*([^\;\"]*)/si', $svgstyle['font'], $regs)) { $font_family = $this->getFontFamilyName($regs[1]); } else { - $font_family = $svgstyle['font-family']; + $font_family = $this->getFontFamilyName($svgstyle['font-family']); } if (preg_match('/font-size[\s]*:[\s]*([^\s\;\"]*)/si', $svgstyle['font'], $regs)) { $font_size = trim($regs[1]); @@ -23639,9 +23725,11 @@ class TCPDF { } $params = array(); if (isset($val[2])) { - // get curve parameters - preg_match_all('/-?\d*\.?\d+/', trim($val[2]), $matches); - $rawparams = $matches[0]; + // get curve parameters, see https://github.com/tecnickcom/TCPDF/issues/767 + $rawparams = preg_split('/([\,\s]+)/si', trim($val[2])); + $rawparams = array_filter($rawparams, function($p) { + return trim($p) != ''; + }); $params = array(); foreach ($rawparams as $ck => $cp) { $params[$ck] = $this->getHTMLUnitToUnits($cp, 0, $this->svgunit, false); @@ -24338,6 +24426,7 @@ class TCPDF { } $this->StopTransform(); } + break; } case 'ellipse': { @@ -24466,6 +24555,9 @@ class TCPDF { $img = '@'.base64_decode(substr($img, strlen($m[0]))); } else { // fix image path + if ($this->isRelativePath($img) || $this->hasExtForbiddenProtocol($img)) { + break; + } if (!TCPDF_STATIC::empty_string($this->svgdir) AND (($img[0] == '.') OR (basename($img) == $img))) { // replace relative path with full server path $img = $this->svgdir.'/'.$img; @@ -24648,7 +24740,7 @@ class TCPDF { */ protected function endSVGElementHandler($parser, $name) { $name = $this->removeTagNamespace($name); - if ($this->svgdefsmode AND !in_array($name, array('defs', 'clipPath', 'linearGradient', 'radialGradient', 'stop'))) {; + if ($this->svgdefsmode AND !in_array($name, array('defs', 'clipPath', 'linearGradient', 'radialGradient', 'stop'))) { if (end($this->svgdefs) !== FALSE) { $last_svgdefs_id = key($this->svgdefs); if (isset($this->svgdefs[$last_svgdefs_id]['attribs']['child_elements'])) { @@ -24786,6 +24878,20 @@ class TCPDF { return TCPDF_STATIC::file_exists($file); } + /** + * Wrapper for unlink with disabled protocols. + * @param string $file + * @return bool + */ + protected function _unlink($file) + { + if ((strpos($file, '://') !== false) && ((substr($file, 0, 7) !== 'file://') || (!$this->allowLocalFiles))) { + // forbidden protocol + return false; + } + return @unlink($file); + } + } // END OF TCPDF CLASS //============================================================+ diff --git a/tools/tcpdf/tcpdf_autoconfig.php b/tools/tcpdf/tcpdf_autoconfig.php index 2bcfccb82..dd1404e09 100644 --- a/tools/tcpdf/tcpdf_autoconfig.php +++ b/tools/tcpdf/tcpdf_autoconfig.php @@ -3,11 +3,11 @@ // File name : tcpdf_autoconfig.php // Version : 1.1.1 // Begin : 2013-05-16 -// Last Update : 2014-12-18 +// Last Update : 2025-04-18 // Authors : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2011-2014 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2011-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -37,9 +37,14 @@ * @file * Try to automatically configure some TCPDF constants if not defined. * @package com.tecnick.tcpdf - * @version 1.1.1 + * @version 1.2.1 */ +// Disable phar stream wrapper globally. +// if (in_array('phar', stream_get_wrappers(), true)) { +// stream_wrapper_unregister('phar'); +// } + // DOCUMENT_ROOT fix for IIS Webserver if ((!isset($_SERVER['DOCUMENT_ROOT'])) OR (empty($_SERVER['DOCUMENT_ROOT']))) { if(isset($_SERVER['SCRIPT_FILENAME'])) { @@ -149,7 +154,7 @@ if (!defined('PDF_HEADER_TITLE')) { } if (!defined('PDF_HEADER_STRING')) { - define ('PDF_HEADER_STRING', "by Nicola Asuni - Tecnick.com\nwww.tcpdf.org"); + define ('PDF_HEADER_STRING', "by2026 Nicola Asuni - Tecnick.com\nwww.tcpdf.org"); } if (!defined('PDF_UNIT')) { @@ -201,7 +206,7 @@ if (!defined('PDF_FONT_MONOSPACED')) { } if (!defined('PDF_IMAGE_SCALE_RATIO')) { - define ('PDF_IMAGE_SCALE_RATIO', 1.25); + define ('PDF_IMAGE_SCALE_RATIO', 96/72); } if (!defined('HEAD_MAGNIFICATION')) { @@ -240,6 +245,11 @@ if (!defined('K_TIMEZONE')) { define('K_TIMEZONE', @date_default_timezone_get()); } +// Custom cURL options for curl_setopt_array. +if (!defined('K_CURLOPTS')) { + define('K_CURLOPTS', array()); +} + //============================================================+ // END OF FILE //============================================================+ diff --git a/tools/tcpdf/tcpdf_barcodes_1d.php b/tools/tcpdf/tcpdf_barcodes_1d.php index 45d35616c..34cb6da17 100644 --- a/tools/tcpdf/tcpdf_barcodes_1d.php +++ b/tools/tcpdf/tcpdf_barcodes_1d.php @@ -5,9 +5,9 @@ // Begin : 2008-06-09 // Last Update : 2014-10-20 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2008-2014 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2008-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- @@ -234,7 +234,9 @@ class TCPDFBarcode { ob_start(); imagepng($png); $imagedata = ob_get_clean(); - imagedestroy($png); + if (PHP_VERSION_ID < 80000) { + imagedestroy($png); + } return $imagedata; } } diff --git a/tools/tcpdf/tcpdf_barcodes_2d.php b/tools/tcpdf/tcpdf_barcodes_2d.php index 730361bd8..0e1163653 100644 --- a/tools/tcpdf/tcpdf_barcodes_2d.php +++ b/tools/tcpdf/tcpdf_barcodes_2d.php @@ -5,9 +5,9 @@ // Begin : 2009-04-07 // Last Update : 2014-05-20 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2009-2014 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2009-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- @@ -238,7 +238,9 @@ class TCPDF2DBarcode { ob_start(); imagepng($png); $imagedata = ob_get_clean(); - imagedestroy($png); + if (PHP_VERSION_ID < 80000) { + imagedestroy($png); + } return $imagedata; } } diff --git a/tools/tcpdf/tcpdf_import.php b/tools/tcpdf/tcpdf_import.php deleted file mode 100644 index 57f9f4f4b..000000000 --- a/tools/tcpdf/tcpdf_import.php +++ /dev/null @@ -1,104 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : This is a PHP class extension of the TCPDF library to -// import existing PDF documents. -// -//============================================================+ - -/** - * @file - * !!! THIS CLASS IS UNDER DEVELOPMENT !!! - * This is a PHP class extension of the TCPDF (http://www.tcpdf.org) library to import existing PDF documents.
      - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.0.001 - */ - -// include the TCPDF class -require_once(dirname(__FILE__).'/tcpdf.php'); -// include PDF parser class -require_once(dirname(__FILE__).'/tcpdf_parser.php'); - -/** - * @class TCPDF_IMPORT - * !!! THIS CLASS IS UNDER DEVELOPMENT !!! - * PHP class extension of the TCPDF (http://www.tcpdf.org) library to import existing PDF documents.
      - * @package com.tecnick.tcpdf - * @brief PHP class extension of the TCPDF library to import existing PDF documents. - * @version 1.0.001 - * @author Nicola Asuni - info@tecnick.com - */ -class TCPDF_IMPORT extends TCPDF { - - /** - * Import an existing PDF document - * @param string $filename Filename of the PDF document to import. - * @return void - * @public - * @since 1.0.000 (2011-05-24) - */ - public function importPDF($filename) { - // load document - $rawdata = file_get_contents($filename); - if ($rawdata === false) { - $this->Error('Unable to get the content of the file: '.$filename); - } - // configuration parameters for parser - $cfg = array( - 'die_for_errors' => false, - 'ignore_filter_decoding_errors' => true, - 'ignore_missing_filter_decoders' => true, - ); - try { - // parse PDF data - $pdf = new TCPDF_PARSER($rawdata, $cfg); - } catch (Exception $e) { - die($e->getMessage()); - } - // get the parsed data - $data = $pdf->getParsedData(); - // release some memory - unset($rawdata); - - // ... - - - print_r($data); // DEBUG - - - unset($pdf); - } - -} // END OF CLASS - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/tcpdf_parser.php b/tools/tcpdf/tcpdf_parser.php deleted file mode 100644 index 4156230a3..000000000 --- a/tools/tcpdf/tcpdf_parser.php +++ /dev/null @@ -1,815 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : This is a PHP class for parsing PDF documents. -// -//============================================================+ - -/** - * @file - * This is a PHP class for parsing PDF documents.
      - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.0.15 - */ - -// include class for decoding filters -require_once(dirname(__FILE__).'/include/tcpdf_filters.php'); - -/** - * @class TCPDF_PARSER - * This is a PHP class for parsing PDF documents.
      - * @package com.tecnick.tcpdf - * @brief This is a PHP class for parsing PDF documents.. - * @version 1.0.15 - * @author Nicola Asuni - info@tecnick.com - */ -class TCPDF_PARSER { - - /** - * Raw content of the PDF document. - * @private - */ - private $pdfdata = ''; - - /** - * XREF data. - * @protected - */ - protected $xref = array(); - - /** - * Array of PDF objects. - * @protected - */ - protected $objects = array(); - - /** - * Class object for decoding filters. - * @private - */ - private $FilterDecoders; - - /** - * Array of configuration parameters. - * @private - */ - private $cfg = array( - 'die_for_errors' => false, - 'ignore_filter_decoding_errors' => true, - 'ignore_missing_filter_decoders' => true, - ); - -// ----------------------------------------------------------------------------- - - /** - * Parse a PDF document an return an array of objects. - * @param string $data PDF data to parse. - * @param array $cfg Array of configuration parameters: - * 'die_for_errors' : if true termitate the program execution in case of error, otherwise thows an exception; - * 'ignore_filter_decoding_errors' : if true ignore filter decoding errors; - * 'ignore_missing_filter_decoders' : if true ignore missing filter decoding errors. - * @public - * @since 1.0.000 (2011-05-24) - */ - public function __construct($data, $cfg=array()) { - if (empty($data)) { - $this->Error('Empty PDF data.'); - } - // find the pdf header starting position - if (($trimpos = strpos($data, '%PDF-')) === FALSE) { - $this->Error('Invalid PDF data: missing %PDF header.'); - } - // get PDF content string - $this->pdfdata = substr($data, $trimpos); - // get length - $pdflen = strlen($this->pdfdata); - // set configuration parameters - $this->setConfig($cfg); - // get xref and trailer data - $this->xref = $this->getXrefData(); - // parse all document objects - $this->objects = array(); - foreach ($this->xref['xref'] as $obj => $offset) { - if (!isset($this->objects[$obj]) AND ($offset > 0)) { - // decode objects with positive offset - $this->objects[$obj] = $this->getIndirectObject($obj, $offset, true); - } - } - // release some memory - unset($this->pdfdata); - $this->pdfdata = ''; - } - - /** - * Set the configuration parameters. - * @param array $cfg Array of configuration parameters: - * 'die_for_errors' : if true termitate the program execution in case of error, otherwise thows an exception; - * 'ignore_filter_decoding_errors' : if true ignore filter decoding errors; - * 'ignore_missing_filter_decoders' : if true ignore missing filter decoding errors. - * @public - */ - protected function setConfig($cfg) { - if (isset($cfg['die_for_errors'])) { - $this->cfg['die_for_errors'] = !!$cfg['die_for_errors']; - } - if (isset($cfg['ignore_filter_decoding_errors'])) { - $this->cfg['ignore_filter_decoding_errors'] = !!$cfg['ignore_filter_decoding_errors']; - } - if (isset($cfg['ignore_missing_filter_decoders'])) { - $this->cfg['ignore_missing_filter_decoders'] = !!$cfg['ignore_missing_filter_decoders']; - } - } - - /** - * Return an array of parsed PDF document objects. - * @return array Array of parsed PDF document objects. - * @public - * @since 1.0.000 (2011-06-26) - */ - public function getParsedData() { - return array($this->xref, $this->objects); - } - - /** - * Get Cross-Reference (xref) table and trailer data from PDF document data. - * @param int $offset xref offset (if know). - * @param array $xref previous xref array (if any). - * @return array containing xref and trailer data. - * @protected - * @since 1.0.000 (2011-05-24) - */ - protected function getXrefData($offset=0, $xref=array()) { - if ($offset == 0) { - // find last startxref - if (preg_match_all('/[\r\n]startxref[\s]*[\r\n]+([0-9]+)[\s]*[\r\n]+%%EOF/i', $this->pdfdata, $matches, PREG_SET_ORDER, $offset) == 0) { - $this->Error('Unable to find startxref'); - } - $matches = array_pop($matches); - $startxref = $matches[1]; - } elseif (strpos($this->pdfdata, 'xref', $offset) == $offset) { - // Already pointing at the xref table - $startxref = $offset; - } elseif (preg_match('/([0-9]+[\s][0-9]+[\s]obj)/i', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset)) { - // Cross-Reference Stream object - $startxref = $offset; - } elseif (preg_match('/[\r\n]startxref[\s]*[\r\n]+([0-9]+)[\s]*[\r\n]+%%EOF/i', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset)) { - // startxref found - $startxref = $matches[1][0]; - } else { - $this->Error('Unable to find startxref'); - } - // check xref position - if (strpos($this->pdfdata, 'xref', $startxref) == $startxref) { - // Cross-Reference - $xref = $this->decodeXref($startxref, $xref); - } else { - // Cross-Reference Stream - $xref = $this->decodeXrefStream($startxref, $xref); - } - if (empty($xref)) { - $this->Error('Unable to find xref'); - } - return $xref; - } - - /** - * Decode the Cross-Reference section - * @param int $startxref Offset at which the xref section starts (position of the 'xref' keyword). - * @param array $xref Previous xref array (if any). - * @return array containing xref and trailer data. - * @protected - * @since 1.0.000 (2011-06-20) - */ - protected function decodeXref($startxref, $xref=array()) { - $startxref += 4; // 4 is the length of the word 'xref' - // skip initial white space chars: \x00 null (NUL), \x09 horizontal tab (HT), \x0A line feed (LF), \x0C form feed (FF), \x0D carriage return (CR), \x20 space (SP) - $offset = $startxref + strspn($this->pdfdata, "\x00\x09\x0a\x0c\x0d\x20", $startxref); - // initialize object number - $obj_num = 0; - // search for cross-reference entries or subsection - while (preg_match('/([0-9]+)[\x20]([0-9]+)[\x20]?([nf]?)(\r\n|[\x20]?[\r\n])/', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset) > 0) { - if ($matches[0][1] != $offset) { - // we are on another section - break; - } - $offset += strlen($matches[0][0]); - if ($matches[3][0] == 'n') { - // create unique object index: [object number]_[generation number] - $index = $obj_num.'_'.intval($matches[2][0]); - // check if object already exist - if (!isset($xref['xref'][$index])) { - // store object offset position - $xref['xref'][$index] = intval($matches[1][0]); - } - ++$obj_num; - } elseif ($matches[3][0] == 'f') { - ++$obj_num; - } else { - // object number (index) - $obj_num = intval($matches[1][0]); - } - } - // get trailer data - if (preg_match('/trailer[\s]*<<(.*)>>/isU', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset) > 0) { - $trailer_data = $matches[1][0]; - if (!isset($xref['trailer']) OR empty($xref['trailer'])) { - // get only the last updated version - $xref['trailer'] = array(); - // parse trailer_data - if (preg_match('/Size[\s]+([0-9]+)/i', $trailer_data, $matches) > 0) { - $xref['trailer']['size'] = intval($matches[1]); - } - if (preg_match('/Root[\s]+([0-9]+)[\s]+([0-9]+)[\s]+R/i', $trailer_data, $matches) > 0) { - $xref['trailer']['root'] = intval($matches[1]).'_'.intval($matches[2]); - } - if (preg_match('/Encrypt[\s]+([0-9]+)[\s]+([0-9]+)[\s]+R/i', $trailer_data, $matches) > 0) { - $xref['trailer']['encrypt'] = intval($matches[1]).'_'.intval($matches[2]); - } - if (preg_match('/Info[\s]+([0-9]+)[\s]+([0-9]+)[\s]+R/i', $trailer_data, $matches) > 0) { - $xref['trailer']['info'] = intval($matches[1]).'_'.intval($matches[2]); - } - if (preg_match('/ID[\s]*[\[][\s]*[<]([^>]*)[>][\s]*[<]([^>]*)[>]/i', $trailer_data, $matches) > 0) { - $xref['trailer']['id'] = array(); - $xref['trailer']['id'][0] = $matches[1]; - $xref['trailer']['id'][1] = $matches[2]; - } - } - if (preg_match('/Prev[\s]+([0-9]+)/i', $trailer_data, $matches) > 0) { - // get previous xref - $xref = $this->getXrefData(intval($matches[1]), $xref); - } - } else { - $this->Error('Unable to find trailer'); - } - return $xref; - } - - /** - * Decode the Cross-Reference Stream section - * @param int $startxref Offset at which the xref section starts. - * @param array $xref Previous xref array (if any). - * @return array containing xref and trailer data. - * @protected - * @since 1.0.003 (2013-03-16) - */ - protected function decodeXrefStream($startxref, $xref=array()) { - // try to read Cross-Reference Stream - $xrefobj = $this->getRawObject($startxref); - $xrefcrs = $this->getIndirectObject($xrefobj[1], $startxref, true); - if (!isset($xref['trailer']) OR empty($xref['trailer'])) { - // get only the last updated version - $xref['trailer'] = array(); - $filltrailer = true; - } else { - $filltrailer = false; - } - if (!isset($xref['xref'])) { - $xref['xref'] = array(); - } - $valid_crs = false; - $columns = 0; - $sarr = $xrefcrs[0][1]; - if (!is_array($sarr)) { - $sarr = array(); - } - foreach ($sarr as $k => $v) { - if (($v[0] == '/') AND ($v[1] == 'Type') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == '/') AND ($sarr[($k +1)][1] == 'XRef'))) { - $valid_crs = true; - } elseif (($v[0] == '/') AND ($v[1] == 'Index') AND (isset($sarr[($k +1)]))) { - // first object number in the subsection - $index_first = intval($sarr[($k +1)][1][0][1]); - // number of entries in the subsection - $index_entries = intval($sarr[($k +1)][1][1][1]); - } elseif (($v[0] == '/') AND ($v[1] == 'Prev') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'numeric'))) { - // get previous xref offset - $prevxref = intval($sarr[($k +1)][1]); - } elseif (($v[0] == '/') AND ($v[1] == 'W') AND (isset($sarr[($k +1)]))) { - // number of bytes (in the decoded stream) of the corresponding field - $wb = array(); - $wb[0] = intval($sarr[($k +1)][1][0][1]); - $wb[1] = intval($sarr[($k +1)][1][1][1]); - $wb[2] = intval($sarr[($k +1)][1][2][1]); - } elseif (($v[0] == '/') AND ($v[1] == 'DecodeParms') AND (isset($sarr[($k +1)][1]))) { - $decpar = $sarr[($k +1)][1]; - foreach ($decpar as $kdc => $vdc) { - if (($vdc[0] == '/') AND ($vdc[1] == 'Columns') AND (isset($decpar[($kdc +1)]) AND ($decpar[($kdc +1)][0] == 'numeric'))) { - $columns = intval($decpar[($kdc +1)][1]); - } elseif (($vdc[0] == '/') AND ($vdc[1] == 'Predictor') AND (isset($decpar[($kdc +1)]) AND ($decpar[($kdc +1)][0] == 'numeric'))) { - $predictor = intval($decpar[($kdc +1)][1]); - } - } - } elseif ($filltrailer) { - if (($v[0] == '/') AND ($v[1] == 'Size') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'numeric'))) { - $xref['trailer']['size'] = $sarr[($k +1)][1]; - } elseif (($v[0] == '/') AND ($v[1] == 'Root') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'objref'))) { - $xref['trailer']['root'] = $sarr[($k +1)][1]; - } elseif (($v[0] == '/') AND ($v[1] == 'Info') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'objref'))) { - $xref['trailer']['info'] = $sarr[($k +1)][1]; - } elseif (($v[0] == '/') AND ($v[1] == 'Encrypt') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'objref'))) { - $xref['trailer']['encrypt'] = $sarr[($k +1)][1]; - } elseif (($v[0] == '/') AND ($v[1] == 'ID') AND (isset($sarr[($k +1)]))) { - $xref['trailer']['id'] = array(); - $xref['trailer']['id'][0] = $sarr[($k +1)][1][0][1]; - $xref['trailer']['id'][1] = $sarr[($k +1)][1][1][1]; - } - } - } - // decode data - if ($valid_crs AND isset($xrefcrs[1][3][0])) { - // number of bytes in a row - $rowlen = ($columns + 1); - // convert the stream into an array of integers - $sdata = unpack('C*', $xrefcrs[1][3][0]); - // split the rows - $sdata = array_chunk($sdata, $rowlen); - // initialize decoded array - $ddata = array(); - // initialize first row with zeros - $prev_row = array_fill (0, $rowlen, 0); - // for each row apply PNG unpredictor - foreach ($sdata as $k => $row) { - // initialize new row - $ddata[$k] = array(); - // get PNG predictor value - $predictor = (10 + $row[0]); - // for each byte on the row - for ($i=1; $i<=$columns; ++$i) { - // new index - $j = ($i - 1); - $row_up = $prev_row[$j]; - if ($i == 1) { - $row_left = 0; - $row_upleft = 0; - } else { - $row_left = $row[($i - 1)]; - $row_upleft = $prev_row[($j - 1)]; - } - switch ($predictor) { - case 10: { // PNG prediction (on encoding, PNG None on all rows) - $ddata[$k][$j] = $row[$i]; - break; - } - case 11: { // PNG prediction (on encoding, PNG Sub on all rows) - $ddata[$k][$j] = (($row[$i] + $row_left) & 0xff); - break; - } - case 12: { // PNG prediction (on encoding, PNG Up on all rows) - $ddata[$k][$j] = (($row[$i] + $row_up) & 0xff); - break; - } - case 13: { // PNG prediction (on encoding, PNG Average on all rows) - $ddata[$k][$j] = (($row[$i] + (($row_left + $row_up) / 2)) & 0xff); - break; - } - case 14: { // PNG prediction (on encoding, PNG Paeth on all rows) - // initial estimate - $p = ($row_left + $row_up - $row_upleft); - // distances - $pa = abs($p - $row_left); - $pb = abs($p - $row_up); - $pc = abs($p - $row_upleft); - $pmin = min($pa, $pb, $pc); - // return minimum distance - switch ($pmin) { - case $pa: { - $ddata[$k][$j] = (($row[$i] + $row_left) & 0xff); - break; - } - case $pb: { - $ddata[$k][$j] = (($row[$i] + $row_up) & 0xff); - break; - } - case $pc: { - $ddata[$k][$j] = (($row[$i] + $row_upleft) & 0xff); - break; - } - } - break; - } - default: { // PNG prediction (on encoding, PNG optimum) - $this->Error('Unknown PNG predictor'); - break; - } - } - } - $prev_row = $ddata[$k]; - } // end for each row - // complete decoding - $sdata = array(); - // for every row - foreach ($ddata as $k => $row) { - // initialize new row - $sdata[$k] = array(0, 0, 0); - if ($wb[0] == 0) { - // default type field - $sdata[$k][0] = 1; - } - $i = 0; // count bytes in the row - // for every column - for ($c = 0; $c < 3; ++$c) { - // for every byte on the column - for ($b = 0; $b < $wb[$c]; ++$b) { - if (isset($row[$i])) { - $sdata[$k][$c] += ($row[$i] << (($wb[$c] - 1 - $b) * 8)); - } - ++$i; - } - } - } - $ddata = array(); - // fill xref - if (isset($index_first)) { - $obj_num = $index_first; - } else { - $obj_num = 0; - } - foreach ($sdata as $k => $row) { - switch ($row[0]) { - case 0: { // (f) linked list of free objects - break; - } - case 1: { // (n) objects that are in use but are not compressed - // create unique object index: [object number]_[generation number] - $index = $obj_num.'_'.$row[2]; - // check if object already exist - if (!isset($xref['xref'][$index])) { - // store object offset position - $xref['xref'][$index] = $row[1]; - } - break; - } - case 2: { // compressed objects - // $row[1] = object number of the object stream in which this object is stored - // $row[2] = index of this object within the object stream - $index = $row[1].'_0_'.$row[2]; - $xref['xref'][$index] = -1; - break; - } - default: { // null objects - break; - } - } - ++$obj_num; - } - } // end decoding data - if (isset($prevxref)) { - // get previous xref - $xref = $this->getXrefData($prevxref, $xref); - } - return $xref; - } - - /** - * Get object type, raw value and offset to next object - * @param int $offset Object offset. - * @return array containing object type, raw value and offset to next object - * @protected - * @since 1.0.000 (2011-06-20) - */ - protected function getRawObject($offset=0) { - $objtype = ''; // object type to be returned - $objval = ''; // object value to be returned - // skip initial white space chars: \x00 null (NUL), \x09 horizontal tab (HT), \x0A line feed (LF), \x0C form feed (FF), \x0D carriage return (CR), \x20 space (SP) - $offset += strspn($this->pdfdata, "\x00\x09\x0a\x0c\x0d\x20", $offset); - // get first char - $char = $this->pdfdata[$offset]; - // get object type - switch ($char) { - case '%': { // \x25 PERCENT SIGN - // skip comment and search for next token - $next = strcspn($this->pdfdata, "\r\n", $offset); - if ($next > 0) { - $offset += $next; - return $this->getRawObject($offset); - } - break; - } - case '/': { // \x2F SOLIDUS - // name object - $objtype = $char; - ++$offset; - if (preg_match('/^([^\x00\x09\x0a\x0c\x0d\x20\s\x28\x29\x3c\x3e\x5b\x5d\x7b\x7d\x2f\x25]+)/', substr($this->pdfdata, $offset, 256), $matches) == 1) { - $objval = $matches[1]; // unescaped value - $offset += strlen($objval); - } - break; - } - case '(': // \x28 LEFT PARENTHESIS - case ')': { // \x29 RIGHT PARENTHESIS - // literal string object - $objtype = $char; - ++$offset; - $strpos = $offset; - if ($char == '(') { - $open_bracket = 1; - while ($open_bracket > 0) { - if (!isset($this->pdfdata[$strpos])) { - break; - } - $ch = $this->pdfdata[$strpos]; - switch ($ch) { - case '\\': { // REVERSE SOLIDUS (5Ch) (Backslash) - // skip next character - ++$strpos; - break; - } - case '(': { // LEFT PARENHESIS (28h) - ++$open_bracket; - break; - } - case ')': { // RIGHT PARENTHESIS (29h) - --$open_bracket; - break; - } - } - ++$strpos; - } - $objval = substr($this->pdfdata, $offset, ($strpos - $offset - 1)); - $offset = $strpos; - } - break; - } - case '[': // \x5B LEFT SQUARE BRACKET - case ']': { // \x5D RIGHT SQUARE BRACKET - // array object - $objtype = $char; - ++$offset; - if ($char == '[') { - // get array content - $objval = array(); - do { - // get element - $element = $this->getRawObject($offset); - $offset = $element[2]; - $objval[] = $element; - } while ($element[0] != ']'); - // remove closing delimiter - array_pop($objval); - } - break; - } - case '<': // \x3C LESS-THAN SIGN - case '>': { // \x3E GREATER-THAN SIGN - if (isset($this->pdfdata[($offset + 1)]) AND ($this->pdfdata[($offset + 1)] == $char)) { - // dictionary object - $objtype = $char.$char; - $offset += 2; - if ($char == '<') { - // get array content - $objval = array(); - do { - // get element - $element = $this->getRawObject($offset); - $offset = $element[2]; - $objval[] = $element; - } while ($element[0] != '>>'); - // remove closing delimiter - array_pop($objval); - } - } else { - // hexadecimal string object - $objtype = $char; - ++$offset; - if (($char == '<') AND (preg_match('/^([0-9A-Fa-f\x09\x0a\x0c\x0d\x20]+)>/iU', substr($this->pdfdata, $offset), $matches) == 1)) { - // remove white space characters - $objval = strtr($matches[1], "\x09\x0a\x0c\x0d\x20", ''); - $offset += strlen($matches[0]); - } elseif (($endpos = strpos($this->pdfdata, '>', $offset)) !== FALSE) { - $offset = $endpos + 1; - } - } - break; - } - default: { - if (substr($this->pdfdata, $offset, 6) == 'endobj') { - // indirect object - $objtype = 'endobj'; - $offset += 6; - } elseif (substr($this->pdfdata, $offset, 4) == 'null') { - // null object - $objtype = 'null'; - $offset += 4; - $objval = 'null'; - } elseif (substr($this->pdfdata, $offset, 4) == 'true') { - // boolean true object - $objtype = 'boolean'; - $offset += 4; - $objval = 'true'; - } elseif (substr($this->pdfdata, $offset, 5) == 'false') { - // boolean false object - $objtype = 'boolean'; - $offset += 5; - $objval = 'false'; - } elseif (substr($this->pdfdata, $offset, 6) == 'stream') { - // start stream object - $objtype = 'stream'; - $offset += 6; - if (preg_match('/^([\r]?[\n])/isU', substr($this->pdfdata, $offset), $matches) == 1) { - $offset += strlen($matches[0]); - if (preg_match('/(endstream)[\x09\x0a\x0c\x0d\x20]/isU', substr($this->pdfdata, $offset), $matches, PREG_OFFSET_CAPTURE) == 1) { - $objval = substr($this->pdfdata, $offset, $matches[0][1]); - $offset += $matches[1][1]; - } - } - } elseif (substr($this->pdfdata, $offset, 9) == 'endstream') { - // end stream object - $objtype = 'endstream'; - $offset += 9; - } elseif (preg_match('/^([0-9]+)[\s]+([0-9]+)[\s]+R/iU', substr($this->pdfdata, $offset, 33), $matches) == 1) { - // indirect object reference - $objtype = 'objref'; - $offset += strlen($matches[0]); - $objval = intval($matches[1]).'_'.intval($matches[2]); - } elseif (preg_match('/^([0-9]+)[\s]+([0-9]+)[\s]+obj/iU', substr($this->pdfdata, $offset, 33), $matches) == 1) { - // object start - $objtype = 'obj'; - $objval = intval($matches[1]).'_'.intval($matches[2]); - $offset += strlen ($matches[0]); - } elseif (($numlen = strspn($this->pdfdata, '+-.0123456789', $offset)) > 0) { - // numeric object - $objtype = 'numeric'; - $objval = substr($this->pdfdata, $offset, $numlen); - $offset += $numlen; - } - break; - } - } - return array($objtype, $objval, $offset); - } - - /** - * Get content of indirect object. - * @param string $obj_ref Object number and generation number separated by underscore character. - * @param int $offset Object offset. - * @param boolean $decoding If true decode streams. - * @return array containing object data. - * @protected - * @since 1.0.000 (2011-05-24) - */ - protected function getIndirectObject($obj_ref, $offset=0, $decoding=true) { - $obj = explode('_', $obj_ref); - if (($obj === false) OR (count($obj) != 2)) { - $this->Error('Invalid object reference: '.$obj); - return; - } - $objref = $obj[0].' '.$obj[1].' obj'; - // ignore leading zeros - $offset += strspn($this->pdfdata, '0', $offset); - if (strpos($this->pdfdata, $objref, $offset) != $offset) { - // an indirect reference to an undefined object shall be considered a reference to the null object - return array('null', 'null', $offset); - } - // starting position of object content - $offset += strlen($objref); - // get array of object content - $objdata = array(); - $i = 0; // object main index - do { - $oldoffset = $offset; - // get element - $element = $this->getRawObject($offset); - $offset = $element[2]; - // decode stream using stream's dictionary information - if ($decoding AND ($element[0] == 'stream') AND (isset($objdata[($i - 1)][0])) AND ($objdata[($i - 1)][0] == '<<')) { - $element[3] = $this->decodeStream($objdata[($i - 1)][1], $element[1]); - } - $objdata[$i] = $element; - ++$i; - } while (($element[0] != 'endobj') AND ($offset != $oldoffset)); - // remove closing delimiter - array_pop($objdata); - // return raw object content - return $objdata; - } - - /** - * Get the content of object, resolving indect object reference if necessary. - * @param string $obj Object value. - * @return array containing object data. - * @protected - * @since 1.0.000 (2011-06-26) - */ - protected function getObjectVal($obj) { - if ($obj[0] == 'objref') { - // reference to indirect object - if (isset($this->objects[$obj[1]])) { - // this object has been already parsed - return $this->objects[$obj[1]]; - } elseif (isset($this->xref[$obj[1]])) { - // parse new object - $this->objects[$obj[1]] = $this->getIndirectObject($obj[1], $this->xref[$obj[1]], false); - return $this->objects[$obj[1]]; - } - } - return $obj; - } - - /** - * Decode the specified stream. - * @param array $sdic Stream's dictionary array. - * @param string $stream Stream to decode. - * @return array containing decoded stream data and remaining filters. - * @protected - * @since 1.0.000 (2011-06-22) - */ - protected function decodeStream($sdic, $stream) { - // get stream length and filters - $slength = strlen($stream); - if ($slength <= 0) { - return array('', array()); - } - $filters = array(); - foreach ($sdic as $k => $v) { - if ($v[0] == '/') { - if (($v[1] == 'Length') AND (isset($sdic[($k + 1)])) AND ($sdic[($k + 1)][0] == 'numeric')) { - // get declared stream length - $declength = intval($sdic[($k + 1)][1]); - if ($declength < $slength) { - $stream = substr($stream, 0, $declength); - $slength = $declength; - } - } elseif (($v[1] == 'Filter') AND (isset($sdic[($k + 1)]))) { - // resolve indirect object - $objval = $this->getObjectVal($sdic[($k + 1)]); - if ($objval[0] == '/') { - // single filter - $filters[] = $objval[1]; - } elseif ($objval[0] == '[') { - // array of filters - foreach ($objval[1] as $flt) { - if ($flt[0] == '/') { - $filters[] = $flt[1]; - } - } - } - } - } - } - // decode the stream - $remaining_filters = array(); - foreach ($filters as $filter) { - if (in_array($filter, TCPDF_FILTERS::getAvailableFilters())) { - try { - $stream = TCPDF_FILTERS::decodeFilter($filter, $stream); - } catch (Exception $e) { - $emsg = $e->getMessage(); - if ((($emsg[0] == '~') AND !$this->cfg['ignore_missing_filter_decoders']) - OR (($emsg[0] != '~') AND !$this->cfg['ignore_filter_decoding_errors'])) { - $this->Error($e->getMessage()); - } - } - } else { - // add missing filter to array - $remaining_filters[] = $filter; - } - } - return array($stream, $remaining_filters); - } - - /** - * Throw an exception or print an error message and die if the K_TCPDF_PARSER_THROW_EXCEPTION_ERROR constant is set to true. - * @param string $msg The error message - * @public - * @since 1.0.000 (2011-05-23) - */ - public function Error($msg) { - if ($this->cfg['die_for_errors']) { - die('TCPDF_PARSER ERROR: '.$msg); - } else { - throw new Exception('TCPDF_PARSER ERROR: '.$msg); - } - } - -} // END OF TCPDF_PARSER CLASS - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/tools/tcpdf_addfont.php b/tools/tcpdf/tools/tcpdf_addfont.php index 2937c7564..e1a2b32e5 100755 --- a/tools/tcpdf/tools/tcpdf_addfont.php +++ b/tools/tcpdf/tools/tcpdf_addfont.php @@ -7,9 +7,9 @@ // Last Update : 2013-08-05 // Authors : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com // Remi Collet -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2011-2013 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2011-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. //