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
Pdf Watermarker

Pdf Watermarker Laravel Package

filippo-toso/pdf-watermarker

Add text or image watermarks to existing PDF files in PHP. Configure the watermark content, position, opacity, and rotation, then apply it to documents on the fly via a straightforward API. Useful for branding, draft labels, or protecting sensitive PDFs in Laravel and plain PHP apps.

View on GitHub
Deep Wiki
Context7

Simple PDF Watermarker with Laravel support

Frequently asked questions about Pdf Watermarker
How do I install filippo-toso/pdf-watermarker in a Laravel application?
Install it with Composer by running composer require filippo-toso/pdf-watermarker. In Laravel the package registers a service provider and facade, and you can optionally publish its configuration file to adjust watermark defaults. A proof of concept usually takes under a day because the API surface is small.
Does this package work in plain PHP without Laravel?
Yes. It is described as adding watermarks to PDFs in PHP generally, with Laravel support layered on top, so the service provider and facade are optional conveniences. In a non-Laravel project you call the library directly through its straightforward API. Keep the call behind an application service so the implementation stays swappable.
Which Laravel and PHP versions does this package support?
Check the illuminate/support constraint in composer.json rather than trusting the README, because small packages often lag behind Laravel major releases. Run composer why-not with your target Laravel and PHP versions to confirm the dependency graph resolves cleanly. If it does not, look for a maintained fork or adjust your version constraints before committing.
What license is filippo-toso/pdf-watermarker under, and can I use it commercially?
The repository is flagged as NOASSERTION, meaning no standard license was detected, so treat licensing as a hard gate. The package also pulls in FPDI and FPDF transitively, and those libraries carry their own terms that have historically included commercial obligations for some uses. Have legal review the full dependency tree before adoption, and start that review on day one because it has a long lead time.
How do I configure the watermark text, position, rotation, and opacity?
Watermark content, position, rotation, opacity, and color are all configurable through the package API or its publishable Laravel config file. You typically define the watermark once and apply it to each document or page as needed. Verify in your own output that the stamp lands inside the visible crop box and above any opaque background layers.
Can I watermark password-protected or encrypted PDFs?
Encrypted, password-protected, and permission-restricted PDFs are a common failure point for PDF watermarking libraries, and no guaranteed behavior is documented here. Test with your actual encrypted files and decide explicitly whether your application should reject, skip, or fail the job. The outcome to guard against is a job that reports success while producing no visible watermark.
Is the watermark added as a vector overlay or a rasterized image?
That depends on the underlying FPDI and FPDF behavior and should be measured rather than assumed. Compare input and output file sizes and zoom into the rendered page to see whether the stamp is crisp vector content or a raster image. Rasterized watermarks bloat files and lose quality, which matters for archival or high-volume workflows.
What are the memory and performance characteristics for large PDFs?
Watermarking runs synchronously and in-process, so memory and wall-clock cost scale with page count and document size. Benchmark a representative 50-page, 20 MB file before committing to a request-time implementation. For anything beyond a single on-demand download, wrap the call in a queued job with explicit timeouts and memory limits.
Is this package actively maintained enough to use in production?
The maturity signals are thin: roughly 16 stars, zero dependents, and a single maintainer. That means few downstream users are finding its bugs and no upstream pressure is driving patches, so plan to own the code after adoption. Wrap it in an internal service with regression tests against your own PDF fixtures so you can fork or replace it later.
How should I test PDF watermarking before shipping?
Build a fixture set from your ten most representative production PDFs, including scanned, rotated, password-protected, large, and AcroForm or unusual-font documents. Compare rendered output visually and assert on file size, page count, and successful job completion. A hardened internal wrapper with regression tests typically takes two to four days of engineering, and that is where the schedule buffer belongs.
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.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings