Stirling PDF is a free and open source PDF toolkit that brings a large collection of document tools into one application. Instead of installing separate utilities for merging, splitting, converting, compressing, signing, OCR, or editing PDFs, Stirling PDF provides them through a unified web interface that can run locally or on your own server.
Its self-hosted design is one of its biggest advantages. Documents can be processed on infrastructure you control, making Stirling PDF an attractive alternative to many online PDF services for users who care about privacy and data ownership.
Working with PDF files often means jumping between different applications and websites. One service might handle compression while another is needed for OCR or conversion. Stirling PDF takes a more centralized approach by providing a broad collection of PDF operations from a single interface.
The application can be installed locally or deployed with Docker, making it suitable for both individual users and organizations. It can also be used as a self-hosted document processing service that other users access through a browser.
Key Features of Stirling PDF
Merge and Split PDFs
Stirling PDF makes common document operations straightforward. Multiple PDF files can be merged into a single document, while large PDFs can be split into individual pages or smaller sections.
This is particularly useful for preparing reports, combining scanned documents, or reorganizing large document collections.
PDF Compression
The built-in compression tools can reduce file sizes for documents that need to be uploaded, emailed, or stored more efficiently.
Users can choose different compression settings depending on whether they prioritize smaller files or maintaining document quality.
PDF Conversion
Stirling PDF supports numerous document conversion workflows, including converting between PDF and common office or image formats.
This makes it useful as a general-purpose document conversion utility rather than simply a PDF editor.
OCR
Optical Character Recognition allows scanned documents and images containing text to become searchable and easier to process.
OCR is particularly useful for digitizing scanned paperwork, archival documents, invoices, and other PDFs that do not contain an actual text layer.
PDF Editing
The application provides tools for manipulating PDF pages and content, including rotating, reordering, extracting, and adding elements to documents.
It is not intended to completely replace a professional desktop PDF editor for advanced layout editing, but it covers a large number of everyday tasks.
Digital Signatures
Stirling PDF includes tools for working with PDF signatures and certificates. This is useful when documents need to be signed or prepared for digital workflows.
Watermarks and Page Numbers
Users can add watermarks, headers, footers, page numbers, and other repeated elements to documents.
These features are particularly useful for reports, internal documentation, and business paperwork.
Security Tools
Stirling PDF includes functionality for encrypting and decrypting PDFs, removing passwords where authorized, and managing document permissions.
This gives users more control over sensitive documents without needing to upload them to an external website.
Self-Hosted Deployment
One of Stirling PDF's biggest strengths is its deployment flexibility. It can run locally or through Docker, allowing users to keep document processing within their own infrastructure.
This makes it particularly appealing to businesses, developers, homelab users, and privacy-conscious individuals.
Download Stirling PDF v3.3.0 - Software Mirrors |
|---|
Stirling PDF v3.3.0 for WindowsStirling-PDF-windows-x86_64.msi | 211.68 MB Stirling-PDF-windows-arm64-setup.exe | 200.13 MB |
Stirling PDF v3.3.0 for macOSStirling-PDF-macos-universal.dmg | 262.73 MB Stirling-PDF-macos-universal.app.tar.gz | 262.54 MB |
Stirling PDF v3.3.0 for LinuxStirling-PDF-linux-x86_64.rpm | 214.62 MB Stirling-PDF-linux-x86_64.deb | 216.92 MB Stirling-PDF-linux-x86_64.AppImage | 295.69 MB |
Stirling PDF v3.3.0 for Java (Cross-Platform)Stirling-PDF.jar | 318.92 MB Stirling-PDF-with-login.jar | 403.35 MB Stirling-PDF-server.jar | 221.55 MB |
Stirling PDF v3.3.0 Source Code
Stirling PDF v3.3.0 Source code (zip)
Stirling PDF v3.3.0 Source code (tar.gz)
|
Stirling PDF v3.3.0 Release Notes: Stirling Office Convert (still beta) has been upgraded. You can also now pick it as the converter in lots of other tools such as Email, HTML, Markdown and ebooks to PDF plus PDF to HTML/Markdown/XML/EPUB/AZW3, and PDF/A. Please compare it with the existing converter and let us know!
Our roadmap is to turn Office Convert on by default next week, and then, if no changes are required, fully remove LibreOffice and other dependencies the week after. So now is the best time to try it and report (And send example files) any conversions that don't look correct!
Other changes are:
- SSO auto-login now works even when username/password login is enabled (admins can still reach the password form via /login?all)
- JPDFium upgrade and support and Windows ARM64 support, This update also brings better redaction, merge/split improvements and lower memory on big files
- Faster and more accurate mobile scanning, with no more 9MB OpenCV bundled
- Faster requests with far fewer database reads and new entity caching
- Quieter startup and runtime logs
- Spring Boot, Docker base image and lots of other dependency updates
- Updated translations for all languages
We also fixed some bugs including
- Convert sending multiple or mixed file uploads to the wrong conversion
- Ebook settings resetting the selected output format
- "Include all recipients" not controlling CC/BCC in email to PDF
- PDF/UA font embedding making form fields no longer fillable
- Certificate signing rejecting unencrypted PKCS#8 PEM keys
- Viewer jumping away from your page after adding a bookmark
- Archive extraction being offered for non-zip files
This release also includes several security and stability improvements, so we advise users to update when possible!
Note: the old, deprecated backend PDF text editing API has been removed in favour of the new Text Editor. We are hoping to add a new Text Editor API soon!
What's Changed
Bug Fixes- fix(viewer): keep the reading page after adding a bookmark by @EthanHealy01 in #8675
- fix(cert-sign): accept unencrypted PKCS#8 PEM private keys by @EthanHealy01 in #8694
- fix(security): bound request size and harden the mobile scanner relay by @reecebrowne in #8672
- fix(security): case-insensitive rename check and protect MFA settings by @reecebrowne in #8687
- fix(fileEditor): only offer archive extraction for .zip files by @balazs-szucs in #8722
- fix(invites): consume a single-use invite token atomically with account creation by @Frooodle in #7861
- fix(invites): reject malformed emails and unknown teams when an invite is created by @Frooodle in #7864
Enhancements- Add support for editing image accessibility tags in Text Editor by @jbrunton96 in #8623
- Turkish (tr-TR): fix remaining English strings and mark untranslatable keys by @qwist1233-cpu in #8662
- Remove unnecessary attributes from ad-hoc pipeline run requests by @jbrunton96 in #8679
- Improve handling of temporary files in pipelines by @jbrunton96 in #8668
- Calibre and Office conversion hardening by @EthanHealy01 in #8669
- Neaten handling of sensitive fields in policies by @jbrunton96 in #8685
- Limit output page counts in poster, section split and duplicate tools by @ConnorYoh in #8676
- Bound the PDF/A sanitizer's per-page and per-annotation work by @ConnorYoh in #8681
- Honour LibreOffice removal in PDF to Office conversions by @ConnorYoh in #8665
- Improve EML to PDF robustness with large and unusual inputs by @EthanHealy01 in #8683
- feat(security): SSO auto-login with password login enabled, bypassable via /login?all by @EthanHealy01 in #8486
- feat(api): implement Hibernate second-level caching for core entities using Caffeine JCache by @balazs-szucs in #7504
- Validate page counts on load and visit shared PDF objects once by @ConnorYoh in #8689
- Hide save-to-server and sharing controls from guest accounts by @Frooodle in #8230
- ci(a11y): anchor nested task calls on the root Taskfile by @EthanHealy01 in #8708
- Trim noisy startup and runtime logs by @Frooodle in #8403
- Add support for editing text accessibility tags in Text Editor by @jbrunton96 in #8670
- Add limits to max decode size by @jbrunton96 in #8691
- Read auth.users only on the paths that consume it by @Frooodle in #8063
- Reuse the already-resolved User instead of re-querying it per request by @Frooodle in #8061
- Fix deleted/disabled-user token handling, error stack traces, and admin-change pool starvation by @Frooodle in #8579
- Cut repeated database reads from the authenticated request path by @Frooodle in #8066
- Validate tool input, apply documented defaults and fix tool crashes by @Frooodle in #8464
- Harden Office and PDF conversion input handling by @EthanHealy01 in #8717
- build(deps): bump the serde group across 2 directories with 1 update by @dependabot[bot] in #8654
- build(deps): bump rustls from 0.23.45 to 0.23.46 in /frontend/src-tauri by @dependabot[bot] in #8700
- build(deps): bump follow-redirects from 1.16.0 to 1.16.2 in /frontend by @dependabot[bot] in #8755
- Hoist platform providers to be global for the app by @jbrunton96 in #8728
- Add missing attributes to mark user content as private by @jbrunton96 in #8729
- Replace OpenCV in the mobile scanner with built-in page detection by @Frooodle in #8719
- Upgrade Office Convert to 0.3.3 and extend native conversion options by @Frooodle in #8761
- Correct tool operation docs to match what each operation does by @Frooodle in #8465
- Fix Convert batch routing, ebook settings and email recipients by @Frooodle in #8766
- Match sign-in icon sizes and render GitHub and Apple marks in pure black or white by @EthanHealy01 in #8769
- Mark the language of a document and of passages in the Text Editor by @EthanHealy01 in #8723
- Release 3.3.0: JPDFium 1.3.0, Docker base 1.1.1, PPA retry and translations by @Frooodle in #8781
- Stop the Shared Signing user picker from listing users for guests by @Frooodle in #8228
- Keep form fields fillable when embedding fonts for PDF/UA by @Frooodle in #8716
- Make LibreOffice sandbox tests pass on Windows by @Frooodle in #8287
Minor Enhancements- chore: remove deprecated backend PDF text editing and Type3 font cache by @balazs-szucs in #8504
Docker Updates- build(deps): bump com.microsoft.onnxruntime:onnxruntime from 1.26.0 to 1.30.0 by @dependabot[bot] in #8260
- build(deps): bump docker/login-action from 4.6.0 to 4.7.0 by @dependabot[bot] in #8744
- Bump Docker runtimes and bundled tool versions by @Frooodle in #8762
Development Tools- build(deps): bump astral-sh/setup-uv from 10.3.0 to 10.3.2 by @dependabot[bot] in #8745
Other Changes- build(deps): bump ossf/scorecard-action from 2.4.4 to 2.5.0 by @dependabot[bot] in #8635
- Use specific Playwright container for a11y jobs by @jbrunton96 in #8696
- Bump bucket4jVersion from 8.19.0 to 8.20.0 by @dependabot[bot] in #8258
- Bump Spring Boot to 4.1.2 by @Frooodle in #8715
- build(deps): bump awsSdkVersion from 2.54.13 to 2.55.14 by @dependabot[bot] in #8345
- build(deps): bump com.google.guava:guava from 33.6.0-jre to 33.7.2-jre by @dependabot[bot] in #8371
- build(deps-dev): bump tomlkit from 0.15.1 to 0.15.2 in /engine by @dependabot[bot] in #8652
- build(deps): bump the simple-java-mail group across 1 directory with 2 updates by @dependabot[bot] in #8736
- build(deps-dev): bump cryptography from 50.0.1 to 50.0.2 in /engine by @dependabot[bot] in #8737
- build(deps-dev): bump fpdf2 from 2.8.8 to 2.8.9 in /engine by @dependabot[bot] in #8740
- build(deps): bump github/codeql-action/upload-sarif from 4.39.0 to 4.39.1 by @dependabot[bot] in #8742
- Cover the PDF/UA en-US document-language default by @EthanHealy01 in #8752
- build(deps): bump logback from 1.6.3 to 1.6.5 by @dependabot[bot] in #8738
- build(deps): bump Swatinem/rust-cache from 2.9.2 to 2.9.3 by @dependabot[bot] in #8743
- Bump Jinjava and jsoup and align Jackson versions by @Frooodle in #8763
- Bump Python AI, telemetry and image processing dependencies by @Frooodle in #8764
- Set reported license and source link for backend dependencies by @EthanHealy01 in #8765
New Contributors- @qwist1233-cpu made their first contribution in #8662
Full Changelog: v3.2.2...v3.3.0 |
Performance and User Experience
Stirling PDF has a clean web interface that makes its large collection of tools relatively easy to navigate. Instead of learning command-line utilities or installing multiple applications, users can select the operation they need from the dashboard and upload their document.
The browser-based interface also makes it convenient for organizations. A single Stirling PDF installation can provide PDF tools to multiple users without requiring everyone to install separate software.
Performance depends on the hardware available to the server, particularly for demanding operations such as OCR, large document conversions, and image-heavy PDFs. Docker makes it relatively easy to allocate additional resources when necessary.
The project has also developed into a much broader document-processing platform rather than remaining a simple collection of PDF utilities.
Pros
Free and open source.
Large collection of PDF tools.
Self-hosted and privacy-friendly.
Docker support.
Browser-based interface.
PDF merging and splitting.
Compression and conversion.
OCR support.
Digital signature tools.
Encryption and security features.
Useful for both personal and business environments.
Active open source development.
Cons
Some advanced PDF editing features are less sophisticated than commercial applications.
Large OCR and conversion jobs can require significant system resources.
The large number of tools can initially feel overwhelming.
Server administration is required for self-hosted deployments.
Who Should Use Stirling PDF?
Stirling PDF is an excellent choice for developers, IT administrators, businesses, students, researchers, and privacy-conscious users who regularly work with PDF files.
It is particularly useful for organizations that want to provide centralized PDF processing without sending confidential documents to third-party online services.
For homelab users, it is also an attractive addition to a self-hosted stack because Docker makes deployment and upgrades relatively straightforward.
Final Verdict
Stirling PDF is one of the strongest open source alternatives to commercial and online PDF tool collections. Its biggest advantage is not one particular feature, but the sheer range of useful operations available from a single application.
The combination of OCR, conversion, compression, document manipulation, security tools, signatures, and self-hosting makes it a practical everyday utility rather than a niche PDF application.
It may not completely replace a professional PDF editor for highly specialized design work, but for most routine document-processing tasks, Stirling PDF provides an impressive feature set while keeping your files under your control.