PHP library to parse PDF documents
Please consider supporting this project by making a donation via PayPal
- category Library
- package \Com\Tecnick\Pdf\Parser
- author Nicola Asuni info@tecnick.com
- copyright 2015-2017 Nicola Asuni - Tecnick.com LTD
- license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
- link https://github.com/tecnickcom/tc-lib-pdf-parser
- SRC DOC https://tcpdf.org/docs/srcdoc/tc-lib-pdf-parser
- RPM https://bintray.com/tecnickcom/rpm/tc-lib-pdf-parser
- DEB https://bintray.com/tecnickcom/deb/tc-lib-pdf-parser
PHP library to parse PDF documents. The initial source code has been derived from TCPDF.
Forked by Ted Phillips (vaultwiki) in 2017 because the original library uses too much memory for large files and results are unreliable when the file size exceeds pcre.backtrack_limit. In the original, a sample 40MB PDF required over 250MB system memory to parse; the entire PDF was being loaded into memory and duplicated several times. This fork instead parses the file in chunks of 1KB or lower. After parsing, the peak memory usage for our sample file was less than 5% of its actual file size.
First, you need to install all development dependencies using Composer:
$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composerThis project include a Makefile that allows you to test and build the project with simple commands. To see all available options:
make helpTo install all the development dependencies:
make build_devBefore committing the code, please check if it passes all tests using
make qa_allthis generates the phpunit coverage report in target/coverage. Please check if the tests are covering all code.
Generate the documentation:
make docsGenerate static analysis reports in target/report:
make reportsOther make options allows you to install this library globally and build an RPM package.
Please check all the available options using make help.
Examples are located in the example directory.
Start a development server (requires PHP 5.4) using the command:
make server
and point your browser to http://localhost:8000/index.php
Create a composer.json in your projects root-directory:
{
"require": {
"tecnickcom/tc-lib-pdf-parser": "dev-master"
},
"repositories": [
{
"type": "vcs",
"url": "git@github.com:tecnickcom/tc-lib-pdf-parser.git"
}
]
}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/Pdf/Parser/autoload.php');
NOTE: Updated RPM and Debian packages of this library can be downloaded from: https://bintray.com/tecnickcom
- Nicola Asuni info@tecnick.com

