tecnickcom/tc-lib-pdf-filter

PHP library to decode PDF compression and encryption filters

Maintainers

Package info

github.com/tecnickcom/tc-lib-pdf-filter

Homepage

pkg:composer/tecnickcom/tc-lib-pdf-filter

Statistics

Installs: 96 965

Dependents: 1

Suggesters: 0

Stars: 6

Open Issues: 0


README

Decoder library for standard PDF stream filters.

Latest Stable Version Build Coverage License Downloads

Donate via PayPal

If this library helps your parser stack, please consider supporting development via PayPal.

Overview

tc-lib-pdf-filter decodes compression and transformation filters defined by the PDF specification.

It is intended for both generation and parsing workflows where PDF streams must be encoded or decoded according to the standard filter pipeline. By isolating filter logic in one component, callers get predictable behavior and easier testing across different document inputs.

Namespace \Com\Tecnick\Pdf\Filter
Author Nicola Asuni info@tecnick.com
License GNU LGPL v3 - see LICENSE
API docs https://tcpdf.org/docs/srcdoc/tc-lib-pdf-filter
Packagist https://packagist.org/packages/tecnickcom/tc-lib-pdf-filter

Features

PDF Filters

  • FlateDecode, LZWDecode, RunLengthDecode
  • ASCIIHexDecode, ASCII85Decode
  • CCITTFaxDecode, DCTDecode, JPXDecode, JBIG2Decode

API Design

  • Decode one filter or apply multiple filters in sequence
  • Pure-PHP implementation suitable for parser integration
  • Typed exceptions for unknown/invalid filter handling

Requirements

  • PHP 8.1 or later
  • Extensions: zlib, pcre
  • Composer

Installation

composer require tecnickcom/tc-lib-pdf-filter

Quick Start

<?php

require_once __DIR__ . '/vendor/autoload.php';

$filter = new \Com\Tecnick\Pdf\Filter\Filter();
$decoded = $filter->decodeAll(['ASCIIHexDecode', 'FlateDecode'], $data);

Development

make deps
make help
make qa

Packaging

make rpm
make deb

For system packages, bootstrap with:

require_once '/usr/share/php/Com/Tecnick/Pdf/Filter/autoload.php';

Contributing

Contributions are welcome. Please review CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md.

Contact

Nicola Asuni - info@tecnick.com