Search by

smalot / pdfparser

smalot

Pdf parser library. Can read and extract information from pdf file.

Package info

github.com/smalot/pdfparser

Homepage

pkg:composer/smalot/pdfparser

Statistics

Installs: 53 498 146

Dependents: 266

Suggesters: 19

Stars: 2 731

Open Issues: 200


README

Version CI CS Scrutinizer Code Quality Downloads

The smalot/pdfparser is a standalone PHP package that provides various tools to extract data from PDF files.

Maintenance status

This library is under limited maintenance. It is still kept compatible with supported PHP versions, and community contributions may be accepted. However, there is currently no active feature development and no guarantee that pull requests will be reviewed or merged in a timely manner. If you plan to contribute anything beyond a small, well-scoped fix, please read CONTRIBUTING.md first.

Features

  • Load/parse objects and headers
  • Extract metadata (author, description, ...)
  • Extract text from ordered pages
  • Support of compressed PDFs
  • Support of MAC OS Roman charset encoding
  • Handling of hexa and octal encoding in text sections
  • Create custom configurations (see CustomConfig.md).

Currently, secured documents and extracting form data are not supported.

License

This library is under the LGPLv3 license.

Install

This library requires PHP 7.1+ since v1. You can install it via Composer:

composer require smalot/pdfparser

In case you can't use Composer, you can include alt_autoload.php-dist. It will include all required files automatically.

Quick example

<?php

use Smalot\PdfParser\Config;
use Smalot\PdfParser\Parser;

// Custom config: Recommended when parsing PDFs from untrusted sources
$config = new Config();

// Cap how far a single stream is decompressed, to avoid memory exhaustion.
// Pick a value that fits your content, and combine it with a sane PHP memory_limit.
$decodeMemoryLimit = 100 * 1024 * 1024; // = 100 MB
$config->setDecodeMemoryLimit($decodeMemoryLimit);

$parser = new Parser([], $config);
$document = $parser->parseFile('/path/to/untrusted-file.pdf');

echo $document->getText();

Further usage information can be found here.

See CustomConfig.md for all configuration options.

Documentation

Documentation can be found in the doc folder.