diff --git a/LocalRunGuide.md b/LocalRunGuide.md new file mode 100644 index 00000000..cc55f423 --- /dev/null +++ b/LocalRunGuide.md @@ -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" +``` +