Are you tired of expensive and closed source PDF software? Then Stirling PDF might be the answer. Stirling PDF is a free, locally hosted web application that helps you manage your PDF files. You can deploy it on your own computer to keep your files safe and private. Stirling PDF is designed to be easy to use, offering a simple way to handle all your PDF needs.
Table of Contents
What is Stirling PDF?
Stirling PDF is a self-hosted, open source web application for managing and manipulating your PDFs. It allows you to do many things with PDF files, all in one place.
Here are some of the things you can do:
- Merge PDFs: Combine multiple PDF files into one.
- Split PDFs: Separate a PDF into multiple files.
- Convert PDFs: Change PDFs into other formats like images or Word documents. You can also convert other files into PDF.
- Edit PDFs: Change the way a PDF looks, including rotating pages or adding text. You can also add images to a PDF.
- Secure PDFs: Add passwords or watermarks to your PDF files. You can also sign or redact private information from a PDF.
- Organise PDFs: Reorder pages, add page numbers, or create custom layouts.
Stirling PDF has over 50 tools for you to use. It is designed to be a comprehensive alternative to other more expensive PDF software.
Benefits of Stirling PDF
There are several reasons why Stirling PDF is a great choice:
- Privacy: Because it runs on your computer, your files are never sent to an outside server. This means your private information is kept safe.
- Free and Open Source: Stirling PDF is completely free to use. It is also open source, meaning anyone can see how it works and contribute to making it better.
- Easy to Use: The interface is designed to be clear and simple, making it easy for anyone to use.
- Customizable: You can change the look and settings to fit your needs.
- Lots of Features: It offers many more features than other free PDF tools.
- Multi-Language Support: It supports over 39 languages.
- No file storage: Stirling PDF does not store any of your files. Files are either on your computer, temporarily in the server's memory during processing, or in a temporary file for task execution, and are deleted once the task is complete.
List of Supported Operations
Stirling PDF is designed to be a comprehensive solution for all PDF needs, combining a wide range of features with a focus on security, privacy, and ease of use.
Stirling PDF supports a wide array of operations for managing and manipulating PDF files.
Category | Operation |
---|---|
Page Operations | View multi-page PDFs with custom viewing, sorting and searching |
Merge multiple PDFs into a single file | |
Split PDFs into multiple files at specified page numbers or extract all pages individually | |
Reorganise PDF pages into different orders | |
Rotate PDFs in 90-degree increments | |
Remove pages from a PDF | |
Create multi-page layouts (format PDFs into a multi-paged page) | |
Scale page content size by a set percentage | |
Adjust contrast of a PDF | |
Crop PDFs | |
Auto-split PDFs (with physically scanned page dividers) | |
Extract page(s) | |
Convert a PDF to a single page | |
Overlay PDFs on top of each other | |
Split PDF by sections | |
Conversion | Convert PDFs to and from images |
Convert any common file to PDF (using LibreOffice) | |
Convert PDF to Word/PowerPoint/others (using LibreOffice) | |
Convert HTML to PDF | |
Convert PDF to XML | |
Convert PDF to CSV | |
Convert URL to PDF | |
Convert Markdown to PDF | |
Security & Permissions | Add and remove passwords from PDFs |
Change/set PDF permissions | |
Add watermarks to PDFs | |
Certify/sign PDFs | |
Sanitize PDFs | |
Auto-redact text from PDFs | |
Other Operations | Add/generate/write signatures |
Split PDFs by size | |
Repair PDFs | |
Detect and remove blank pages | |
Compare two PDFs and show differences in text | |
Add images to PDFs | |
Compress PDFs to decrease file size | |
Extract images from PDFs | |
Remove images from PDFs | |
Extract images from scans | |
Remove annotations from PDFs | |
Add page numbers | |
Auto-rename files by detecting PDF header text | |
Perform OCR on PDFs (using Tesseract OCR) | |
Convert PDF/A (using LibreOffice) | |
Edit metadata | |
Flatten PDFs | |
Get all information on a PDF to view or export as JSON | |
Show/detect embedded JavaScript |
In addition to these operations, Stirling PDF also offers features such as:
- Parallel file processing and downloads
- Dark mode support
- Custom download options
- Custom 'Pipelines' to run multiple features in an automated queue
- API for integration with external scripts
- Optional Login and Authentication support
- Database Backup and Import
- Enterprise features like SSO
How to Install Stirling PDF
Stirling PDF can be installed in a few ways.
Desktop Users:
- Windows: Download the installer for a simple setup.
- Linux/Unix & Mac: Run Stirling PDF as a Java .jar file. Follow the installation guides for a native installation.
Server Deployments:
- Docker: The easiest way to deploy Stirling PDF is using Docker images. There are three versions: Fat, Standard and Ultra-Lite to suit various hardware needs.
- Manual Server Setup: You can also use the Stirling-PDF.jar package for a manual setup on a server.
For demonstration purpose, I am going to cover the Stirling PDF installation steps using Docker and Docker Compose in Linux.
Self-host Stirling PDF using Docker or Podman
Deploying Stirling PDF using Docker simplifies the installation process and ensures a consistent environment.
Prerequisites:
Ensure Docker or Podman is installed on your system. If not, refer the following guides:
- Install Docker Engine And Docker Compose In AlmaLinux, CentOS, Rocky Linux
- How to Install Docker And Docker Compose In Ubuntu
- What Is Podman And How To Install Podman In Linux
You can also use graphical applications like Docker Desktop or Podman desktop. But they are out of scope of this topic.
NOTE:
If you usepodman
, just replacedocker
withpodman
in the commands given below.
1. Pull the Stirling PDF Docker Image:
Open your terminal and run the following command to download the latest Stirling PDF image:
docker pull stirlingtools/stirling-pdf:latest
2. Create Necessary Directories:
Set up directories on your host machine to store Stirling PDF configurations and data:
mkdir -p ~/StirlingPDF/{trainingData,extraConfigs,customFiles,logs,pipeline}
3. Run the Docker Container:
Execute the following command to start the Stirling PDF container:
docker run -d \ --name stirling-pdf \ -p 8080:8080 \ -v ~/StirlingPDF/trainingData:/usr/share/tessdata \ -v ~/StirlingPDF/extraConfigs:/configs \ -v ~/StirlingPDF/customFiles:/customFiles/ \ -v ~/StirlingPDF/logs:/logs/ \ -v ~/StirlingPDF/pipeline:/pipeline/ \ -e DOCKER_ENABLE_SECURITY=false \ -e LANGS=en_GB \ stirlingtools/stirling-pdf:latest
Explanation of the Command:
-d
: Runs the container in detached mode.--name stirling-pdf
: Names the container "stirling-pdf".-p 8080:8080
: Maps port 8080 of the container to port 8080 on your host.-v ~/StirlingPDF/trainingData:/usr/share/tessdata
: Mounts thetrainingData
directory for OCR language data.-v ~/StirlingPDF/extraConfigs:/configs
: Mounts theextraConfigs
directory for additional configurations.-v ~/StirlingPDF/customFiles:/customFiles/
: Mounts thecustomFiles
directory for any custom files.-v ~/StirlingPDF/logs:/logs/
: Mounts thelogs
directory to store logs.-v ~/StirlingPDF/pipeline:/pipeline/
: Mounts thepipeline
directory for pipeline processes.-e DOCKER_ENABLE_SECURITY=false
: Sets the environment variable to disable Docker security features if necessary.-e LANGS=en_GB
: Sets the language to British English. If you want to set American English, useen_US
.
Self-host Stirling PDF using Docker Compose
If you prefer using Docker Compose, create a docker-compose.yml
file with the following content:
version: '3.3' services: stirling-pdf: image: stirlingtools/stirling-pdf:latest ports: - '8080:8080' volumes: - ~/StirlingPDF/trainingData:/usr/share/tessdata - ~/StirlingPDF/extraConfigs:/configs - ~/StirlingPDF/customFiles:/customFiles/ - ~/StirlingPDF/logs:/logs/ - ~/StirlingPDF/pipeline:/pipeline/ environment: - DOCKER_ENABLE_SECURITY=false - LANGS=en_GB
Then, run the following commands:
docker-compose up -d
This will set up and run Stirling PDF using Docker Compose.
Access Stirling PDF interface
Once the container is running, open your web browser and navigate to http://localhost:8080
URL to access the Stirling PDF interface.
This is how Stirling PDF interface looks like:
You can now perform various operations on your PDF files from the web interface.
For other detailed installation instructions and advanced configuration, please visit the Stirling PDF documentation website.
Stopping Stirling PDF Instance
1. Stop the Stirling PDF instance running from a Docker image:
List Running Containers:
First, identify the running containers by executing:
docker ps
This command will display a list of active containers along with their names and IDs.
Stop the Container:
Once you've identified the container name or ID associated with Stirling PDF (commonly named stirling-pdf
if you used the --name
flag during setup), stop it using:
docker stop stirling-pdf
Replace stirling-pdf
with the actual container name or ID if it's different.
Remove the Container (Optional):
If you also want to remove the container after stopping it, execute:
docker rm stirling-pdf
Again, replace stirling-pdf
with the appropriate container name or ID.
2. Stop Stirling PDF instance managed by Docker Compose:
To stop your Stirling PDF instance managed by Docker Compose, navigate to the directory containing your docker-compose.yml
file and execute:
docker-compose stop
This command halts the running containers without removing them, allowing for a quick restart later.
If you wish to stop and remove the containers along with associated networks and volumes, use:
docker-compose down
Choose the appropriate command based on whether you plan to restart the containers (stop
) or perform a complete teardown (down
).
Troubleshooting
If you try to use a port that is already in use by other apps, you will get the following error message:
Error: rootlessport listen tcp 0.0.0.0:8080: bind: address already in use Error: unable to start container "3712a9b61ec4c8514ff0a43b06d5f0acb15edb6a21e9bb65aa75defbda392b76": rootlessport listen tcp 0.0.0.0:8080: bind: address already in use
The error message indicates that port 8080 on my host machine is already in use, preventing Docker from binding to it. To resolve this issue, you can follow these steps.
1. Identify the Process Using Port 8080:
Open your terminal and run:
sudo lsof -i tcp:8080
This command lists all processes using TCP port 8080. Look for the PID
(Process ID) associated with the process.
2. Terminate the Conflicting Process:
If the process using port 8080 is not essential, you can stop it by running:
sudo kill -9 PID
Replace PID
with the actual Process ID obtained from the previous step. Be cautious when terminating processes to avoid stopping critical system services.
3. Restart Your Docker Container:
After freeing up port 8080, attempt to start your Docker container again:
docker start stirling-pdf
Replace stirling-pdf
with your container's name or ID.
Alternative Solution: Use a Different Port
If stopping the existing process on port 8080 isn't feasible, you can map your Docker container to a different port. For example, to use port 8081:
docker run -d \
--name stirling-pdf \
-p 8081:8080 \
-v ~/StirlingPDF/trainingData:/usr/share/tessdata \
-v ~/StirlingPDF/extraConfigs:/configs \
-v ~/StirlingPDF/customFiles:/customFiles/ \
-v ~/StirlingPDF/logs:/logs/ \
-v ~/StirlingPDF/pipeline:/pipeline/ \
-e DOCKER_ENABLE_SECURITY=false \
-e LANGS=en_GB \
stirlingtools/stirling-pdf:latest
In this command, -p 8081:8080
maps port 8081 on your host to port 8080 in the container. Ensure that port 8081 is not in use by another process.
Similarly, to resolve the "address already in use" error when using Docker Compose, you can modify the docker-compose.yml
file to map the container's port to a different, unused port on your host machine.
Open the docker-compose.yml
File:
nano docker-compose.yml
Find the ports
section for the Stirling PDF service. It might look like this:
ports: - '8080:8080'
Change the host port (the first number) to an unused port, such as 8081:
ports: - '8081:8080'
In this configuration, the container's internal port 8080 is mapped to port 8081 on your host machine. Ensure that the new host port (e.g., 8081) is not already in use by another application.
Save the changes to the docker-compose.yml
file and exit the text editor.
Finally, restart the Docker Compose service.
In the terminal, navigate to the directory containing your docker-compose.yml
file and run:
docker-compose down docker-compose up -d
The down
command stops and removes the containers, while up -d
restarts them in detached mode with the updated configuration.
Now, you can access the Stirling PDF application by navigating to http://localhost:8081
in your web browser.
By following these steps, you should be able to resolve the "address already in use" error and successfully run your Stirling PDF Docker container.
Stirling PDF Pro and Enterprise Editions
Stirling PDF offers a free Basic plan that includes all PDF tools and standard user authentication. For additional features like access to the support team, advanced SSO, custom metadata handling, and support for external databases and load distribution, there is a Pro plan available at $12 per seat per month.
For enterprise edition, please contact the Stirling PDF team.
Conclusion
Stirling PDF is a fantastic, free and secure way to manage your PDF files. Whether you need to merge, split, convert, or edit PDFs, Stirling PDF has the tools you need. It's a user-friendly and powerful alternative to expensive software, perfect for both personal and office use. Give Stirling PDF a try and take control of your PDF experience.
Resource: