Weave 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

Pdfparser Laravel Package

prinsfrank/pdfparser

prinsfrank/pdfparser is an MIT-licensed PDF parsing library for PHP 8.1+ with no external dependencies. It is on average 2.6x faster and 5x more memory-efficient than smalot/pdfparser, supports encrypted PDFs, and is actively maintained.

View on GitHub
Deep Wiki
Context7

PHP library to Read and extract text & images from PDFs - Fast & Low memory - Built from scratch

Frequently asked questions about Pdfparser
How do I install prinsfrank/pdfparser in a Laravel application?
Install it with Composer using composer require prinsfrank/pdfparser. It is a native PHP library with no Laravel-specific dependencies, so you can use it directly or wrap it in a Laravel service provider for dependency injection. This makes it straightforward to use in controllers, jobs, and console commands.
Does prinsfrank/pdfparser require Java, Python, or Ghostscript?
No. prinsfrank/pdfparser is implemented in pure PHP and has no external dependencies such as Java, Python, Ghostscript, pdftotext, or Imagick. It parses PDF syntax directly, which keeps it portable across Laravel, Symfony, Lumen, and other PHP stacks.
Is prinsfrank/pdfparser faster than smalot/pdfparser?
Yes. The package reports being on average 2.6x faster and using 5x less memory than smalot/pdfparser, with up to 110x faster performance on complex documents. It also reports a 100% success rate across its test PDF corpus versus 95.3% for smalot/pdfparser. Benchmark your own PDFs, especially multi-column documents, because recent releases add layout detection and caching work.
Can prinsfrank/pdfparser parse encrypted PDFs?
Yes. prinsfrank/pdfparser supports encrypted PDFs, which smalot/pdfparser cannot handle. This makes it a better fit for Laravel applications that receive protected documents from users, partners, or external systems.
How does prinsfrank/pdfparser handle multi-column PDF text extraction?
Recent versions add a layout and heuristics layer for multi-column text extraction, including gutter detection, header and footer detection, and tuned column thresholds. This helps with annual reports, 10-K filings, academic papers, brochures, and newsletter-style PDFs. Because output ordering is inferred by heuristics, verify results against your own document corpus.
Is prinsfrank/pdfparser compatible with Laravel queues and Storage?
Yes. It is a native PHP library that works well in queued jobs for asynchronous parsing of uploaded files. You can read PDFs from Laravel Storage disks or S3 and pass the content into the parser. Wrapping it in a service provider keeps your Laravel code clean and testable.
What PHP version does prinsfrank/pdfparser require?
prinsfrank/pdfparser requires PHP 8.1 or higher. It is built from scratch for modern PHP and preserves type information and the underlying PDF document structure. It does not require any Laravel-specific dependencies, so it fits any modern Laravel application running PHP 8.1+.
How can I reduce memory usage when parsing large PDFs in Laravel?
Use the useInMemoryStream option according to your workload: set it to true for low-latency real-time parsing and false for batch or memory-constrained queue jobs. The library is designed for low footprint with streaming and file caching, but multi-column grouping can hold additional per-page state. Measure memory on large multi-column PDFs before relying on it in production.
Is prinsfrank/pdfparser actively maintained and production ready?
Yes. It is MIT licensed, actively maintained, and checked with PHPStan level 10 static analysis. It supports PHP 8.1+ and has no external runtime dependencies. As with any parser, validate output for your specific PDFs, especially newer annotation and markdown link surfaces and heuristic multi-column layouts.
What are the alternatives to smalot/pdfparser for Laravel?
prinsfrank/pdfparser is a strong MIT-licensed alternative to smalot/pdfparser for Laravel projects. It is pure PHP, supports encrypted PDFs, and reports better speed, memory use, and success rates. Setasign is not MIT licensed or open source, while tools that call Java, JavaScript, or Python behind the scenes lose type information and PDF structure.
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.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log