tecnickcom / tc-lib-pdf
PHP PDF Library
Fund package maintenance!
www.paypal.com/cgi-bin/webscr?cmd=_donations¤cy_code=GBP&business=paypal@tecnick.com&item_name=donation%20for%20tc-lib-pdf%20project
Installs: 269 891
Dependents: 8
Suggesters: 0
Security: 0
Stars: 1 642
Watchers: 190
Forks: 219
Open Issues: 9
Requires
- php: >=8.0
- ext-date: *
- ext-pcre: *
- tecnickcom/tc-lib-barcode: ^2.4
- tecnickcom/tc-lib-color: ^2.2
- tecnickcom/tc-lib-file: ^2.0
- tecnickcom/tc-lib-pdf-encrypt: ^2.1
- tecnickcom/tc-lib-pdf-font: ^2.6
- tecnickcom/tc-lib-pdf-graph: ^2.2
- tecnickcom/tc-lib-pdf-image: ^2.1
- tecnickcom/tc-lib-pdf-page: ^4.2
- tecnickcom/tc-lib-unicode: ^2.0
- tecnickcom/tc-lib-unicode-data: ^2.0
Requires (Dev)
- pdepend/pdepend: 2.13.0
- phpmd/phpmd: 2.13.0
- phpunit/phpunit: 10.1.2 || 9.6.13
- squizlabs/php_codesniffer: 3.7.2
This package is auto-updated.
Last update: 2024-11-22 20:28:42 UTC
README
PHP PDF Library
Please consider supporting this project by making a donation via PayPal
- category Library
- package \Com\Tecnick\Pdf
- author Nicola Asuni info@tecnick.com
- copyright 2002-2024 Nicola Asuni - Tecnick.com LTD
- license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
- link https://tcpdf.org
- source https://github.com/tecnickcom/tc-lib-pdf
- SRC DOC https://tcpdf.org/docs/srcdoc/tc-lib-pdf
Description
PHP library for generating PDF documents on-the-fly. This is the new version of the TCPDF library that will be deprecated once all the existing features are ported.
NOTE: The first complete (stable) version will be 8.1.0. As this is currently unstable, only the patch number in the version will be updated, even if breaking changes are introduced.
Main Features:
(the features striked through are in progress)
- 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;
- []
SVG - []
CSS - []
HTML - []
JavaScript - 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 via tc-lib-barcode.
- JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Pdfs and Transparencies;
- page common content support (header/footer);
- document encryption up to 256 bit and digital signature certifications;
- 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.
Third party fonts:
This library may include third party font files released with different licenses.
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.
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).
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/
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
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/
ICC profile:
TCPDF includes the sRGB.icc profile from the icc-profiles-free Debian package: https://packages.debian.org/source/stable/icc-profiles-free
Getting started
First, you need to install all development dependencies using Composer:
$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer
You can install the library via composer:
composer require tecnickcom/tc-lib-pdf
This project include a Makefile that allows you to test and build the project with simple commands. To see all available options:
make help
To install all the development dependencies:
make deps
Running all tests
Before committing the code, please check if it passes all tests using
make qa
All artifacts are generated in the target directory.
Example
Examples are located in the example
directory.
Start a development server (requires PHP 8.0+) using the command:
make server
and point your browser to http://localhost:8971/index.php
Installation
Create a composer.json in your projects root-directory:
{ "require": { "tecnickcom/tc-lib-pdf": "dev-main" }, "repositories": [ { "type": "vcs", "url": "git@github.com:tecnickcom/tc-lib-pdf.git" } ] }
Packaging
This library is mainly intended to be used and included in other PHP projects using Composer.
However, since some production environments dictates the installation of any application as RPM or DEB packages,
this library includes make targets for building these packages (make rpm
and make deb
).
The packages are generated under the target
directory.
When this library is installed using an RPM or DEB package, you can use it your code by including the autoloader:
require_once ('/usr/share/php/Com/Tecnick/Barcode/autoload.php');
Developer(s) Contact
- Nicola Asuni info@tecnick.com