mirror of
				https://github.com/Frooodle/Stirling-PDF.git
				synced 2025-11-01 01:21:18 +01:00 
			
		
		
		
	local execution
This commit is contained in:
		
							parent
							
								
									e16ed5ca1a
								
							
						
					
					
						commit
						fd918ef15f
					
				
							
								
								
									
										137
									
								
								LocalRunGuide.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								LocalRunGuide.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,137 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					To run the application without Docker, you will need to manually install all dependencies and build the necessary components.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Note that some dependencies might not be available in the standard repositories of all Linux distributions, and may require additional steps to install.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The following guide assumes you have a basic understanding of using a command line interface in your operating system.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It should work on most Linux distributions and MacOS. For Windows, you might need to use Windows Subsystem for Linux (WSL) for certain steps.
 | 
				
			||||||
 | 
					The amount of dependencies is to actually reduce overall size, ie installing LibreOffice sub components rather than full LibreOffice package.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Step 1: Prerequisites
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Install the following software, if not already installed:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Java 17 or later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Gradle 7.0 or later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Git
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Python 3 (with pip)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Make
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- GCC/G++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Automake
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Autoconf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- libtool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- pkg-config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- zlib1g-dev
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- libleptonica-dev
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For Debian-based systems, you can use the following command:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					sudo apt-get update
 | 
				
			||||||
 | 
					sudo apt-get install -y git  automake  autoconf  libtool  libleptonica-dev  pkg-config zlib1g-dev make g++ java-17-openjdk  gradle python3 python3-pip
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Step 2: Clone and Build jbig2enc (Only required for certain OCR functionality)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					git clone https:github.com/agl/jbig2enc
 | 
				
			||||||
 | 
					cd jbig2enc
 | 
				
			||||||
 | 
					./autogen.sh
 | 
				
			||||||
 | 
					./configure
 | 
				
			||||||
 | 
					make
 | 
				
			||||||
 | 
					sudo make install
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Step 3: Install Additional Software
 | 
				
			||||||
 | 
					Next we need to install LibreOffice for conversions, ocrmypdf for OCR, and opencv for patern recognition functionality.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Install the following software:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- libreoffice-core
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- libreoffice-common
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- libreoffice-writer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- libreoffice-calc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- libreoffice-impress
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- python3-uno
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- unoconv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- pngquant
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- unpaper
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- ocrmypdf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- opencv-python-headless
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For Debian-based systems, you can use the following command:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					sudo apt-get install -y libreoffice-core libreoffice-common libreoffice-writer libreoffice-calc  libreoffice-impress python3-uno  unoconv  pngquant  unpaper  ocrmypdf
 | 
				
			||||||
 | 
					pip3 install opencv-python-headless
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Step 4: Clone and Build Stirling-PDF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					git clone https://github.com/Frooodle/Stirling-PDF.git
 | 
				
			||||||
 | 
					cd Stirling-PDF
 | 
				
			||||||
 | 
					./gradlew build
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Step 5: Move jar to desired location
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					After the build process, a `.jar` file will be generated in the `build/libs` directory.
 | 
				
			||||||
 | 
					You can move this file to a desired location, for example, `/opt/Stirling-PDF/`.
 | 
				
			||||||
 | 
					You must also move the Script folder within the Stirling-PDF repo that you have downloaded to this directory.
 | 
				
			||||||
 | 
					This folder is required for the python scripts using OpenCV
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Step 6: Other files
 | 
				
			||||||
 | 
					#### OCR
 | 
				
			||||||
 | 
					If you plan to use the OCR (Optical Character Recognition) functionality, you might need to install language packs for Tesseract if running none english scanning.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##### Installing Language Packs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Download the desired language pack(s) by selecting the `.traineddata` file(s) for the language(s) you need.
 | 
				
			||||||
 | 
					2. Place the `.traineddata` files in the Tesseract tessdata directory: `/usr/share/tesseract-ocr/4.00/tessdata`
 | 
				
			||||||
 | 
					Please view  [OCRmyPDF install guide](https:ocrmypdf.readthedocs.io/en/latest/installation.html) for more info.
 | 
				
			||||||
 | 
					**IMPORTANT:** DO NOT REMOVE EXISTING `eng.traineddata`, IT'S REQUIRED.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Step 7: Run Stirling-PDF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					./gradlew bootRun
 | 
				
			||||||
 | 
					or
 | 
				
			||||||
 | 
					java -jar build/libs/app.jar
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Remember to set the necessary environment variables before running the project if you want to customize the application the list can be seen in the main readme.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can do this in the terminal by using the `export` command or -D arguements:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					export APP_HOME_NAME="Stirling PDF"
 | 
				
			||||||
 | 
					or
 | 
				
			||||||
 | 
					-DAPP_HOME_NAME="Stirling PDF" 
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user