When it comes to self-hosted applications you didn't know you needed until you see them, Stirling PDF checks the box. This app is so powerful yet so simple to setup and self host, you will be amazed at what this tool can do.
First off, credit where credit is due. A big thanks to Network Profile for turning me onto this awesome project! I found out about Stirling PDF in his article here.
What is Stirling PDF?
Powered by Docker, Stirling PDF offers a ton of PDF manipulation capabilities. You can split, merge, convert, reorganize, add images, rotate, compress, and more with your PDFs. Initially created solely by ChatGPT, it now boasts an extensive feature set to meet your PDF needs.
Stirling PDF prioritizes privacy by avoiding external calls for tracking. Files and PDFs are processed client-side, within server memory during tasks, or temporarily stored for task execution. Downloaded files are always removed from the server keeping your server clean and clutter free.
There's too many features to list so we had to use a toggle box!
Stirling PDF Core Features ⭐ (Click me)
- Full interactive GUI for merging/splitting/rotating/moving PDFs and their pages.
- Split PDFs into multiple files at specified page numbers or extract all pages as individual files.
- Merge multiple PDFs together into a single resultant file
- Convert PDFs to and from images
- Reorganize PDF pages into different orders.
- Add/Generate signatures
- Format PDFs into a multi-paged page
- Scale page contents size by set %
- Adjust Contrast
- Crop PDF
- Auto Split PDF (With physically scanned page dividers)
- Flatten PDFs
- Repair PDFs
- Detect and remove blank pages
- Compare 2 PDFs and show differences in text
- Add images to PDFs
- Rotating PDFs in 90 degree increments.
- Compressing PDFs to decrease their filesize. (Using OCRMyPDF)
- Add and remove passwords
- Set PDF Permissions
- Add watermark(s)
- Convert Any common file to PDF (using LibreOffice)
- Convert PDF to Word/Powerpoint/Others (using LibreOffice)
- Convert HTML to PDF
- URL to PDF
- Extract images from PDF
- Extract images from Scans
- Add page numbers
- Auto rename file by detecting PDF header text
- OCR on PDF (Using OCRMyPDF)
- PDF/A conversion (Using OCRMyPDF)
- Edit metadata
- Dark mode support.
- Custom download options (see here for example)
- Parallel file processing and downloads
- API for integration with external scripts
One of my favorite features of Stirling PDF is the URL to PDF feature that allows you to download a web page in PDF format. However, this feature does have some issues. I did find for some websites the color and formatting can process wrong making it hard to read text. Overall, it works great!
One other favorite is the singing feature. Here you can upload a PDF and digitally sign it then redownlod the signed copy.
You can choose from 4 different font types then resize the signature and drag it into place. Additionally, you can upload an image or draw the signature in freehand. This would be good if you have a penpad.
Install and setup Sterling PDF using Docker Compose
Stirling PDF has 3 different versions. We are using the full version for our demonstration.
- /location/of/trainingData:/usr/share/tesseract-ocr/4.00/tessdata #Required for extra OCR languages
# - /location/of/customFiles:/customFiles/
We are commenting out custom files for now because we won't be using any at this time. If you want to do custom branding you can read more about that here.
I use Portainer stacks to deploy most of my Docker applications. It makes it easier to manage your images, containers and monitoring.
I changed the port to 8082 because 8080 was already in use on this particular test server. No big deal! That's the beauty of Docker and containerization.
Final Notes and Thoughts
I've seen requests on Reddit where people are asking for a good way to sign PDF files. While this might be a bit overkill for the job, it will definitely get the job done. Not only that, but Stirling PDF is super simple to spin up using Docker.
Kudos to the developer for taking on this project and the transformation from using ChatGPT to begin this project and what has become a valuable tool for thousands of people already!