Home PDF Stirling PDF: The Best Opensource, Self-hosted PDF Manipulation Tool

Stirling PDF: The Best Opensource, Self-hosted PDF Manipulation Tool

Stirling PDF is Your All-in-One Open Source Suite for PDF Operations | 50+ Tools Included

By sk
2.7K views

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.

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.

CategoryOperation
Page OperationsView 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
ConversionConvert 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 & PermissionsAdd and remove passwords from PDFs
Change/set PDF permissions
Add watermarks to PDFs
Certify/sign PDFs
Sanitize PDFs
Auto-redact text from PDFs
Other OperationsAdd/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:

You can also use graphical applications like Docker Desktop or Podman desktop. But they are out of scope of this topic.

NOTE:
If you use podman, just replace docker with podman 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 the trainingData directory for OCR language data.
  • -v ~/StirlingPDF/extraConfigs:/configs: Mounts the extraConfigs directory for additional configurations.
  • -v ~/StirlingPDF/customFiles:/customFiles/: Mounts the customFiles directory for any custom files.
  • -v ~/StirlingPDF/logs:/logs/: Mounts the logs directory to store logs.
  • -v ~/StirlingPDF/pipeline:/pipeline/: Mounts the pipeline 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, use en_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:

Stirling PDF Home Page
Stirling PDF Home Page

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:

You May Also Like

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This website uses cookies to improve your experience. By using this site, we will assume that you're OK with it. Accept Read More