locally hosted web application that allows you to perform various operations on PDF files
Find a file
2023-04-25 15:40:02 +00:00
.github Create Docker Hub tag from secret 2023-04-22 10:12:14 +10:00
docs Metadata editting and local only JS and pdf to image change and format pages (#44) 2023-02-11 14:27:15 +00:00
gradle/wrapper Add files via upload 2023-01-27 18:23:40 +00:00
images image updates 2023-04-22 00:18:32 +01:00
src/main Merge branch 'main' into cleanups 2023-04-23 09:42:51 +01:00
.gitattributes Update .gitattributes 2023-02-26 21:49:29 +00:00
.gitignore Combined changes that wouldn't merge 2023-02-07 23:14:03 +03:00
build.gradle Bump org.springframework.boot:spring-boot-starter-test 2023-04-25 15:38:30 +00:00
CNAME Create CNAME 2023-04-22 13:19:30 +01:00
Dockerfile docker logic to avoid rebuilding large image every time for easy dev 2023-04-15 21:17:47 +01:00
DockerfileBase docker logic to avoid rebuilding large image every time for easy dev 2023-04-15 21:17:47 +01:00
gradlew Add files via upload 2023-01-27 18:23:40 +00:00
gradlew.bat Add files via upload 2023-01-27 18:23:40 +00:00
HowToAddNewLanguage.md Update HowToAddNewLanguage.md 2023-02-05 21:40:25 +00:00
HowToUseOCR.md Lots of changes (#70) 2023-03-20 21:55:11 +00:00
Jenkinsfile Add files via upload 2023-01-28 10:00:32 +00:00
LICENSE Initial commit 2023-01-27 18:22:43 +00:00
README.md image updates 2023-04-22 00:18:32 +01:00
settings.gradle Add files via upload 2023-01-27 18:23:40 +00:00


Stirling-PDF

Docker Pulls Discord Docker Image Version (tag latest semver) GitHub Repo stars Paypal Donate Github Sponser

This is a powerful locally hosted web based PDF manipulation tool using docker that allows you to perform various operations on PDF files, such as splitting merging, converting, reorganizing, adding images, rotating, compressing, and more. This locally hosted web application started as a 100% ChatGPT-made application and has evolved to include a wide range of features to handle all your PDF needs.

Feel free to request any features of bug fixes either in github issues or our Discord

stirling-home

Features

  • Full intractable 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 images to PDFs at specified locations. (WIP)
  • 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)
  • Extract images from PDF
  • OCR on PDF (Using OCRMyPDF)
  • Edit metadata
  • Dark mode support.
  • Custom download options (see here for example)
  • Parallel file processing and downloads

Technologies used

  • Spring Boot + Thymeleaf
  • PDFBox
  • LibreOffice for advanced conversions
  • OcrMyPdf
  • HTML, CSS, JavaScript
  • Docker
  • PDF.js
  • PDF-LIB.js

How to use

Locally

Prerequisites

  • Java 17 or later
  • Gradle 7.0 or later
  1. Clone or download the repository.
  2. Build the project using Gradle by running ./gradlew build
  3. Start the application by running ./gradlew bootRun or by calling the build jar in build/libs with java -jar jarName.jar

Docker

https://hub.docker.com/r/frooodle/s-pdf

Docker Run

docker run -p 8080:8080 frooodle/s-pdf

Docker Compose

version: '3.3'
services:
    s-pdf:
        ports:
            - '8080:8080'
        image: frooodle/s-pdf

Enable OCR/Compression feature

Please view https://github.com/Frooodle/Stirling-PDF/blob/main/HowToUseOCR.md

Want to add your own language?

If you want to add your own language to Stirling-PDF please refer https://github.com/Frooodle/Stirling-PDF/blob/main/HowToAddNewLanguage.md

And please create a PR to merge it back in so others can use it!

Also please note as i add new features i will google translate existing languages so that they dont lose support. This could mean that new features need grammer corrections as added.

How to View

  1. Open a web browser and navigate to http://localhost:8080/
  2. Use the application by following the instructions on the website.

Customize App

Stirling PDF allows easy customization of the visible application name. Simply use environment variables APP_HOME_NAME, APP_HOME_DESCRIPTION and APP_NAVBAR_NAME with Docker or Java. If running Java directly, you can also pass these as properties using -D arguments.

Using the same method you can also change the default language by providing APP_LOCALE with values like de-DE fr-FR or ar-AR to select your default language (Will always default to English on invalid locale)