Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Fpdi Laravel Package

setasign/fpdi

FPDI is a PHP library that imports pages from existing PDF files and uses them as templates in FPDF, TCPDF, or tFPDF. No special PHP extensions required. Supports modern, namespaced (v2) code with PSR-4 autoloading and better performance.

View on GitHub
Deep Wiki
Context7
v2.6.6

Fixes

  • Fixed generation of internal reader-id in FpdiTrait.
  • Clear Tokenizer stack in CrossReference constructor.
v2.6.5

Fixes

  • Fixed font issue in FpdfTplTrait.
  • Fixed PHP 8.5 compatibility in Ascii85 class.

Tweaks

  • Use fully qualified function names.
  • Replaced list() calls by array destructing via [].
  • Added #[\SensitiveParameter]-attribute to $parserParams parameter in all methods handling that parameter.
  • Dropped support for PHP 7.1 due to security issues in legacy dependencies.
v2.6.4

Fixes

  • Fixed handling of recursive structures to avoid memory exhaustion (CVE-2025-54869).

Tweaks

  • Added check for false of return value of StreamReader::readBytes() in CrossReference\FixedReader to avoid PHP warning.
v2.6.3

Fixes

  • Added missing PdfType::resolve() calls in readPages() method (via #227).

Tweaks

  • Dropped support for PHP 5.6 + 7.0 due to missing support in major dependencies.
  • Reverted fix for implicitly nullable parameter declarations.
v2.6.2

Fixes

  • Fixed importing of links in none PDFDocEncoding.
  • Fixed handling of faulty dictionaries.

Tweaks

  • Fixed some small type inspection issues.
v2.6.1

Fixes

Tweaks

v2.6.0

Fixes

  • Ignore undefined objects in link annotation logic (fixes #191).
  • Flatten indirect references in imported annotation dictionaries (fixes #195).

Tweaks

  • Ensure newline before endobj token (fixes #184).
  • Optimized fallback logic in flate decode method.
  • Added tests for PHP 8.3.

Features

  • Added PdfType::flatten() method, which flattens indirect objects to direct objects.
v2.5.0

Fixes

  • Catch faulty stream wrapper implementations in StreamReader constructor.

Tweaks

  • Optimized parameter naming in PdfIndirectObject::parse().
  • Moved value parsing into explicit methods.
  • Optimized doc-blocks.

Features

  • Added PdfString::escape() method.
  • Add support for handling of Crypt filter in PdfStream class.
v2.4.1

Bugfix

  • Fixed bug if FPDI is used in mPDF (fixes #177).
v2.4.0

Features

  • Add support for importing external links/link annotations with an URI action.

Tweaks

  • Use window size of 31 in decompression fallback for FlateDecode filter.
v2.3.7

Fixes

  • Fixed rare bug in LZW decoding.

Tweaks

  • Added @return doc-block to some methods (fixes #152).
  • Added local test which imports layer definitions.
  • Added local test to access Info dictionary of the source file.
  • Verified compatibility with FPDF 1.85.
  • Optimized support for ignoring faulty structures in page tree.
v2.3.6

Fixes

  • Fixed handling of faulty structures in Contents entry (fixes #130).
v2.3.5

Fixes

  • Added support for PHP 8.0.

Tweaks

  • Updated PHPUnit tests.
v2.3.4

Fixes

  • Fixed fallback in Filter\Flate::decode().
  • Fixed minor documentation errors in doc blocks.
  • Supressed notice in flate filter for PHP 8.0.

Tweaks

  • Micro optimization of LineReader::extract().
  • Added visual tests to testsuite.
  • Added PHP_CodeSniffer and PHPStan inspections.
v2.3.3

Tweaks

  • Handle streams with invisible content (white signs) and a length of 0.
v2.3.2

Tweaks

  • Throw explicit exception in case of invalid object type at xref offset.
v2.3.1

Fixes

  • Fixed reading of page tree with uncommon structures (#87).

Tweaks

  • Optimized handling of uncommon FlateDecode streams.
v2.3.0

Fixes

  • Optimized decoding in Ascii85 filter class.
  • Fixed PHP 7.4 compatibility issue when calling hexdec() with invalid characters.

Features

  • Added support for tFPDF 1.31 which is based on FPDF 1.82.

Tweaks

  • Updated copyright information.
v2.2.0

Fixes

  • Added cleanUp() method in FpdiTrait and StreamReader to close open file handles when they are not used anymore (#70).

Features

  • Added support for handling FlateDecode streams that uses CRC32 checksum.
  • Added support for indirect references in /Length values of stream dictionaries.
  • Added support for reading streams with an invalid /Length value.

Tweaks

  • Use fully-qualified function calls.
  • Fixed wording in various DocBlocks.
v2.1.1

Fixes

  • Fixed handling of startxref == 0 with only a single cross-reference.
v2.1.0

Fixes

  • Save colors in FpdfTpl state. (#51)
  • Ignore cross-reference pointers to byte offset 0. (#55 / #58)

Features

  • Added support for tFPDF.
  • Optimized PdfParser::readValue() to handle an expected object type and implemented this on various calls. (#22)

Tweaks

  • Moved Fpdi\TcpdfFpdi to Fpdi\Tcpdf\Fpdi (the old class still exists but is marked as deprecated).
  • Optimized DocBlocks and code style.
v2.0.3

Fixes

  • Prohibit calling of AddPage() or setPageFormat() if a template is active. (#45)
  • Save "underline" property in FpdfTpl. (#44)

Features

  • Added $groupXObject parameter to FpdfTpl::beginTemplate() method. (#25)
v2.0.2

Fixes

  • Added support for escaped version numbers in Version (name) entry in document catalog.
  • Check parser instance in destruct method.

Tweaks

  • Fixed interchanged parameters in doc-block (#40).
  • Added .gitattributes to remove irrelevant files from release package.
v2.0.1

Fixes

  • Optimize closing of file handle in StreamReader class. (#30)

Tweaks

  • All internal function calls are FQN calls now.
  • Added @noinspection annotations.
v2.0.0

Final release of FPDI 2:

  • Namespaced code
  • Clean and up-to-date code base and style
  • PSR-4 compatible autoloading
  • Performance improvements by up to 100%
  • Less memory consumption
  • Native support for reading PDFs from strings or stream-resources
  • Support for documents with "invalid" data before their file-header
  • Optimized page tree resolving
  • Usage of individual exceptions
  • Several test types (unit, functional and visual tests)
1.6.2

Bugfixes:

  • Clean-up properties if a parser instance throws an exception at construction time.
  • Ignore invalid object references/types in a pages content array.
  • Throw an exception if a page object isn't an indirect object.
  • Optimized pdf_context::getPos() method if stream position is beyond end of file.
1.6.1
1.6.0

Switch from Apache Software License, Version 2.0 to MIT License. Bugfix: Added integer cast in ASCII85 filter for PHP 7 compatibility reason.

1.5.4

No new features or bugfixes. This release includes only changes to the composer.json which allows us to create packages with fixed dependencies:

1.5.3
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport