Skip to content

Stirling PDF

Powerful locally-hosted web app for PDF manipulation. Merge, split, rotate, compress, OCR, and 50+ PDF operations — all in browser.

Not yet verified
Report issueDemo online
GPL-3.0★ 52000

Open the official app on stirlingpdf.io

This tool is hosted by its maintainers. Click below to open stirlingpdf.io in a new tab — it's their official demo.

Browse pdf & tools tools →

What's next with Stirling PDF?

Choose how you want to get started.

Use it free

Open the official tool or demo — no account needed.

Free

Self-host it

Run the open-source version on your own infrastructure.

Open

What is Stirling PDF?

Stirling PDF is a browser tool.

How it works

Stirling PDF is a browser tool.

How to use it

  1. 1Use the Stirling PDF tool.
  2. 2Use the Stirling PDF tool.
  3. 3Use the Stirling PDF tool.
  4. 4Use the Stirling PDF tool.

What it can do

  • Compression
  • PDF Processing

Use cases

Assumptions and limitations

Assumptions

  • source: https://github.com/Stirling-Tools/Stirling-PDF
  • license: GPL-3.0 — free to use
  • privacy: Opens an external demo

Limitations

  • The application relies heavily on LibreOffice for office-to-PDF conversions. For complex Word documents with heavily customized VBA macros or obscure typography, formatting shifts may occur, requiring you to manually adjust layout styles in LibreOffice before conversion.
  • Optical Character Recognition processing is resource-intensive and single-threaded per job by default. For massive batch OCR jobs involving thousands of scanned pages, container CPU throttling will occur, requiring you to scale worker threads or upgrade host CPU allocations.
  • The built-in web interface does not support real-time collaborative multi-user document editing. If two users simultaneously modify the same temporary file stream on a shared public instance, race conditions can cause session desynchronization, requiring isolated deployments for team environments.
  • Digital signature validation features verify cryptographic hashes but do not automatically establish a trusted root certificate chain against external government certificate authorities out of the box, requiring manual trust store configuration.
  • Very large PDF files exceeding 500 megabytes can exhaust default JVM heap memory allocations during structural parsing, requiring you to explicitly modify the JAVA_OPTS environment variable to increase maximum heap size parameters.

Understanding the result

Powerful locally-hosted web app for PDF manipulation. Merge, split, rotate, compress, OCR, and 50+ PDF operations — all in browser.

Tool details

  • Clearly flagged when a network request is needed.
  • No account, no sign-up, and no tracking of your content.
  • Powered by Stirling-PDF (GPL-3.0).
Built with
Stirling-PDF (Stirling-Tools/Stirling-PDF)
License
GPL-3.0
Runs locally
No — requires a network request
Verification
Not yet verified
Input
PDF
Output
PDF, Compressed File
Open-source source & license

Built with Stirling-Tools/Stirling-PDF. OpenToolVault provides the discovery and browser interface while crediting the original project maintainers.

Built with
Stirling-PDF
License
GPL-3.0
View source on GitHub

Open-source project

OpenToolVault is an independent directory. We are not affiliated with or endorsed by this project.

References

Frequently asked

How can I deploy Stirling PDF securely on a remote server for my organization?

To deploy Stirling PDF securely on a remote server, you should run the official Docker container behind a reverse proxy such as Nginx or Caddy configured with TLS 1.3 encryption. You must also implement an authentication layer, as the community edition defaults to open access, by enabling the built-in login portal via environment variables like 'SECURITY_ENABLED=true'. Furthermore, restrict direct container port exposure to the host loopback interface and use Docker volume mounts to persist configuration settings safely. Regularly pull the latest container image tags to patch underlying Java dependencies and maintain system security.

What underlying libraries and APIs does Stirling PDF use for document processing?

Stirling PDF is architected as a Spring Boot Java application that orchestrates several industry-standard open-source command-line tools and libraries. For core PDF structural manipulation, it relies heavily on Apache PDFBox and PDFClown for reading, writing, and modifying object streams. Document format conversions leverage headless LibreOffice instances to parse complex office suites, while optical character recognition relies on Tesseract via the OCRmyPDF wrapper. Image manipulation tasks utilize Ghostscript and ImageMagick to handle compression, scaling, and color space transformations.

How do I use the Stirling PDF API to automate merging files in a shell script?

You can automate document workflows by leveraging the built-in Swagger REST API endpoints exposed by your running instance at port 8080. Using a standard curl command, you can send a multipart form-data POST request to the merge endpoint with your files. For example, execute 'curl -X POST 'http://localhost:8080/api/v1/general/merge' -F 'fileFiles=@doc1.pdf' -F 'fileFiles=@doc2.pdf' --output result.pdf' to receive the combined file directly in your terminal. This enables seamless integration into automated backup pipelines, CI/CD report generators, and cron-scheduled batch tasks.

How is Stirling PDF different from cloud-based tools like Smallpdf or Adobe Online?

The fundamental difference lies in data sovereignty, hosting architecture, and privacy enforcement. Cloud converters like Smallpdf require you to upload your confidential files to their commercial servers, where they reside temporarily and may be subject to third-party data logging or corporate data mining policies. Stirling PDF runs entirely on your own local machine or private server infrastructure using Docker, meaning your files never traverse the public internet or touch third-party storage. Additionally, Stirling PDF is entirely free and open-source under the GPL-3.0 license, whereas cloud competitors charge recurring monthly subscription fees and impose strict monthly usage caps.

What should I do if I encounter a Java OutOfMemoryError when processing large files?

A Java OutOfMemoryError occurs when the default Java Virtual Machine heap allocation is exceeded while Apache PDFBox attempts to load large, highly complex vector graphics or multi-hundred-page scanned documents into memory. To resolve this, you must increase the maximum heap size allocated to the container by passing the JVM argument '-Xmx4g' via the JAVA_OPTS environment variable in your Docker Compose file. For extreme workloads involving multi-gigabyte files, consider splitting the source document into smaller chunks before processing them individually through the application.

Spotted something wrong with Stirling PDF, or want to maintain it? See how to help.