diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 644378d12..d9d1a0317 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -102,8 +102,8 @@
"java.eclipse.downloadSources": true,
"java.import.gradle.wrapper.enabled": true,
"spring.initializr.defaultLanguage": "Java",
- "spring.initializr.defaultGroupId": "stirling.software.SPDF",
- "spring.initializr.defaultArtifactId": "SPDF"
+ "spring.initializr.defaultGroupId": "stirling.software.spdf",
+ "spring.initializr.defaultArtifactId": "spdf"
},
"extensions": [
"elagil.pre-commit-helper", // Support for pre-commit hooks to enforce code quality
diff --git a/.github/labeler-config.yml b/.github/labeler-config.yml
index bb52c7b85..4815497c5 100644
--- a/.github/labeler-config.yml
+++ b/.github/labeler-config.yml
@@ -8,8 +8,8 @@ Front End:
- changed-files:
- any-glob-to-any-file: 'src/main/resources/templates/**/*'
- any-glob-to-any-file: 'src/main/resources/static/**/*'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/controller/web/**'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/UI/**/*'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/controller/web/**'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/UI/**/*'
Java:
- changed-files:
@@ -17,8 +17,8 @@ Java:
Back End:
- changed-files:
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/config/**/*'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/controller/**/*'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/config/**/*'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/controller/**/*'
- any-glob-to-any-file: 'src/main/resources/settings.yml.template'
- any-glob-to-any-file: 'src/main/resources/application.properties'
- any-glob-to-any-file: 'src/main/resources/banner.txt'
@@ -27,34 +27,39 @@ Back End:
Security:
- changed-files:
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/config/interfaces/DatabaseInterface.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/config/security/**/*'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/controller/api/DatabaseController.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/controller/api/EmailController.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/controller/api/H2SQLController.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/controller/web/AccountWebController.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/controller/web/DatabaseWebController.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/controller/api/UserController.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/model/api/Email.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/model/exception/BackupNotFoundException.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/model/exception/NoProviderFoundExceptionjava'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/model/provider/**/*'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/model/AuthenticationType.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/model/ApiKeyAuthenticationToken.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/model/AttemptCounter.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/model/Authority.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/model/PersistentLogin.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/model/SessionEntity.java'
+# todo: fix these
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/config/interfaces/DatabaseInterface.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/config/security/**/*'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/controller/api/DatabaseController.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/controller/api/EmailController.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/controller/api/H2SQLController.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/controller/web/AccountWebController.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/controller/web/DatabaseWebController.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/controller/api/UserController.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/model/api/Email.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/model/exception/BackupNotFoundException.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/model/exception/NoProviderFoundExceptionjava'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/model/provider/**/*'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/model/AuthenticationType.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/model/ApiKeyAuthenticationToken.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/model/AttemptCounter.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/model/Authority.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/model/PersistentLogin.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/model/SessionEntity.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/config/security/**/*'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/model/provider/**/*'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/model/AuthenticationType.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/model/BackupNotFoundException.java'
- any-glob-to-any-file: 'scripts/download-security-jar.sh'
- any-glob-to-any-file: '.github/workflows/dependency-review.yml'
- any-glob-to-any-file: '.github/workflows/scorecards.yml'
API:
- changed-files:
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/config/OpenApiConfig.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/controller/web/MetricsController.java'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/controller/api/**/*'
- - any-glob-to-any-file: 'src/main/java/stirling/software/SPDF/model/api/**/*'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/config/OpenApiConfig.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/controller/web/MetricsController.java'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/controller/api/**/*'
+ - any-glob-to-any-file: 'src/main/java/stirling/software/spdf/model/api/**/*'
- any-glob-to-any-file: 'scripts/png_to_webp.py'
- any-glob-to-any-file: 'split_photos.py'
- any-glob-to-any-file: '.github/workflows/swagger.yml'
diff --git a/.vscode/settings.json b/.vscode/settings.json
index a4be4d0cd..3e6c76b18 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -78,6 +78,6 @@
// Enables import of the Gradle wrapper.
"java.import.gradle.wrapper.enabled": true,
"spring.initializr.defaultLanguage": "Java",
- "spring.initializr.defaultGroupId": "stirling.software.SPDF",
- "spring.initializr.defaultArtifactId": "SPDF",
+ "spring.initializr.defaultGroupId": "stirling.software.spdf",
+ "spring.initializr.defaultArtifactId": "spdf",
}
diff --git a/DeveloperGuide.md b/DeveloperGuide.md
index efc72a15c..d6f9d52c2 100644
--- a/DeveloperGuide.md
+++ b/DeveloperGuide.md
@@ -76,7 +76,7 @@ Stirling-PDF/
│ │ ├── java/
│ │ │ └── stirling/
│ │ │ └── software/
-│ │ │ └── SPDF/
+│ │ │ └── spdf/
│ │ │ ├── config/
│ │ │ ├── controller/
│ │ │ ├── model/
@@ -93,7 +93,7 @@ Stirling-PDF/
│ └── java/
│ └── stirling/
│ └── software/
-│ └── SPDF/
+│ └── spdf/
├── build.gradle # Gradle build configuration
├── Dockerfile # Main Dockerfile
├── Dockerfile.ultra-lite # Dockerfile for ultra-lite version
@@ -384,12 +384,12 @@ This would generate n entries of tr for each person in exampleData
### Adding a New Feature to the Backend (API)
1. **Create a New Controller:**
- - Create a new Java class in the `src/main/java/stirling/software/SPDF/controller/api` directory.
+ - Create a new Java class in the `src/main/java/stirling/software/spdf/controller/api` directory.
- Annotate the class with `@RestController` and `@RequestMapping` to define the API endpoint.
- Ensure to add API documentation annotations like `@Tag(name = "General", description = "General APIs")` and `@Operation(summary = "Crops a PDF document", description = "This operation takes an input PDF file and crops it according to the given coordinates. Input:PDF Output:PDF Type:SISO")`.
```java
- package stirling.software.SPDF.controller.api;
+ package stirling.software.spdf.controller.api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -411,11 +411,11 @@ This would generate n entries of tr for each person in exampleData
```
2. **Define the Service Layer:** (Not required but often useful)
- - Create a new service class in the `src/main/java/stirling/software/SPDF/service` directory.
+ - Create a new service class in the `src/main/java/stirling/software/spdf/service` directory.
- Implement the business logic for the new feature.
```java
- package stirling.software.SPDF.service;
+ package stirling.software.spdf.service;
import org.springframework.stereotype.Service;
@@ -434,13 +434,13 @@ This would generate n entries of tr for each person in exampleData
- Autowire the service class in the controller and use it to handle the API request.
```java
- package stirling.software.SPDF.controller.api;
+ package stirling.software.spdf.controller.api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
- import stirling.software.SPDF.service.NewFeatureService;
+ import stirling.software.spdf.service.NewFeatureService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -507,18 +507,18 @@ This would generate n entries of tr for each person in exampleData
```
2. **Create a New Controller for the UI:**
- - Create a new Java class in the `src/main/java/stirling/software/SPDF/controller/ui` directory.
+ - Create a new Java class in the `src/main/java/stirling/software/spdf/controller/ui` directory.
- Annotate the class with `@Controller` and `@RequestMapping` to define the UI endpoint.
```java
- package stirling.software.SPDF.controller.ui;
+ package stirling.software.spdf.controller.ui;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
- import stirling.software.SPDF.service.NewFeatureService;
+ import stirling.software.spdf.service.NewFeatureService;
@Controller
@RequestMapping("/new-feature")
diff --git a/build.gradle b/build.gradle
index 0210def57..e61beeda9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -32,10 +32,26 @@ ext {
group = "stirling.software"
version = "0.46.1"
+// todo: package jar with option for enterprise features to be included
+jar {
+ enabled = false
+ manifest {
+ attributes "Implementation-Title": "Stirling-PDF",
+ "Implementation-Version": project.version
+ }
+}
+
+bootJar {
+ enabled = false
+}
+
allprojects {
- bootJar {
-// mainClass = 'stirling.software.SPDF.SPDFApplication'
- enabled = false
+ afterEvaluate {
+ if (project == rootProject) return
+ tasks.register('wrapper', Wrapper) {
+ gradleVersion = '8.14'
+ distributionType = Wrapper.DistributionType.ALL
+ }
}
}
@@ -46,7 +62,7 @@ subprojects {
apply plugin: 'io.spring.dependency-management'
group = "stirling.software"
- version = "0.46.0"
+ version = "0.46.1"
java {
// 17 is lowest but we support and recommend 21
@@ -123,7 +139,7 @@ sourceSets {
}
if (System.getenv("STIRLING_PDF_DESKTOP_UI") == "false") {
- exclude "stirling/software/SPDF/UI/impl/**"
+ exclude "stirling/software/spdf/UI/impl/**"
}
}
@@ -139,7 +155,7 @@ sourceSets {
}
if (System.getenv("STIRLING_PDF_DESKTOP_UI") == "false") {
- exclude "stirling/software/SPDF/UI/impl/**"
+ exclude "stirling/software/spdf/UI/impl/**"
}
}
}
@@ -159,15 +175,6 @@ static def getMacVersion(String version) {
return "${currentYear}.${versionParts.length > 1 ? versionParts[1] : versionParts[0]}"
}
-// todo: package jar with option for enterprise features to be included
-jar {
- enabled = false
- manifest {
- attributes "Implementation-Title": "Stirling-PDF",
- "Implementation-Version": project.version
- }
-}
-
jpackage {
input = "build/libs"
destination = "${projectDir}/build/jpackage"
@@ -279,6 +286,11 @@ jpackage {
licenseFile = "LICENSE"
}
+tasks.wrapper {
+ gradleVersion = "8.14"
+ distributionType = Wrapper.DistributionType.ALL
+}
+
tasks.register('jpackageMacX64') {
group = 'distribution'
description = 'Packages app for MacOS x86_64'
@@ -463,12 +475,6 @@ swaggerhubUpload {
oas = "3.0.0" // The version of the OpenAPI Specification you"re using
}
-tasks.wrapper {
- gradleVersion = "8.14"
- distributionType = Wrapper.DistributionType.ALL
-}
-
-
tasks.register('writeVersion') {
def propsFile = file("$projectDir/stirling-pdf/src/main/resources/version.properties")
def propsDir = propsFile.parentFile
diff --git a/proprietary/build.gradle b/proprietary/build.gradle
index 15768d729..aa4125546 100644
--- a/proprietary/build.gradle
+++ b/proprietary/build.gradle
@@ -4,13 +4,16 @@ plugins {
repositories {
maven { url = "https://build.shibboleth.net/maven/releases" }
-// maven { url = "https://maven.pkg.github.com/jcefmaven/jcefmaven" }
}
java {
sourceCompatibility = JavaVersion.VERSION_17
}
+bootJar {
+ enabled = false
+}
+
sourceSets {
main {
java {
@@ -43,7 +46,7 @@ sourceSets {
test {
java {
- if (System.getenv("ADDITIONAL_FEATURES") == "false") {
+ if (System.getenv('ADDITIONAL_FEATURES') == 'false') {
exclude 'stirling/software/enterprise/security/**'
}
}
@@ -61,20 +64,20 @@ dependencies {
implementation 'com.bucket4j:bucket4j_jdk17-core:8.14.0' // https://mvnrepository.com/artifact/com.bucket4j/bucket4j_jdk17
implementation 'org.bouncycastle:bcprov-jdk18on:1.80'
- if (System.getenv('ADDITIONAL_FEATURES') != 'false') {
- implementation "org.springframework:spring-jdbc:6.2.6"
+ if (System.getenv('ADDITIONAL_FEATURES') == 'true') {
+ implementation 'org.springframework:spring-jdbc:6.2.6'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
implementation "org.springframework.security:spring-security-core:$springSecuritySamlVersion"
implementation "org.springframework.security:spring-security-saml2-service-provider:$springSecuritySamlVersion"
- implementation "org.springframework.session:spring-session-core:3.4.3"
+ implementation 'org.springframework.session:spring-session-core:3.4.3'
implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5:3.1.3.RELEASE'
implementation 'io.micrometer:micrometer-registry-prometheus'
implementation 'com.unboundid.product.scim2:scim2-sdk-client:2.3.5'
- runtimeOnly "com.h2database:h2:2.3.232" // Don't upgrade h2database
- runtimeOnly "org.postgresql:postgresql:42.7.5"
+ runtimeOnly 'com.h2database:h2:2.3.232' // Don't upgrade h2database
+ runtimeOnly 'org.postgresql:postgresql:42.7.5'
constraints {
implementation "org.opensaml:opensaml-core:$openSamlVersion"
implementation "org.opensaml:opensaml-saml-api:$openSamlVersion"
@@ -93,3 +96,4 @@ dependencies {
testRuntimeOnly 'org.mockito:mockito-inline:5.2.0'
}
+tasks.register('prepareKotlinBuildScriptModel') {}
diff --git a/settings.gradle b/settings.gradle
index f8a48325a..49bbd430a 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -4,8 +4,4 @@ plugins {
}
rootProject.name = 'Stirling-PDF'
-include 'stirling-pdf', 'common'
-
-if (System.getenv('ADDITIONAL_FEATURES') == 'true') {
- include 'proprietary'
-}
+include 'stirling-pdf', 'common', 'proprietary'
diff --git a/stirling-pdf/build/resources/main/logback.xml b/stirling-pdf/build/resources/main/logback.xml
index 369c3a941..e844e1f86 100644
--- a/stirling-pdf/build/resources/main/logback.xml
+++ b/stirling-pdf/build/resources/main/logback.xml
@@ -1,6 +1,6 @@
-
+
@@ -40,9 +40,9 @@
-
-
\ No newline at end of file
+
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/EE/configuration/EEAppConfig.java b/stirling-pdf/src/main/java/stirling/software/spdf/EE/configuration/EEAppConfig.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/EE/configuration/EEAppConfig.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/EE/configuration/EEAppConfig.java
index 4bf0a0113..9ce6d912a 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/EE/configuration/EEAppConfig.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/EE/configuration/EEAppConfig.java
@@ -1,6 +1,6 @@
-package stirling.software.SPDF.EE.configuration;
+package stirling.software.spdf.EE.configuration;
-import static stirling.software.SPDF.EE.configuration.KeygenLicenseVerifier.License;
+import static stirling.software.spdf.EE.configuration.KeygenLicenseVerifier.License;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/EE/configuration/KeygenLicenseVerifier.java b/stirling-pdf/src/main/java/stirling/software/spdf/EE/configuration/KeygenLicenseVerifier.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/EE/configuration/KeygenLicenseVerifier.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/EE/configuration/KeygenLicenseVerifier.java
index 1928d5657..c7b2ecb41 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/EE/configuration/KeygenLicenseVerifier.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/EE/configuration/KeygenLicenseVerifier.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.EE.configuration;
+package stirling.software.spdf.EE.configuration;
import java.net.URI;
import java.net.http.HttpClient;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/EE/configuration/LicenseKeyChecker.java b/stirling-pdf/src/main/java/stirling/software/spdf/EE/configuration/LicenseKeyChecker.java
similarity index 96%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/EE/configuration/LicenseKeyChecker.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/EE/configuration/LicenseKeyChecker.java
index c90373411..bedffcf9b 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/EE/configuration/LicenseKeyChecker.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/EE/configuration/LicenseKeyChecker.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.EE.configuration;
+package stirling.software.spdf.EE.configuration;
import java.io.IOException;
import java.nio.file.Files;
@@ -10,7 +10,7 @@ import org.springframework.stereotype.Component;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.EE.configuration.KeygenLicenseVerifier.License;
+import stirling.software.spdf.EE.configuration.KeygenLicenseVerifier.License;
import stirling.software.common.model.ApplicationProperties;
import stirling.software.common.util.GeneralUtil;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/Factories/ReplaceAndInvertColorFactory.java b/stirling-pdf/src/main/java/stirling/software/spdf/Factories/ReplaceAndInvertColorFactory.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/Factories/ReplaceAndInvertColorFactory.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/Factories/ReplaceAndInvertColorFactory.java
index 49be7fd42..67d720a68 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/Factories/ReplaceAndInvertColorFactory.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/Factories/ReplaceAndInvertColorFactory.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.Factories;
+package stirling.software.spdf.Factories;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/LibreOfficeListener.java b/stirling-pdf/src/main/java/stirling/software/spdf/LibreOfficeListener.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/LibreOfficeListener.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/LibreOfficeListener.java
index 5b00700e8..10873b642 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/LibreOfficeListener.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/LibreOfficeListener.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF;
+package stirling.software.spdf;
import java.io.IOException;
import java.net.InetSocketAddress;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/SPDFApplication.java b/stirling-pdf/src/main/java/stirling/software/spdf/SPDFApplication.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/SPDFApplication.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/SPDFApplication.java
index dd7a7a3bc..08e12b695 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/SPDFApplication.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/SPDFApplication.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF;
+package stirling.software.spdf;
import java.io.IOException;
import java.net.URISyntaxException;
@@ -25,7 +25,7 @@ import jakarta.annotation.PreDestroy;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.UI.WebBrowser;
+import stirling.software.spdf.UI.WebBrowser;
import stirling.software.common.configuration.AppConfig;
import stirling.software.common.configuration.ConfigInitializer;
import stirling.software.common.configuration.InstallationPathConfig;
@@ -36,7 +36,7 @@ import stirling.software.common.util.UrlUtils;
@EnableScheduling
@SpringBootApplication(
scanBasePackages = {
- "stirling.software.SPDF",
+ "stirling.software.spdf",
"stirling.software.common",
"stirling.software.proprietary",
"stirling.software.proprietary.configuration"
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/UI/WebBrowser.java b/stirling-pdf/src/main/java/stirling/software/spdf/UI/WebBrowser.java
similarity index 71%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/UI/WebBrowser.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/UI/WebBrowser.java
index b884888fe..0d536fe43 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/UI/WebBrowser.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/UI/WebBrowser.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.UI;
+package stirling.software.spdf.UI;
public interface WebBrowser {
void initWebUI(String url);
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/UI/impl/DesktopBrowser.java b/stirling-pdf/src/main/java/stirling/software/spdf/UI/impl/DesktopBrowser.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/UI/impl/DesktopBrowser.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/UI/impl/DesktopBrowser.java
index 959e7f354..6d74c8acf 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/UI/impl/DesktopBrowser.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/UI/impl/DesktopBrowser.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.UI.impl;
+package stirling.software.spdf.UI.impl;
import java.awt.AWTException;
import java.awt.BorderLayout;
@@ -42,7 +42,7 @@ import me.friwi.jcefmaven.EnumProgress;
import me.friwi.jcefmaven.MavenCefAppHandlerAdapter;
import me.friwi.jcefmaven.impl.progress.ConsoleProgressHandler;
-import stirling.software.SPDF.UI.WebBrowser;
+import stirling.software.spdf.UI.WebBrowser;
import stirling.software.common.configuration.InstallationPathConfig;
import stirling.software.common.util.UIScaling;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/UI/impl/LoadingWindow.java b/stirling-pdf/src/main/java/stirling/software/spdf/UI/impl/LoadingWindow.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/UI/impl/LoadingWindow.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/UI/impl/LoadingWindow.java
index 5c7381fa4..9c987503e 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/UI/impl/LoadingWindow.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/UI/impl/LoadingWindow.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.UI.impl;
+package stirling.software.spdf.UI.impl;
import java.awt.*;
import java.io.BufferedReader;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/config/AppUpdateService.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/AppUpdateService.java
similarity index 96%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/config/AppUpdateService.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/config/AppUpdateService.java
index c4c528f77..5d41dca55 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/config/AppUpdateService.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/config/AppUpdateService.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.config;
+package stirling.software.spdf.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
diff --git a/stirling-pdf/src/main/java/stirling/software/spdf/config/CleanUrlInterceptor.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/CleanUrlInterceptor.java
new file mode 100644
index 000000000..2c143b8e3
--- /dev/null
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/config/CleanUrlInterceptor.java
@@ -0,0 +1,83 @@
+package stirling.software.spdf.config;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.web.servlet.HandlerInterceptor;
+import org.springframework.web.servlet.ModelAndView;
+
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+
+public class CleanUrlInterceptor implements HandlerInterceptor {
+
+ private static final List ALLOWED_PARAMS =
+ Arrays.asList(
+ "lang",
+ "endpoint",
+ "endpoints",
+ "logout",
+ "error",
+ "errorOAuth",
+ "file",
+ "messageType",
+ "infoMessage");
+
+ @Override
+ public boolean preHandle(
+ HttpServletRequest request, HttpServletResponse response, Object handler)
+ throws Exception {
+ String queryString = request.getQueryString();
+ if (queryString != null && !queryString.isEmpty()) {
+ String requestURI = request.getRequestURI();
+ Map allowedParameters = new HashMap<>();
+
+ // Keep only the allowed parameters
+ String[] queryParameters = queryString.split("&");
+ for (String param : queryParameters) {
+ String[] keyValuePair = param.split("=");
+ if (keyValuePair.length != 2) {
+ continue;
+ }
+ if (ALLOWED_PARAMS.contains(keyValuePair[0])) {
+ allowedParameters.put(keyValuePair[0], keyValuePair[1]);
+ }
+ }
+
+ // If there are any parameters that are not allowed
+ if (allowedParameters.size() != queryParameters.length) {
+ // Construct new query string
+ StringBuilder newQueryString = new StringBuilder();
+ for (Map.Entry entry : allowedParameters.entrySet()) {
+ if (newQueryString.length() > 0) {
+ newQueryString.append("&");
+ }
+ newQueryString.append(entry.getKey()).append("=").append(entry.getValue());
+ }
+
+ // Redirect to the URL with only allowed query parameters
+ String redirectUrl = requestURI + "?" + newQueryString;
+
+ response.sendRedirect(request.getContextPath() + redirectUrl);
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public void postHandle(
+ HttpServletRequest request,
+ HttpServletResponse response,
+ Object handler,
+ ModelAndView modelAndView) {}
+
+ @Override
+ public void afterCompletion(
+ HttpServletRequest request,
+ HttpServletResponse response,
+ Object handler,
+ Exception ex) {}
+}
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/config/EndpointConfiguration.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/EndpointConfiguration.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/config/EndpointConfiguration.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/config/EndpointConfiguration.java
index c9872992a..3b704e05e 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/config/EndpointConfiguration.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/config/EndpointConfiguration.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.config;
+package stirling.software.spdf.config;
import java.util.HashSet;
import java.util.List;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/config/EndpointInspector.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/EndpointInspector.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/config/EndpointInspector.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/config/EndpointInspector.java
index d9ceb0f9d..137e1cc75 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/config/EndpointInspector.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/config/EndpointInspector.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.config;
+package stirling.software.spdf.config;
import java.lang.reflect.Method;
import java.util.HashSet;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/config/EndpointInterceptor.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/EndpointInterceptor.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/config/EndpointInterceptor.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/config/EndpointInterceptor.java
index 52fb42e07..a60c4fa2c 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/config/EndpointInterceptor.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/config/EndpointInterceptor.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.config;
+package stirling.software.spdf.config;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/config/ExternalAppDepConfig.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/ExternalAppDepConfig.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/config/ExternalAppDepConfig.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/config/ExternalAppDepConfig.java
index 7dd6d2b3b..03f8331d8 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/config/ExternalAppDepConfig.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/config/ExternalAppDepConfig.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.config;
+package stirling.software.spdf.config;
import java.util.Arrays;
import java.util.HashMap;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/config/InitialSetup.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/InitialSetup.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/config/InitialSetup.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/config/InitialSetup.java
index 8722a2c5f..937a87a59 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/config/InitialSetup.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/config/InitialSetup.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.config;
+package stirling.software.spdf.config;
import java.io.IOException;
import java.util.Properties;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/config/LocaleConfiguration.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/LocaleConfiguration.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/config/LocaleConfiguration.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/config/LocaleConfiguration.java
index 97fbb4d21..b8f20d11e 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/config/LocaleConfiguration.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/config/LocaleConfiguration.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.config;
+package stirling.software.spdf.config;
import java.util.Locale;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/config/LogbackPropertyLoader.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/LogbackPropertyLoader.java
similarity index 88%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/config/LogbackPropertyLoader.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/config/LogbackPropertyLoader.java
index f5839637d..3fe163d24 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/config/LogbackPropertyLoader.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/config/LogbackPropertyLoader.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.config;
+package stirling.software.spdf.config;
import stirling.software.common.configuration.InstallationPathConfig;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/config/MetricsConfig.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/MetricsConfig.java
similarity index 94%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/config/MetricsConfig.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/config/MetricsConfig.java
index 7012ad517..d029bd12d 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/config/MetricsConfig.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/config/MetricsConfig.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.config;
+package stirling.software.spdf.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/config/MetricsFilter.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/MetricsFilter.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/config/MetricsFilter.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/config/MetricsFilter.java
index cb0062c26..13e25533f 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/config/MetricsFilter.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/config/MetricsFilter.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.config;
+package stirling.software.spdf.config;
import java.io.IOException;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/config/OpenApiConfig.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/OpenApiConfig.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/config/OpenApiConfig.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/config/OpenApiConfig.java
index 78d2a3d2b..c1618dffe 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/config/OpenApiConfig.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/config/OpenApiConfig.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.config;
+package stirling.software.spdf.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/config/PostHogLoggerImpl.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/PostHogLoggerImpl.java
similarity index 95%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/config/PostHogLoggerImpl.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/config/PostHogLoggerImpl.java
index 61c0493d7..adfbd5e13 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/config/PostHogLoggerImpl.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/config/PostHogLoggerImpl.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.config;
+package stirling.software.spdf.config;
import org.springframework.stereotype.Component;
diff --git a/stirling-pdf/src/main/java/stirling/software/spdf/config/StartupApplicationListener.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/StartupApplicationListener.java
new file mode 100644
index 000000000..af0b08390
--- /dev/null
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/config/StartupApplicationListener.java
@@ -0,0 +1,18 @@
+package stirling.software.spdf.config;
+
+import java.time.LocalDateTime;
+
+import org.springframework.context.ApplicationListener;
+import org.springframework.context.event.ContextRefreshedEvent;
+import org.springframework.stereotype.Component;
+
+@Component
+public class StartupApplicationListener implements ApplicationListener {
+
+ public static LocalDateTime startTime;
+
+ @Override
+ public void onApplicationEvent(ContextRefreshedEvent event) {
+ startTime = LocalDateTime.now();
+ }
+}
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/config/WebMvcConfig.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/WebMvcConfig.java
similarity index 96%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/config/WebMvcConfig.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/config/WebMvcConfig.java
index c3e204b3c..4d04b39f5 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/config/WebMvcConfig.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/config/WebMvcConfig.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.config;
+package stirling.software.spdf.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintBasedSessionFilter.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/fingerprint/FingerprintBasedSessionFilter.java
similarity index 100%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintBasedSessionFilter.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/config/fingerprint/FingerprintBasedSessionFilter.java
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintBasedSessionManager.java b/stirling-pdf/src/main/java/stirling/software/spdf/config/fingerprint/FingerprintBasedSessionManager.java
similarity index 100%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintBasedSessionManager.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/config/fingerprint/FingerprintBasedSessionManager.java
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/AdditionalLanguageJsController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/AdditionalLanguageJsController.java
similarity index 96%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/AdditionalLanguageJsController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/AdditionalLanguageJsController.java
index e5d3ba884..ea46dba4f 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/AdditionalLanguageJsController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/AdditionalLanguageJsController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import java.io.IOException;
import java.io.PrintWriter;
@@ -16,7 +16,7 @@ import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.service.LanguageService;
+import stirling.software.spdf.service.LanguageService;
@RestController
@RequestMapping("/js")
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/AnalysisController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/AnalysisController.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/AnalysisController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/AnalysisController.java
index b6419890a..5edb37907 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/AnalysisController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/AnalysisController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import java.io.IOException;
import java.util.*;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/CropController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/CropController.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/CropController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/CropController.java
index 3a2d16757..0f867f9c5 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/CropController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/CropController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -21,7 +21,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.general.CropPdfForm;
+import stirling.software.spdf.model.api.general.CropPdfForm;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/EmailController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/EmailController.java
similarity index 100%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/EmailController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/EmailController.java
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/MergeController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/MergeController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/MergeController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/MergeController.java
index 509ef054d..f5ad658b9 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/MergeController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/MergeController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import java.io.ByteArrayOutputStream;
import java.io.File;
@@ -31,7 +31,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.general.MergePdfsRequest;
+import stirling.software.spdf.model.api.general.MergePdfsRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.GeneralUtil;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/MultiPageLayoutController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/MultiPageLayoutController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/MultiPageLayoutController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/MultiPageLayoutController.java
index c57e3a6c0..ff1c45959 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/MultiPageLayoutController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/MultiPageLayoutController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import java.awt.*;
import java.io.ByteArrayOutputStream;
@@ -24,7 +24,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.general.MergeMultiplePagesRequest;
+import stirling.software.spdf.model.api.general.MergeMultiplePagesRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/PdfImageRemovalController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/PdfImageRemovalController.java
similarity index 96%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/PdfImageRemovalController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/PdfImageRemovalController.java
index d6602351e..687ebf9a2 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/PdfImageRemovalController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/PdfImageRemovalController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -15,7 +15,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.service.PdfImageRemovalService;
+import stirling.software.spdf.service.PdfImageRemovalService;
import stirling.software.common.model.api.PDFFile;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/PdfOverlayController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/PdfOverlayController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/PdfOverlayController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/PdfOverlayController.java
index c725563b3..cac8920ad 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/PdfOverlayController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/PdfOverlayController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import java.io.ByteArrayOutputStream;
import java.io.File;
@@ -26,7 +26,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.general.OverlayPdfsRequest;
+import stirling.software.spdf.model.api.general.OverlayPdfsRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.GeneralUtil;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/RearrangePagesPDFController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/RearrangePagesPDFController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/RearrangePagesPDFController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/RearrangePagesPDFController.java
index 356a8490f..7bff62362 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/RearrangePagesPDFController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/RearrangePagesPDFController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import java.io.IOException;
import java.util.ArrayList;
@@ -21,9 +21,9 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.SortTypes;
-import stirling.software.SPDF.model.api.PDFWithPageNums;
-import stirling.software.SPDF.model.api.general.RearrangePagesRequest;
+import stirling.software.spdf.model.SortTypes;
+import stirling.software.spdf.model.api.PDFWithPageNums;
+import stirling.software.spdf.model.api.general.RearrangePagesRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.GeneralUtil;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/RotationController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/RotationController.java
similarity index 95%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/RotationController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/RotationController.java
index afdfc54d9..bfe7df2af 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/RotationController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/RotationController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import java.io.IOException;
@@ -18,7 +18,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.general.RotatePDFRequest;
+import stirling.software.spdf.model.api.general.RotatePDFRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/ScalePagesController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/ScalePagesController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/ScalePagesController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/ScalePagesController.java
index b2d689728..e441b8abd 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/ScalePagesController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/ScalePagesController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -25,7 +25,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.general.ScalePagesRequest;
+import stirling.software.spdf.model.api.general.ScalePagesRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/SettingsController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/SettingsController.java
similarity index 94%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/SettingsController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/SettingsController.java
index 13ee8545f..e76cb2130 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/SettingsController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/SettingsController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import java.io.IOException;
import java.util.Map;
@@ -16,7 +16,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.config.EndpointConfiguration;
+import stirling.software.spdf.config.EndpointConfiguration;
import stirling.software.common.configuration.InstallationPathConfig;
import stirling.software.common.model.ApplicationProperties;
import stirling.software.common.util.GeneralUtil;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/SplitPdfByChaptersController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/SplitPdfByChaptersController.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/SplitPdfByChaptersController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/SplitPdfByChaptersController.java
index 80ec89738..c92593f8b 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/SplitPdfByChaptersController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/SplitPdfByChaptersController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import java.io.ByteArrayOutputStream;
import java.nio.file.Files;
@@ -31,7 +31,7 @@ import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.SplitPdfByChaptersRequest;
+import stirling.software.spdf.model.api.SplitPdfByChaptersRequest;
import stirling.software.common.model.PdfMetadata;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.service.PdfMetadataService;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/SplitPdfBySectionsController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/SplitPdfBySectionsController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/SplitPdfBySectionsController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/SplitPdfBySectionsController.java
index c2bbd31b5..8e88a2244 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/SplitPdfBySectionsController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/SplitPdfBySectionsController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -31,7 +31,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.SplitPdfBySectionsRequest;
+import stirling.software.spdf.model.api.SplitPdfBySectionsRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/SplitPdfBySizeController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/SplitPdfBySizeController.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/SplitPdfBySizeController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/SplitPdfBySizeController.java
index 2b1ffa6e3..56af58755 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/SplitPdfBySizeController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/SplitPdfBySizeController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -24,7 +24,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.general.SplitPdfBySizeOrCountRequest;
+import stirling.software.spdf.model.api.general.SplitPdfBySizeOrCountRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.GeneralUtil;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/ToSinglePageController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/ToSinglePageController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/ToSinglePageController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/ToSinglePageController.java
index 9085f41b1..155d06636 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/ToSinglePageController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/ToSinglePageController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import java.awt.geom.AffineTransform;
import java.io.ByteArrayOutputStream;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertHtmlToPDF.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertHtmlToPDF.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertHtmlToPDF.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertHtmlToPDF.java
index cdd9bc1a7..dfe31e19b 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertHtmlToPDF.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertHtmlToPDF.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.converters;
+package stirling.software.spdf.controller.api.converters;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ModelAttribute;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertImgPDFController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertImgPDFController.java
index 418fa7ea7..ae2934adf 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertImgPDFController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.converters;
+package stirling.software.spdf.controller.api.converters;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
@@ -30,8 +30,8 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.converters.ConvertToImageRequest;
-import stirling.software.SPDF.model.api.converters.ConvertToPdfRequest;
+import stirling.software.spdf.model.api.converters.ConvertToImageRequest;
+import stirling.software.spdf.model.api.converters.ConvertToPdfRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.CheckProgramInstall;
import stirling.software.common.util.GeneralUtil;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertMarkdownToPdf.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertMarkdownToPdf.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertMarkdownToPdf.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertMarkdownToPdf.java
index 8348e7794..96a0d3010 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertMarkdownToPdf.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertMarkdownToPdf.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.converters;
+package stirling.software.spdf.controller.api.converters;
import java.util.List;
import java.util.Map;
@@ -23,7 +23,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.GeneralFile;
+import stirling.software.spdf.model.api.GeneralFile;
import stirling.software.common.configuration.RuntimePathConfig;
import stirling.software.common.model.ApplicationProperties;
import stirling.software.common.service.CustomPDFDocumentFactory;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertOfficeController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertOfficeController.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertOfficeController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertOfficeController.java
index 6716106d5..e5df90f7c 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertOfficeController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertOfficeController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.converters;
+package stirling.software.spdf.controller.api.converters;
import java.io.File;
import java.io.IOException;
@@ -23,7 +23,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.GeneralFile;
+import stirling.software.spdf.model.api.GeneralFile;
import stirling.software.common.configuration.RuntimePathConfig;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.ProcessExecutor;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToHtml.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertPDFToHtml.java
similarity index 95%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToHtml.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertPDFToHtml.java
index 9015dee2e..0a014a8c1 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToHtml.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertPDFToHtml.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.converters;
+package stirling.software.spdf.controller.api.converters;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ModelAttribute;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToOffice.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertPDFToOffice.java
similarity index 94%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToOffice.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertPDFToOffice.java
index 585185460..000219fba 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToOffice.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertPDFToOffice.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.converters;
+package stirling.software.spdf.controller.api.converters;
import java.io.IOException;
@@ -18,9 +18,9 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.converters.PdfToPresentationRequest;
-import stirling.software.SPDF.model.api.converters.PdfToTextOrRTFRequest;
-import stirling.software.SPDF.model.api.converters.PdfToWordRequest;
+import stirling.software.spdf.model.api.converters.PdfToPresentationRequest;
+import stirling.software.spdf.model.api.converters.PdfToTextOrRTFRequest;
+import stirling.software.spdf.model.api.converters.PdfToWordRequest;
import stirling.software.common.model.api.PDFFile;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.PDFToFile;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToPDFA.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertPDFToPDFA.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToPDFA.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertPDFToPDFA.java
index 73efc03fd..ea454407f 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToPDFA.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertPDFToPDFA.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.converters;
+package stirling.software.spdf.controller.api.converters;
import java.io.File;
import java.nio.file.Files;
@@ -22,7 +22,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.converters.PdfToPdfARequest;
+import stirling.software.spdf.model.api.converters.PdfToPdfARequest;
import stirling.software.common.util.ProcessExecutor;
import stirling.software.common.util.ProcessExecutor.ProcessExecutorResult;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertWebsiteToPDF.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertWebsiteToPDF.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertWebsiteToPDF.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertWebsiteToPDF.java
index c57bf4213..c0e5f9e2f 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertWebsiteToPDF.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ConvertWebsiteToPDF.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.converters;
+package stirling.software.spdf.controller.api.converters;
import java.io.IOException;
import java.nio.file.Files;
@@ -19,7 +19,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.converters.UrlToPdfRequest;
+import stirling.software.spdf.model.api.converters.UrlToPdfRequest;
import stirling.software.common.configuration.RuntimePathConfig;
import stirling.software.common.model.ApplicationProperties;
import stirling.software.common.service.CustomPDFDocumentFactory;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ExtractCSVController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ExtractCSVController.java
similarity index 96%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ExtractCSVController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ExtractCSVController.java
index 847904b60..cfd67787c 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/converters/ExtractCSVController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/converters/ExtractCSVController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.converters;
+package stirling.software.spdf.controller.api.converters;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -28,8 +28,8 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.PDFWithPageNums;
-import stirling.software.SPDF.pdf.FlexibleCSVWriter;
+import stirling.software.spdf.model.api.PDFWithPageNums;
+import stirling.software.spdf.pdf.FlexibleCSVWriter;
import stirling.software.common.service.CustomPDFDocumentFactory;
import technology.tabula.ObjectExtractor;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/filters/FilterController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/filters/FilterController.java
similarity index 95%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/filters/FilterController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/filters/FilterController.java
index 96322ad80..b4bc7f02a 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/filters/FilterController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/filters/FilterController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.filters;
+package stirling.software.spdf.controller.api.filters;
import java.io.IOException;
@@ -18,12 +18,12 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.PDFComparisonAndCount;
-import stirling.software.SPDF.model.api.PDFWithPageNums;
-import stirling.software.SPDF.model.api.filter.ContainsTextRequest;
-import stirling.software.SPDF.model.api.filter.FileSizeRequest;
-import stirling.software.SPDF.model.api.filter.PageRotationRequest;
-import stirling.software.SPDF.model.api.filter.PageSizeRequest;
+import stirling.software.spdf.model.api.PDFComparisonAndCount;
+import stirling.software.spdf.model.api.PDFWithPageNums;
+import stirling.software.spdf.model.api.filter.ContainsTextRequest;
+import stirling.software.spdf.model.api.filter.FileSizeRequest;
+import stirling.software.spdf.model.api.filter.PageRotationRequest;
+import stirling.software.spdf.model.api.filter.PageSizeRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.PdfUtils;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/AutoRenameController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/AutoRenameController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/AutoRenameController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/AutoRenameController.java
index 8d803708c..d665a02fb 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/AutoRenameController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/AutoRenameController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.io.IOException;
import java.util.ArrayList;
@@ -22,7 +22,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.misc.ExtractHeaderRequest;
+import stirling.software.spdf.model.api.misc.ExtractHeaderRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/AutoSplitPdfController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/AutoSplitPdfController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/AutoSplitPdfController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/AutoSplitPdfController.java
index 44d575575..82670793c 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/AutoSplitPdfController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/AutoSplitPdfController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
@@ -34,7 +34,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.misc.AutoSplitPdfRequest;
+import stirling.software.spdf.model.api.misc.AutoSplitPdfRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/BlankPageController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/BlankPageController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/BlankPageController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/BlankPageController.java
index a7314fc7e..7da7b240e 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/BlankPageController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/BlankPageController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
@@ -29,7 +29,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.misc.RemoveBlankPagesRequest;
+import stirling.software.spdf.model.api.misc.RemoveBlankPagesRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.PdfUtils;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/DecompressPdfController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/DecompressPdfController.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/DecompressPdfController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/DecompressPdfController.java
index cfbc88e8b..23f525a7b 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/DecompressPdfController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/DecompressPdfController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImageScansController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/ExtractImageScansController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImageScansController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/ExtractImageScansController.java
index d5d3a63fb..bbc8479e2 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImageScansController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/ExtractImageScansController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.awt.image.BufferedImage;
import java.io.FileOutputStream;
@@ -30,7 +30,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.misc.ExtractImageScansRequest;
+import stirling.software.spdf.model.api.misc.ExtractImageScansRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.CheckProgramInstall;
import stirling.software.common.util.ProcessExecutor;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImagesController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/ExtractImagesController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImagesController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/ExtractImagesController.java
index 4ec844485..e7dcc7f83 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImagesController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/ExtractImagesController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.awt.*;
import java.awt.image.BufferedImage;
@@ -39,7 +39,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.PDFExtractImagesRequest;
+import stirling.software.spdf.model.api.PDFExtractImagesRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.ImageProcessingUtils;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/FlattenController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/FlattenController.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/FlattenController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/FlattenController.java
index d82a1971a..9f2880a29 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/FlattenController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/FlattenController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.awt.image.BufferedImage;
import java.io.IOException;
@@ -25,7 +25,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.misc.FlattenRequest;
+import stirling.software.spdf.model.api.misc.FlattenRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/MetadataController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/MetadataController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/MetadataController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/MetadataController.java
index 1d5196940..3104b8bbc 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/MetadataController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/MetadataController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.io.IOException;
import java.text.ParseException;
@@ -22,7 +22,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.misc.MetadataRequest;
+import stirling.software.spdf.model.api.misc.MetadataRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.WebResponseUtils;
import stirling.software.common.util.propertyeditor.StringToMapPropertyEditor;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/OCRController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/OCRController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/OCRController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/OCRController.java
index be6c4649c..8da3372c5 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/OCRController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/OCRController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.awt.image.BufferedImage;
import java.io.*;
@@ -31,7 +31,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.misc.ProcessPdfWithOcrRequest;
+import stirling.software.spdf.model.api.misc.ProcessPdfWithOcrRequest;
import stirling.software.common.model.ApplicationProperties;
import stirling.software.common.service.CustomPDFDocumentFactory;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/OverlayImageController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/OverlayImageController.java
similarity index 95%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/OverlayImageController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/OverlayImageController.java
index d50c80967..7d3cb2933 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/OverlayImageController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/OverlayImageController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.io.IOException;
@@ -17,7 +17,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.misc.OverlayImageRequest;
+import stirling.software.spdf.model.api.misc.OverlayImageRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.PdfUtils;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/PageNumbersController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/PageNumbersController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/PageNumbersController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/PageNumbersController.java
index eeb3240cb..384db6aa0 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/PageNumbersController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/PageNumbersController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -24,7 +24,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.misc.AddPageNumbersRequest;
+import stirling.software.spdf.model.api.misc.AddPageNumbersRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.GeneralUtil;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/PrintFileController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/PrintFileController.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/PrintFileController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/PrintFileController.java
index 79140c571..59af2fb9c 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/PrintFileController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/PrintFileController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.awt.*;
import java.awt.image.BufferedImage;
@@ -27,7 +27,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.misc.PrintFileRequest;
+import stirling.software.spdf.model.api.misc.PrintFileRequest;
@RestController
@RequestMapping("/api/v1/misc")
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/RepairController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/RepairController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/RepairController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/RepairController.java
index 85340a163..102358013 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/RepairController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/RepairController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.io.IOException;
import java.nio.file.Files;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/ReplaceAndInvertColorController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/ReplaceAndInvertColorController.java
similarity index 92%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/ReplaceAndInvertColorController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/ReplaceAndInvertColorController.java
index 85fb7cfc3..d9afad607 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/ReplaceAndInvertColorController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/ReplaceAndInvertColorController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.io.IOException;
@@ -16,8 +16,8 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.misc.ReplaceAndInvertColorRequest;
-import stirling.software.SPDF.service.misc.ReplaceAndInvertColorService;
+import stirling.software.spdf.model.api.misc.ReplaceAndInvertColorRequest;
+import stirling.software.spdf.service.misc.ReplaceAndInvertColorService;
@RestController
@RequestMapping("/api/v1/misc")
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/ShowJavascript.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/ShowJavascript.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/ShowJavascript.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/ShowJavascript.java
index 94e9b57c6..30af3cf71 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/ShowJavascript.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/ShowJavascript.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.nio.charset.StandardCharsets;
import java.util.Map;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/StampController.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/StampController.java
index 9c0ad2909..54b81dae6 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/StampController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.awt.*;
import java.awt.image.BufferedImage;
@@ -38,7 +38,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.misc.AddStampRequest;
+import stirling.software.spdf.model.api.misc.AddStampRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/UnlockPDFFormsController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/UnlockPDFFormsController.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/UnlockPDFFormsController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/UnlockPDFFormsController.java
index e7dfba041..3cc244797 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/UnlockPDFFormsController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/misc/UnlockPDFFormsController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.misc;
+package stirling.software.spdf.controller.api.misc;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/pipeline/PipelineController.java
similarity index 94%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/pipeline/PipelineController.java
index 04999a7e3..c4b888b75 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/pipeline/PipelineController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.pipeline;
+package stirling.software.spdf.controller.api.pipeline;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
@@ -26,11 +26,11 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.PipelineConfig;
-import stirling.software.SPDF.model.PipelineOperation;
-import stirling.software.SPDF.model.PipelineResult;
-import stirling.software.SPDF.model.api.HandleDataRequest;
-import stirling.software.SPDF.service.PostHogService;
+import stirling.software.spdf.model.PipelineConfig;
+import stirling.software.spdf.model.PipelineOperation;
+import stirling.software.spdf.model.PipelineResult;
+import stirling.software.spdf.model.api.HandleDataRequest;
+import stirling.software.spdf.service.PostHogService;
import stirling.software.common.util.WebResponseUtils;
@RestController
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineDirectoryProcessor.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/pipeline/PipelineDirectoryProcessor.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineDirectoryProcessor.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/pipeline/PipelineDirectoryProcessor.java
index 92d4ed65e..0ec82a306 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineDirectoryProcessor.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/pipeline/PipelineDirectoryProcessor.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.pipeline;
+package stirling.software.spdf.controller.api.pipeline;
import java.io.File;
import java.io.FileOutputStream;
@@ -32,10 +32,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.PipelineConfig;
-import stirling.software.SPDF.model.PipelineOperation;
-import stirling.software.SPDF.model.PipelineResult;
-import stirling.software.SPDF.service.PostHogService;
+import stirling.software.spdf.model.PipelineConfig;
+import stirling.software.spdf.model.PipelineOperation;
+import stirling.software.spdf.model.PipelineResult;
+import stirling.software.spdf.service.ApiDocService;
+import stirling.software.spdf.service.PostHogService;
import stirling.software.common.configuration.RuntimePathConfig;
import stirling.software.common.util.FileMonitor;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/pipeline/PipelineProcessor.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/pipeline/PipelineProcessor.java
index 95add087d..574588abc 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/pipeline/PipelineProcessor.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.pipeline;
+package stirling.software.spdf.controller.api.pipeline;
import java.io.*;
import java.net.URLDecoder;
@@ -31,10 +31,11 @@ import jakarta.servlet.ServletContext;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.SPDFApplication;
-import stirling.software.SPDF.model.PipelineConfig;
-import stirling.software.SPDF.model.PipelineOperation;
-import stirling.software.SPDF.model.PipelineResult;
+import stirling.software.spdf.SPDFApplication;
+import stirling.software.spdf.model.PipelineConfig;
+import stirling.software.spdf.model.PipelineOperation;
+import stirling.software.spdf.model.PipelineResult;
+import stirling.software.spdf.service.ApiDocService;
import stirling.software.common.model.enumeration.Role;
import stirling.software.common.service.UserServiceInterface;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/CertSignController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/CertSignController.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/CertSignController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/CertSignController.java
index 76047a27b..26e6e2615 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/CertSignController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/CertSignController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.security;
+package stirling.software.spdf.controller.api.security;
import java.awt.*;
import java.beans.PropertyEditorSupport;
@@ -71,7 +71,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.api.security.SignPDFWithCertRequest;
+import stirling.software.spdf.model.api.security.SignPDFWithCertRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/GetInfoOnPDF.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/GetInfoOnPDF.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/GetInfoOnPDF.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/GetInfoOnPDF.java
index eda955d83..89bf8d49e 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/GetInfoOnPDF.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/GetInfoOnPDF.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.security;
+package stirling.software.spdf.controller.api.security;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/PasswordController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/PasswordController.java
similarity index 96%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/PasswordController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/PasswordController.java
index 4567fcb7e..11917f656 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/PasswordController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/PasswordController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.security;
+package stirling.software.spdf.controller.api.security;
import java.io.IOException;
@@ -18,8 +18,8 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.security.AddPasswordRequest;
-import stirling.software.SPDF.model.api.security.PDFPasswordRequest;
+import stirling.software.spdf.model.api.security.AddPasswordRequest;
+import stirling.software.spdf.model.api.security.PDFPasswordRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/RedactController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/RedactController.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/RedactController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/RedactController.java
index 6cb7ad021..5917075cd 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/RedactController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/RedactController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.security;
+package stirling.software.spdf.controller.api.security;
import java.awt.*;
import java.io.ByteArrayOutputStream;
@@ -30,10 +30,10 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.PDFText;
-import stirling.software.SPDF.model.api.security.ManualRedactPdfRequest;
-import stirling.software.SPDF.model.api.security.RedactPdfRequest;
-import stirling.software.SPDF.pdf.TextFinder;
+import stirling.software.spdf.model.PDFText;
+import stirling.software.spdf.model.api.security.ManualRedactPdfRequest;
+import stirling.software.spdf.model.api.security.RedactPdfRequest;
+import stirling.software.spdf.pdf.TextFinder;
import stirling.software.common.model.api.security.RedactionArea;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.GeneralUtil;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/RemoveCertSignController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/RemoveCertSignController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/RemoveCertSignController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/RemoveCertSignController.java
index 79fd18914..3b560cdec 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/RemoveCertSignController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/RemoveCertSignController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.security;
+package stirling.software.spdf.controller.api.security;
import java.util.List;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/SanitizeController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/SanitizeController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/SanitizeController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/SanitizeController.java
index bc0a4ff9d..a1e4998fa 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/SanitizeController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/SanitizeController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.security;
+package stirling.software.spdf.controller.api.security;
import java.io.IOException;
@@ -25,7 +25,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.security.SanitizePdfRequest;
+import stirling.software.spdf.model.api.security.SanitizePdfRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/ValidateSignatureController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/ValidateSignatureController.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/ValidateSignatureController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/ValidateSignatureController.java
index b3f01ef47..926589c0c 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/ValidateSignatureController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/ValidateSignatureController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.security;
+package stirling.software.spdf.controller.api.security;
import java.beans.PropertyEditorSupport;
import java.io.ByteArrayInputStream;
@@ -37,9 +37,9 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.security.SignatureValidationRequest;
-import stirling.software.SPDF.model.api.security.SignatureValidationResult;
-import stirling.software.SPDF.service.CertificateValidationService;
+import stirling.software.spdf.model.api.security.SignatureValidationRequest;
+import stirling.software.spdf.model.api.security.SignatureValidationResult;
+import stirling.software.spdf.service.CertificateValidationService;
import stirling.software.common.service.CustomPDFDocumentFactory;
@RestController
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/WatermarkController.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/WatermarkController.java
index fd8f1cf8a..b68ccf2a8 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/api/security/WatermarkController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.security;
+package stirling.software.spdf.controller.api.security;
import java.awt.*;
import java.awt.image.BufferedImage;
@@ -39,7 +39,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.model.api.security.AddWatermarkRequest;
+import stirling.software.spdf.model.api.security.AddWatermarkRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.PdfUtils;
import stirling.software.common.util.WebResponseUtils;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/ConverterWebController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/web/ConverterWebController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/ConverterWebController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/web/ConverterWebController.java
index 10794693e..89db9b714 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/ConverterWebController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/web/ConverterWebController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.web;
+package stirling.software.spdf.controller.web;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/GeneralWebController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/web/GeneralWebController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/GeneralWebController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/web/GeneralWebController.java
index 139ff0b97..1bcb8cfdb 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/GeneralWebController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/web/GeneralWebController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.web;
+package stirling.software.spdf.controller.web;
import java.io.File;
import java.io.IOException;
@@ -24,8 +24,8 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.SignatureFile;
-import stirling.software.SPDF.service.SignatureService;
+import stirling.software.spdf.model.SignatureFile;
+import stirling.software.spdf.service.SignatureService;
import stirling.software.common.configuration.InstallationPathConfig;
import stirling.software.common.configuration.RuntimePathConfig;
import stirling.software.common.service.UserServiceInterface;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/MetricsController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/web/MetricsController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/MetricsController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/web/MetricsController.java
index e82acaffa..68a271561 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/MetricsController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/web/MetricsController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.web;
+package stirling.software.spdf.controller.web;
import java.time.Duration;
import java.time.LocalDateTime;
@@ -22,8 +22,8 @@ import jakarta.annotation.PostConstruct;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.config.EndpointInspector;
-import stirling.software.SPDF.config.StartupApplicationListener;
+import stirling.software.spdf.config.EndpointInspector;
+import stirling.software.spdf.config.StartupApplicationListener;
import stirling.software.common.model.ApplicationProperties;
@RestController
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/OtherWebController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/web/OtherWebController.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/OtherWebController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/web/OtherWebController.java
index 25333d495..b3ac13ef0 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/OtherWebController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/web/OtherWebController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.web;
+package stirling.software.spdf.controller.web;
import java.io.File;
import java.util.Arrays;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/SecurityWebController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/web/SecurityWebController.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/SecurityWebController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/web/SecurityWebController.java
index eb7245e5a..19c4455f4 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/SecurityWebController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/web/SecurityWebController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.web;
+package stirling.software.spdf.controller.web;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/SignatureController.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/web/SignatureController.java
similarity index 94%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/SignatureController.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/web/SignatureController.java
index de03680e1..5b5c9e5a5 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/SignatureController.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/web/SignatureController.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.web;
+package stirling.software.spdf.controller.web;
import java.io.IOException;
@@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
-import stirling.software.SPDF.service.SignatureService;
+import stirling.software.spdf.service.SignatureService;
import stirling.software.common.service.UserServiceInterface;
@Controller
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/UploadLimitService.java b/stirling-pdf/src/main/java/stirling/software/spdf/controller/web/UploadLimitService.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/UploadLimitService.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/controller/web/UploadLimitService.java
index 28f3126cc..e56ca331b 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/UploadLimitService.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/controller/web/UploadLimitService.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.web;
+package stirling.software.spdf.controller.web;
import java.util.regex.Pattern;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/ApiEndpoint.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/ApiEndpoint.java
similarity index 96%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/ApiEndpoint.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/ApiEndpoint.java
index dfb06f0d8..41695e263 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/ApiEndpoint.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/ApiEndpoint.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model;
+package stirling.software.spdf.model;
import java.util.HashMap;
import java.util.Map;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/Dependency.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/Dependency.java
similarity index 85%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/Dependency.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/Dependency.java
index 008a6f529..ec0c19d05 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/Dependency.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/Dependency.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model;
+package stirling.software.spdf.model;
import lombok.Data;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/PDFText.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/PDFText.java
similarity index 85%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/PDFText.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/PDFText.java
index cb92c6682..cff289d37 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/PDFText.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/PDFText.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model;
+package stirling.software.spdf.model;
import lombok.Data;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/PipelineConfig.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/PipelineConfig.java
similarity index 90%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/PipelineConfig.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/PipelineConfig.java
index b0d3a3e7d..d44c73da7 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/PipelineConfig.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/PipelineConfig.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model;
+package stirling.software.spdf.model;
import java.util.List;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/PipelineOperation.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/PipelineOperation.java
similarity index 80%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/PipelineOperation.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/PipelineOperation.java
index 30a5ad52b..d6c2a8776 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/PipelineOperation.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/PipelineOperation.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model;
+package stirling.software.spdf.model;
import java.util.Map;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/PipelineResult.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/PipelineResult.java
similarity index 86%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/PipelineResult.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/PipelineResult.java
index 8ecf0d97e..b1db832a9 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/PipelineResult.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/PipelineResult.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model;
+package stirling.software.spdf.model;
import java.util.List;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/SignatureFile.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/SignatureFile.java
similarity index 83%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/SignatureFile.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/SignatureFile.java
index 7d82ebf0f..7eb41b759 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/SignatureFile.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/SignatureFile.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model;
+package stirling.software.spdf.model;
import lombok.AllArgsConstructor;
import lombok.Data;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/SortTypes.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/SortTypes.java
similarity index 86%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/SortTypes.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/SortTypes.java
index 14d12b5a9..90bf6f505 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/SortTypes.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/SortTypes.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model;
+package stirling.software.spdf.model;
public enum SortTypes {
CUSTOM,
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/Email.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/Email.java
similarity index 100%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/Email.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/Email.java
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/GeneralFile.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/GeneralFile.java
similarity index 90%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/GeneralFile.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/GeneralFile.java
index e3ffc8c8b..1ab8b1258 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/GeneralFile.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/GeneralFile.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api;
+package stirling.software.spdf.model.api;
import org.springframework.web.multipart.MultipartFile;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/HandleDataRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/HandleDataRequest.java
similarity index 92%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/HandleDataRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/HandleDataRequest.java
index 7f425dc04..753a036e9 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/HandleDataRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/HandleDataRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api;
+package stirling.software.spdf.model.api;
import org.springframework.web.multipart.MultipartFile;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/ImageFile.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/ImageFile.java
similarity index 90%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/ImageFile.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/ImageFile.java
index bd51ac8db..015e9f5e8 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/ImageFile.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/ImageFile.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api;
+package stirling.software.spdf.model.api;
import org.springframework.web.multipart.MultipartFile;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/MultiplePDFFiles.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/MultiplePDFFiles.java
similarity index 89%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/MultiplePDFFiles.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/MultiplePDFFiles.java
index b56a52c7a..fd01496f1 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/MultiplePDFFiles.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/MultiplePDFFiles.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api;
+package stirling.software.spdf.model.api;
import org.springframework.web.multipart.MultipartFile;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFComparison.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFComparison.java
similarity index 92%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFComparison.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFComparison.java
index 9524cd274..46eaa52c3 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFComparison.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFComparison.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api;
+package stirling.software.spdf.model.api;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFComparisonAndCount.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFComparisonAndCount.java
similarity index 88%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFComparisonAndCount.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFComparisonAndCount.java
index 32037ea9f..9d2752203 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFComparisonAndCount.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFComparisonAndCount.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api;
+package stirling.software.spdf.model.api;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFExtractImagesRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFExtractImagesRequest.java
similarity index 91%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFExtractImagesRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFExtractImagesRequest.java
index 272c5c8b1..5d8767264 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFExtractImagesRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFExtractImagesRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api;
+package stirling.software.spdf.model.api;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFWithImageFormatRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFWithImageFormatRequest.java
similarity index 92%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFWithImageFormatRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFWithImageFormatRequest.java
index c2e8d2658..3b1393987 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFWithImageFormatRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFWithImageFormatRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api;
+package stirling.software.spdf.model.api;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFWithPageNums.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFWithPageNums.java
similarity index 96%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFWithPageNums.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFWithPageNums.java
index 3720bad65..788d09c8d 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFWithPageNums.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFWithPageNums.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api;
+package stirling.software.spdf.model.api;
import java.util.List;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFWithPageSize.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFWithPageSize.java
similarity index 93%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFWithPageSize.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFWithPageSize.java
index 83501fb35..5eb5dd030 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/PDFWithPageSize.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/PDFWithPageSize.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api;
+package stirling.software.spdf.model.api;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/spdf/model/api/SplitPdfByChaptersRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/SplitPdfByChaptersRequest.java
new file mode 100644
index 000000000..84a2acd5f
--- /dev/null
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/SplitPdfByChaptersRequest.java
@@ -0,0 +1,20 @@
+package stirling.software.spdf.model.api;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import stirling.software.common.model.api.PDFFile;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SplitPdfByChaptersRequest extends PDFFile {
+ @Schema(description = "Whether to include Metadata or not", example = "true")
+ private Boolean includeMetadata;
+
+ @Schema(description = "Whether to allow duplicates or not", example = "true")
+ private Boolean allowDuplicates;
+
+ @Schema(description = "Maximum bookmark level required", example = "2")
+ private Integer bookmarkLevel;
+}
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/SplitPdfBySectionsRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/SplitPdfBySectionsRequest.java
similarity index 95%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/SplitPdfBySectionsRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/SplitPdfBySectionsRequest.java
index 3a89ab686..8722e5946 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/SplitPdfBySectionsRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/SplitPdfBySectionsRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api;
+package stirling.software.spdf.model.api;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/ConvertPDFToMarkdown.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/ConvertPDFToMarkdown.java
similarity index 95%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/ConvertPDFToMarkdown.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/ConvertPDFToMarkdown.java
index fbbd4723a..cfbd93d52 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/ConvertPDFToMarkdown.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/ConvertPDFToMarkdown.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.converters;
+package stirling.software.spdf.model.api.converters;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ModelAttribute;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/ConvertToImageRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/ConvertToImageRequest.java
similarity index 96%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/ConvertToImageRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/ConvertToImageRequest.java
index e32bb736c..fff8e100a 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/ConvertToImageRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/ConvertToImageRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.converters;
+package stirling.software.spdf.model.api.converters;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/ConvertToPdfRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/ConvertToPdfRequest.java
similarity index 95%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/ConvertToPdfRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/ConvertToPdfRequest.java
index c3b059fe0..168b9e88c 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/ConvertToPdfRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/ConvertToPdfRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.converters;
+package stirling.software.spdf.model.api.converters;
import org.springframework.web.multipart.MultipartFile;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/PdfToBookRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/PdfToBookRequest.java
similarity index 91%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/PdfToBookRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/PdfToBookRequest.java
index 474981e76..c38fdddf4 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/PdfToBookRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/PdfToBookRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.converters;
+package stirling.software.spdf.model.api.converters;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/PdfToPdfARequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/PdfToPdfARequest.java
similarity index 89%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/PdfToPdfARequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/PdfToPdfARequest.java
index 0553988ca..15eabcacf 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/PdfToPdfARequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/PdfToPdfARequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.converters;
+package stirling.software.spdf.model.api.converters;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/PdfToPresentationRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/PdfToPresentationRequest.java
similarity index 90%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/PdfToPresentationRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/PdfToPresentationRequest.java
index 8a5b3d376..509aef51c 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/PdfToPresentationRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/PdfToPresentationRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.converters;
+package stirling.software.spdf.model.api.converters;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/PdfToTextOrRTFRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/PdfToTextOrRTFRequest.java
similarity index 89%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/PdfToTextOrRTFRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/PdfToTextOrRTFRequest.java
index bad03d97a..bb9d206f4 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/PdfToTextOrRTFRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/PdfToTextOrRTFRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.converters;
+package stirling.software.spdf.model.api.converters;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/PdfToWordRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/PdfToWordRequest.java
similarity index 89%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/PdfToWordRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/PdfToWordRequest.java
index e28bb9be8..293d188e6 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/PdfToWordRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/PdfToWordRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.converters;
+package stirling.software.spdf.model.api.converters;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/UrlToPdfRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/UrlToPdfRequest.java
similarity index 86%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/UrlToPdfRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/UrlToPdfRequest.java
index 954045f01..45a246aa5 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/converters/UrlToPdfRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/converters/UrlToPdfRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.converters;
+package stirling.software.spdf.model.api.converters;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/spdf/model/api/filter/ContainsTextRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/filter/ContainsTextRequest.java
new file mode 100644
index 000000000..2d4ccdb83
--- /dev/null
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/filter/ContainsTextRequest.java
@@ -0,0 +1,16 @@
+package stirling.software.spdf.model.api.filter;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import stirling.software.spdf.model.api.PDFWithPageNums;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ContainsTextRequest extends PDFWithPageNums {
+
+ @Schema(description = "The text to check for", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String text;
+}
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/filter/FileSizeRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/filter/FileSizeRequest.java
similarity index 78%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/filter/FileSizeRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/filter/FileSizeRequest.java
index a3c57077d..207cb3592 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/filter/FileSizeRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/filter/FileSizeRequest.java
@@ -1,11 +1,11 @@
-package stirling.software.SPDF.model.api.filter;
+package stirling.software.spdf.model.api.filter;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import stirling.software.SPDF.model.api.PDFComparison;
+import stirling.software.spdf.model.api.PDFComparison;
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/filter/PageRotationRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/filter/PageRotationRequest.java
similarity index 78%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/filter/PageRotationRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/filter/PageRotationRequest.java
index 05fd10c31..61554ba34 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/filter/PageRotationRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/filter/PageRotationRequest.java
@@ -1,11 +1,11 @@
-package stirling.software.SPDF.model.api.filter;
+package stirling.software.spdf.model.api.filter;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import stirling.software.SPDF.model.api.PDFComparison;
+import stirling.software.spdf.model.api.PDFComparison;
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/filter/PageSizeRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/filter/PageSizeRequest.java
similarity index 82%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/filter/PageSizeRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/filter/PageSizeRequest.java
index 2fa74f040..6e5d319d3 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/filter/PageSizeRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/filter/PageSizeRequest.java
@@ -1,11 +1,11 @@
-package stirling.software.SPDF.model.api.filter;
+package stirling.software.spdf.model.api.filter;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import stirling.software.SPDF.model.api.PDFComparison;
+import stirling.software.spdf.model.api.PDFComparison;
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/CropPdfForm.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/CropPdfForm.java
similarity index 93%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/CropPdfForm.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/CropPdfForm.java
index 913f94a10..9fd1751ed 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/CropPdfForm.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/CropPdfForm.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.general;
+package stirling.software.spdf.model.api.general;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/MergeMultiplePagesRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/MergeMultiplePagesRequest.java
similarity index 93%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/MergeMultiplePagesRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/MergeMultiplePagesRequest.java
index 6d9254023..33854e061 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/MergeMultiplePagesRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/MergeMultiplePagesRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.general;
+package stirling.software.spdf.model.api.general;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/MergePdfsRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/MergePdfsRequest.java
similarity index 91%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/MergePdfsRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/MergePdfsRequest.java
index 0ed4fcfa7..b01421926 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/MergePdfsRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/MergePdfsRequest.java
@@ -1,11 +1,11 @@
-package stirling.software.SPDF.model.api.general;
+package stirling.software.spdf.model.api.general;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import stirling.software.SPDF.model.api.MultiplePDFFiles;
+import stirling.software.spdf.model.api.MultiplePDFFiles;
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/OverlayPdfsRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/OverlayPdfsRequest.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/OverlayPdfsRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/OverlayPdfsRequest.java
index f89ba320f..3518d1b99 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/OverlayPdfsRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/OverlayPdfsRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.general;
+package stirling.software.spdf.model.api.general;
import org.springframework.web.multipart.MultipartFile;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/RearrangePagesRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/RearrangePagesRequest.java
similarity index 90%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/RearrangePagesRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/RearrangePagesRequest.java
index 050dc1eba..1dcde2e56 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/RearrangePagesRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/RearrangePagesRequest.java
@@ -1,12 +1,12 @@
-package stirling.software.SPDF.model.api.general;
+package stirling.software.spdf.model.api.general;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import stirling.software.SPDF.model.SortTypes;
-import stirling.software.SPDF.model.api.PDFWithPageNums;
+import stirling.software.spdf.model.SortTypes;
+import stirling.software.spdf.model.api.PDFWithPageNums;
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/RotatePDFRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/RotatePDFRequest.java
similarity index 91%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/RotatePDFRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/RotatePDFRequest.java
index aebc2b399..4c3c977e7 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/RotatePDFRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/RotatePDFRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.general;
+package stirling.software.spdf.model.api.general;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/ScalePagesRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/ScalePagesRequest.java
similarity index 83%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/ScalePagesRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/ScalePagesRequest.java
index 653697f4e..688a01a92 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/ScalePagesRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/ScalePagesRequest.java
@@ -1,11 +1,11 @@
-package stirling.software.SPDF.model.api.general;
+package stirling.software.spdf.model.api.general;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import stirling.software.SPDF.model.api.PDFWithPageSize;
+import stirling.software.spdf.model.api.PDFWithPageSize;
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/SplitPdfBySizeOrCountRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/SplitPdfBySizeOrCountRequest.java
similarity index 94%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/SplitPdfBySizeOrCountRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/SplitPdfBySizeOrCountRequest.java
index 0dd599781..f68933044 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/general/SplitPdfBySizeOrCountRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/general/SplitPdfBySizeOrCountRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.general;
+package stirling.software.spdf.model.api.general;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/AddPageNumbersRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/AddPageNumbersRequest.java
similarity index 95%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/AddPageNumbersRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/AddPageNumbersRequest.java
index 5f0f71695..a1efdc643 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/AddPageNumbersRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/AddPageNumbersRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.misc;
+package stirling.software.spdf.model.api.misc;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema.RequiredMode;
@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema.RequiredMode;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import stirling.software.SPDF.model.api.PDFWithPageNums;
+import stirling.software.spdf.model.api.PDFWithPageNums;
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/AddStampRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/AddStampRequest.java
similarity index 96%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/AddStampRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/AddStampRequest.java
index 48d470a5a..ea6f85283 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/AddStampRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/AddStampRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.misc;
+package stirling.software.spdf.model.api.misc;
import org.springframework.web.multipart.MultipartFile;
@@ -7,7 +7,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import stirling.software.SPDF.model.api.PDFWithPageNums;
+import stirling.software.spdf.model.api.PDFWithPageNums;
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/AutoSplitPdfRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/AutoSplitPdfRequest.java
similarity index 92%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/AutoSplitPdfRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/AutoSplitPdfRequest.java
index 0ba3ad8bd..6fe0e4117 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/AutoSplitPdfRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/AutoSplitPdfRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.misc;
+package stirling.software.spdf.model.api.misc;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/ExtractHeaderRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/ExtractHeaderRequest.java
similarity index 92%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/ExtractHeaderRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/ExtractHeaderRequest.java
index cbb51a390..616e25517 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/ExtractHeaderRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/ExtractHeaderRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.misc;
+package stirling.software.spdf.model.api.misc;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/ExtractImageScansRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/ExtractImageScansRequest.java
similarity index 96%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/ExtractImageScansRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/ExtractImageScansRequest.java
index 6345d4489..342418c78 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/ExtractImageScansRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/ExtractImageScansRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.misc;
+package stirling.software.spdf.model.api.misc;
import org.springframework.web.multipart.MultipartFile;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/FlattenRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/FlattenRequest.java
similarity index 92%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/FlattenRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/FlattenRequest.java
index cf4e7c575..82a0eca1f 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/FlattenRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/FlattenRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.misc;
+package stirling.software.spdf.model.api.misc;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/MetadataRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/MetadataRequest.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/MetadataRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/MetadataRequest.java
index 63b267196..a6b07a3e6 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/MetadataRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/MetadataRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.misc;
+package stirling.software.spdf.model.api.misc;
import java.util.Map;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/OptimizePdfRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/OptimizePdfRequest.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/OptimizePdfRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/OptimizePdfRequest.java
index eafeeceaa..801447f3b 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/OptimizePdfRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/OptimizePdfRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.misc;
+package stirling.software.spdf.model.api.misc;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/OverlayImageRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/OverlayImageRequest.java
similarity index 96%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/OverlayImageRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/OverlayImageRequest.java
index 759daa991..d229ef51c 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/OverlayImageRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/OverlayImageRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.misc;
+package stirling.software.spdf.model.api.misc;
import org.springframework.web.multipart.MultipartFile;
diff --git a/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/PrintFileRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/PrintFileRequest.java
new file mode 100644
index 000000000..f111225ef
--- /dev/null
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/PrintFileRequest.java
@@ -0,0 +1,17 @@
+package stirling.software.spdf.model.api.misc;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import stirling.software.common.model.api.PDFFile;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class PrintFileRequest extends PDFFile {
+
+ @Schema(
+ description = "Name of printer to match against",
+ requiredMode = Schema.RequiredMode.REQUIRED)
+ private String printerName;
+}
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/ProcessPdfWithOcrRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/ProcessPdfWithOcrRequest.java
similarity index 95%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/ProcessPdfWithOcrRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/ProcessPdfWithOcrRequest.java
index 00279eb96..cf639fb1e 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/ProcessPdfWithOcrRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/ProcessPdfWithOcrRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.misc;
+package stirling.software.spdf.model.api.misc;
import java.util.List;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/RemoveBlankPagesRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/RemoveBlankPagesRequest.java
similarity index 94%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/RemoveBlankPagesRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/RemoveBlankPagesRequest.java
index cef00dcc0..a6c240e51 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/RemoveBlankPagesRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/RemoveBlankPagesRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.misc;
+package stirling.software.spdf.model.api.misc;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/ReplaceAndInvertColorRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/ReplaceAndInvertColorRequest.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/ReplaceAndInvertColorRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/ReplaceAndInvertColorRequest.java
index 50ef14b1e..7c825bba2 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/misc/ReplaceAndInvertColorRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/misc/ReplaceAndInvertColorRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.misc;
+package stirling.software.spdf.model.api.misc;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/AddPasswordRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/AddPasswordRequest.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/AddPasswordRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/AddPasswordRequest.java
index 666318a49..0ee39294e 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/AddPasswordRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/AddPasswordRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.security;
+package stirling.software.spdf.model.api.security;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/AddWatermarkRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/AddWatermarkRequest.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/AddWatermarkRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/AddWatermarkRequest.java
index 00408c55e..c77396583 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/AddWatermarkRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/AddWatermarkRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.security;
+package stirling.software.spdf.model.api.security;
import org.springframework.web.multipart.MultipartFile;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/ManualRedactPdfRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/ManualRedactPdfRequest.java
similarity index 89%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/ManualRedactPdfRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/ManualRedactPdfRequest.java
index 48cb5bc67..7875977e4 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/ManualRedactPdfRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/ManualRedactPdfRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.security;
+package stirling.software.spdf.model.api.security;
import java.util.List;
@@ -7,7 +7,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import stirling.software.SPDF.model.api.PDFWithPageNums;
+import stirling.software.spdf.model.api.PDFWithPageNums;
import stirling.software.common.model.api.security.RedactionArea;
@Data
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/PDFPasswordRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/PDFPasswordRequest.java
similarity index 89%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/PDFPasswordRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/PDFPasswordRequest.java
index cea62b079..4141775a0 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/PDFPasswordRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/PDFPasswordRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.security;
+package stirling.software.spdf.model.api.security;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/RedactPdfRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/RedactPdfRequest.java
new file mode 100644
index 000000000..54edfd75f
--- /dev/null
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/RedactPdfRequest.java
@@ -0,0 +1,33 @@
+package stirling.software.spdf.model.api.security;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import stirling.software.common.model.api.PDFFile;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class RedactPdfRequest extends PDFFile {
+
+ @Schema(
+ description = "List of text to redact from the PDF",
+ type = "string",
+ requiredMode = Schema.RequiredMode.REQUIRED)
+ private String listOfText;
+
+ @Schema(description = "Whether to use regex for the listOfText", defaultValue = "false")
+ private boolean useRegex;
+
+ @Schema(description = "Whether to use whole word search", defaultValue = "false")
+ private boolean wholeWordSearch;
+
+ @Schema(description = "Hexadecimal color code for redaction, e.g. #FF0000 or 000000", defaultValue = "#000000")
+ private String redactColor = "#000000";
+
+ @Schema(description = "Custom padding for redaction", type = "number")
+ private float customPadding;
+
+ @Schema(description = "Convert the redacted PDF to an image", defaultValue = "false")
+ private boolean convertPDFToImage;
+}
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/SanitizePdfRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/SanitizePdfRequest.java
similarity index 96%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/SanitizePdfRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/SanitizePdfRequest.java
index 736fbb20d..e87356e71 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/SanitizePdfRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/SanitizePdfRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.security;
+package stirling.software.spdf.model.api.security;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/SignPDFWithCertRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/SignPDFWithCertRequest.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/SignPDFWithCertRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/SignPDFWithCertRequest.java
index acb4b55fd..c6c28cdd1 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/SignPDFWithCertRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/SignPDFWithCertRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.security;
+package stirling.software.spdf.model.api.security;
import org.springframework.web.multipart.MultipartFile;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/SignatureValidationRequest.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/SignatureValidationRequest.java
similarity index 91%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/SignatureValidationRequest.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/SignatureValidationRequest.java
index dd301e0e1..db227875a 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/SignatureValidationRequest.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/SignatureValidationRequest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.security;
+package stirling.software.spdf.model.api.security;
import org.springframework.web.multipart.MultipartFile;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/SignatureValidationResult.java b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/SignatureValidationResult.java
similarity index 95%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/SignatureValidationResult.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/SignatureValidationResult.java
index b4c51f365..09ad273cf 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/model/api/security/SignatureValidationResult.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/model/api/security/SignatureValidationResult.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.model.api.security;
+package stirling.software.spdf.model.api.security;
import java.util.List;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/pdf/FlexibleCSVWriter.java b/stirling-pdf/src/main/java/stirling/software/spdf/pdf/FlexibleCSVWriter.java
similarity index 88%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/pdf/FlexibleCSVWriter.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/pdf/FlexibleCSVWriter.java
index 94a48d935..5ababf4e5 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/pdf/FlexibleCSVWriter.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/pdf/FlexibleCSVWriter.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.pdf;
+package stirling.software.spdf.pdf;
import org.apache.commons.csv.CSVFormat;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/pdf/TextFinder.java b/stirling-pdf/src/main/java/stirling/software/spdf/pdf/TextFinder.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/pdf/TextFinder.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/pdf/TextFinder.java
index 4119b3eac..f456beea8 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/pdf/TextFinder.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/pdf/TextFinder.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.pdf;
+package stirling.software.spdf.pdf;
import java.io.IOException;
import java.util.ArrayList;
@@ -12,7 +12,7 @@ import org.apache.pdfbox.text.TextPosition;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.PDFText;
+import stirling.software.spdf.model.PDFText;
@Slf4j
public class TextFinder extends PDFTextStripper {
diff --git a/stirling-pdf/src/main/java/stirling/software/spdf/service/ApiDocService.java b/stirling-pdf/src/main/java/stirling/software/spdf/service/ApiDocService.java
new file mode 100644
index 000000000..6bff39926
--- /dev/null
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/service/ApiDocService.java
@@ -0,0 +1,169 @@
+package stirling.software.spdf.service;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import jakarta.servlet.ServletContext;
+
+import lombok.extern.slf4j.Slf4j;
+
+import stirling.software.spdf.SPDFApplication;
+import stirling.software.spdf.model.ApiEndpoint;
+import stirling.software.common.model.enumeration.Role;
+import stirling.software.common.service.UserServiceInterface;
+
+@Service
+@Slf4j
+public class ApiDocService {
+
+ private final Map apiDocumentation = new HashMap<>();
+
+ private final ServletContext servletContext;
+ private final UserServiceInterface userService;
+ Map> outputToFileTypes = new HashMap<>();
+ JsonNode apiDocsJsonRootNode;
+
+ public ApiDocService(
+ ServletContext servletContext,
+ @Autowired(required = false) UserServiceInterface userService) {
+ this.servletContext = servletContext;
+ this.userService = userService;
+ }
+
+ private String getApiDocsUrl() {
+ String contextPath = servletContext.getContextPath();
+ String port = SPDFApplication.getStaticPort();
+ return "http://localhost:" + port + contextPath + "/v1/api-docs";
+ }
+
+ public List getExtensionTypes(boolean output, String operationName) {
+ if (outputToFileTypes.size() == 0) {
+ outputToFileTypes.put("PDF", Arrays.asList("pdf"));
+ outputToFileTypes.put(
+ "IMAGE",
+ Arrays.asList(
+ "png", "jpg", "jpeg", "gif", "webp", "bmp", "tif", "tiff", "svg", "psd",
+ "ai", "eps"));
+ outputToFileTypes.put(
+ "ZIP",
+ Arrays.asList("zip", "rar", "7z", "tar", "gz", "bz2", "xz", "lz", "lzma", "z"));
+ outputToFileTypes.put("WORD", Arrays.asList("doc", "docx", "odt", "rtf"));
+ outputToFileTypes.put("CSV", Arrays.asList("csv"));
+ outputToFileTypes.put("JS", Arrays.asList("js", "jsx"));
+ outputToFileTypes.put("HTML", Arrays.asList("html", "htm", "xhtml"));
+ outputToFileTypes.put("JSON", Arrays.asList("json"));
+ outputToFileTypes.put("TXT", Arrays.asList("txt", "text", "md", "markdown"));
+ outputToFileTypes.put("PPT", Arrays.asList("ppt", "pptx", "odp"));
+ outputToFileTypes.put("XML", Arrays.asList("xml", "xsd", "xsl"));
+ outputToFileTypes.put(
+ "BOOK", Arrays.asList("epub", "mobi", "azw3", "fb2", "txt", "docx"));
+ // type.
+ }
+ if (apiDocsJsonRootNode == null || apiDocumentation.size() == 0) {
+ loadApiDocumentation();
+ }
+ if (!apiDocumentation.containsKey(operationName)) {
+ return null;
+ }
+ ApiEndpoint endpoint = apiDocumentation.get(operationName);
+ String description = endpoint.getDescription();
+ Pattern pattern = null;
+ if (output) {
+ pattern = Pattern.compile("Output:(\\w+)");
+ } else {
+ pattern = Pattern.compile("Input:(\\w+)");
+ }
+ Matcher matcher = pattern.matcher(description);
+ while (matcher.find()) {
+ String type = matcher.group(1).toUpperCase();
+ if (outputToFileTypes.containsKey(type)) {
+ return outputToFileTypes.get(type);
+ }
+ }
+ return null;
+ }
+
+ private String getApiKeyForUser() {
+ if (userService == null) return "";
+ return userService.getApiKeyForUser(Role.INTERNAL_API_USER.getRoleId());
+ }
+
+ // @EventListener(ApplicationReadyEvent.class)
+ private synchronized void loadApiDocumentation() {
+ String apiDocsJson = "";
+ try {
+ HttpHeaders headers = new HttpHeaders();
+ String apiKey = getApiKeyForUser();
+ if (!apiKey.isEmpty()) {
+ headers.set("X-API-KEY", apiKey);
+ }
+ HttpEntity entity = new HttpEntity<>(headers);
+ RestTemplate restTemplate = new RestTemplate();
+ ResponseEntity response =
+ restTemplate.exchange(getApiDocsUrl(), HttpMethod.GET, entity, String.class);
+ apiDocsJson = response.getBody();
+ ObjectMapper mapper = new ObjectMapper();
+ apiDocsJsonRootNode = mapper.readTree(apiDocsJson);
+ JsonNode paths = apiDocsJsonRootNode.path("paths");
+ paths.fields()
+ .forEachRemaining(
+ entry -> {
+ String path = entry.getKey();
+ JsonNode pathNode = entry.getValue();
+ if (pathNode.has("post")) {
+ JsonNode postNode = pathNode.get("post");
+ ApiEndpoint endpoint = new ApiEndpoint(path, postNode);
+ apiDocumentation.put(path, endpoint);
+ }
+ });
+ } catch (Exception e) {
+ // Handle exceptions
+ log.error("Error grabbing swagger doc, body result {}", apiDocsJson);
+ }
+ }
+
+ public boolean isValidOperation(String operationName, Map parameters) {
+ if (apiDocumentation.size() == 0) {
+ loadApiDocumentation();
+ }
+ if (!apiDocumentation.containsKey(operationName)) {
+ return false;
+ }
+ ApiEndpoint endpoint = apiDocumentation.get(operationName);
+ return endpoint.areParametersValid(parameters);
+ }
+
+ public boolean isMultiInput(String operationName) {
+ if (apiDocsJsonRootNode == null || apiDocumentation.size() == 0) {
+ loadApiDocumentation();
+ }
+ if (!apiDocumentation.containsKey(operationName)) {
+ return false;
+ }
+ ApiEndpoint endpoint = apiDocumentation.get(operationName);
+ String description = endpoint.getDescription();
+ Pattern pattern = Pattern.compile("Type:(\\w+)");
+ Matcher matcher = pattern.matcher(description);
+ if (matcher.find()) {
+ String type = matcher.group(1);
+ return type.startsWith("MI");
+ }
+ return false;
+ }
+}
+// Model class for API Endpoint
diff --git a/stirling-pdf/src/main/java/stirling/software/spdf/service/CertificateValidationService.java b/stirling-pdf/src/main/java/stirling/software/spdf/service/CertificateValidationService.java
new file mode 100644
index 000000000..e7d744abd
--- /dev/null
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/service/CertificateValidationService.java
@@ -0,0 +1,143 @@
+package stirling.software.spdf.service;
+
+import java.io.*;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.cert.*;
+import java.util.*;
+
+import org.springframework.stereotype.Service;
+
+import io.github.pixee.security.BoundedLineReader;
+
+import jakarta.annotation.PostConstruct;
+
+@Service
+public class CertificateValidationService {
+ private KeyStore trustStore;
+
+ @PostConstruct
+ private void initializeTrustStore() throws Exception {
+ trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
+ trustStore.load(null, null);
+ loadMozillaCertificates();
+ }
+
+ private void loadMozillaCertificates() throws Exception {
+ try (InputStream is = getClass().getResourceAsStream("/certdata.txt")) {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(is));
+ String line;
+ StringBuilder certData = new StringBuilder();
+ boolean inCert = false;
+ int certCount = 0;
+
+ while ((line = BoundedLineReader.readLine(reader, 5_000_000)) != null) {
+ if (line.startsWith("CKA_VALUE MULTILINE_OCTAL")) {
+ inCert = true;
+ certData = new StringBuilder();
+ continue;
+ }
+ if (inCert) {
+ if ("END".equals(line)) {
+ inCert = false;
+ byte[] certBytes = parseOctalData(certData.toString());
+ if (certBytes != null) {
+ CertificateFactory cf = CertificateFactory.getInstance("X.509");
+ X509Certificate cert =
+ (X509Certificate)
+ cf.generateCertificate(
+ new ByteArrayInputStream(certBytes));
+ trustStore.setCertificateEntry("mozilla-cert-" + certCount++, cert);
+ }
+ } else {
+ certData.append(line).append("\n");
+ }
+ }
+ }
+ }
+ }
+
+ private byte[] parseOctalData(String data) {
+ try {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ String[] tokens = data.split("\\\\");
+ for (String token : tokens) {
+ token = token.trim();
+ if (!token.isEmpty()) {
+ baos.write(Integer.parseInt(token, 8));
+ }
+ }
+ return baos.toByteArray();
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ public boolean validateCertificateChain(X509Certificate cert) {
+ try {
+ CertPathValidator validator = CertPathValidator.getInstance("PKIX");
+ CertificateFactory cf = CertificateFactory.getInstance("X.509");
+ List certList = Arrays.asList(cert);
+ CertPath certPath = cf.generateCertPath(certList);
+
+ Set anchors = new HashSet<>();
+ Enumeration aliases = trustStore.aliases();
+ while (aliases.hasMoreElements()) {
+ Object trustCert = trustStore.getCertificate(aliases.nextElement());
+ if (trustCert instanceof X509Certificate x509Cert) {
+ anchors.add(new TrustAnchor(x509Cert, null));
+ }
+ }
+
+ PKIXParameters params = new PKIXParameters(anchors);
+ params.setRevocationEnabled(false);
+ validator.validate(certPath, params);
+ return true;
+ } catch (Exception e) {
+ return false;
+ }
+ }
+
+ public boolean validateTrustStore(X509Certificate cert) {
+ try {
+ Enumeration aliases = trustStore.aliases();
+ while (aliases.hasMoreElements()) {
+ Object trustCert = trustStore.getCertificate(aliases.nextElement());
+ if (trustCert instanceof X509Certificate && cert.equals(trustCert)) {
+ return true;
+ }
+ }
+ return false;
+ } catch (KeyStoreException e) {
+ return false;
+ }
+ }
+
+ public boolean isRevoked(X509Certificate cert) {
+ try {
+ cert.checkValidity();
+ return false;
+ } catch (CertificateExpiredException | CertificateNotYetValidException e) {
+ return true;
+ }
+ }
+
+ public boolean validateCertificateChainWithCustomCert(
+ X509Certificate cert, X509Certificate customCert) {
+ try {
+ cert.verify(customCert.getPublicKey());
+ return true;
+ } catch (Exception e) {
+ return false;
+ }
+ }
+
+ public boolean validateTrustWithCustomCert(X509Certificate cert, X509Certificate customCert) {
+ try {
+ // Compare the issuer of the signature certificate with the custom certificate
+ return cert.getIssuerX500Principal().equals(customCert.getSubjectX500Principal());
+ } catch (Exception e) {
+ return false;
+ }
+ }
+}
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/service/LanguageService.java b/stirling-pdf/src/main/java/stirling/software/spdf/service/LanguageService.java
similarity index 98%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/service/LanguageService.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/service/LanguageService.java
index fb5553879..980d55bb0 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/service/LanguageService.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/service/LanguageService.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.service;
+package stirling.software.spdf.service;
import java.io.IOException;
import java.util.Arrays;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/service/MetricsAggregatorService.java b/stirling-pdf/src/main/java/stirling/software/spdf/service/MetricsAggregatorService.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/service/MetricsAggregatorService.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/service/MetricsAggregatorService.java
index 8cc0a243f..7606ee395 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/service/MetricsAggregatorService.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/service/MetricsAggregatorService.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.service;
+package stirling.software.spdf.service;
import java.util.HashMap;
import java.util.Map;
@@ -14,7 +14,7 @@ import io.micrometer.core.instrument.search.Search;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.config.EndpointInspector;
+import stirling.software.spdf.config.EndpointInspector;
@Service
@RequiredArgsConstructor
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/service/PdfImageRemovalService.java b/stirling-pdf/src/main/java/stirling/software/spdf/service/PdfImageRemovalService.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/service/PdfImageRemovalService.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/service/PdfImageRemovalService.java
index 029d0924c..514bb3a25 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/service/PdfImageRemovalService.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/service/PdfImageRemovalService.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.service;
+package stirling.software.spdf.service;
import java.io.IOException;
import java.util.ArrayList;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/service/PostHogService.java b/stirling-pdf/src/main/java/stirling/software/spdf/service/PostHogService.java
similarity index 99%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/service/PostHogService.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/service/PostHogService.java
index bfe2726c2..9811c1477 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/service/PostHogService.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/service/PostHogService.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.service;
+package stirling.software.spdf.service;
import java.io.File;
import java.lang.management.GarbageCollectorMXBean;
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/service/SignatureService.java b/stirling-pdf/src/main/java/stirling/software/spdf/service/SignatureService.java
similarity index 97%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/service/SignatureService.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/service/SignatureService.java
index 1d25f409f..7a28dc0a9 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/service/SignatureService.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/service/SignatureService.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.service;
+package stirling.software.spdf.service;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -13,7 +13,7 @@ import org.thymeleaf.util.StringUtils;
import lombok.extern.slf4j.Slf4j;
-import stirling.software.SPDF.model.SignatureFile;
+import stirling.software.spdf.model.SignatureFile;
import stirling.software.common.configuration.InstallationPathConfig;
@Service
diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/service/misc/ReplaceAndInvertColorService.java b/stirling-pdf/src/main/java/stirling/software/spdf/service/misc/ReplaceAndInvertColorService.java
similarity index 92%
rename from stirling-pdf/src/main/java/stirling/software/SPDF/service/misc/ReplaceAndInvertColorService.java
rename to stirling-pdf/src/main/java/stirling/software/spdf/service/misc/ReplaceAndInvertColorService.java
index dc61a1e1d..85554d258 100644
--- a/stirling-pdf/src/main/java/stirling/software/SPDF/service/misc/ReplaceAndInvertColorService.java
+++ b/stirling-pdf/src/main/java/stirling/software/spdf/service/misc/ReplaceAndInvertColorService.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.service.misc;
+package stirling.software.spdf.service.misc;
import java.io.IOException;
@@ -8,7 +8,7 @@ import org.springframework.web.multipart.MultipartFile;
import lombok.RequiredArgsConstructor;
-import stirling.software.SPDF.Factories.ReplaceAndInvertColorFactory;
+import stirling.software.spdf.Factories.ReplaceAndInvertColorFactory;
import stirling.software.common.model.api.misc.HighContrastColorCombination;
import stirling.software.common.model.api.misc.ReplaceAndInvert;
import stirling.software.common.util.misc.ReplaceAndInvertColorStrategy;
diff --git a/stirling-pdf/src/main/resources/logback.xml b/stirling-pdf/src/main/resources/logback.xml
index 369c3a941..e844e1f86 100644
--- a/stirling-pdf/src/main/resources/logback.xml
+++ b/stirling-pdf/src/main/resources/logback.xml
@@ -1,6 +1,6 @@
-
+
@@ -40,9 +40,9 @@
-
-
\ No newline at end of file
+
diff --git a/stirling-pdf/src/test/java/stirling/software/SPDF/SPDFApplicationTest.java b/stirling-pdf/src/test/java/stirling/software/spdf/SPDFApplicationTest.java
similarity index 97%
rename from stirling-pdf/src/test/java/stirling/software/SPDF/SPDFApplicationTest.java
rename to stirling-pdf/src/test/java/stirling/software/spdf/SPDFApplicationTest.java
index 087475c85..485ed74bc 100644
--- a/stirling-pdf/src/test/java/stirling/software/SPDF/SPDFApplicationTest.java
+++ b/stirling-pdf/src/test/java/stirling/software/spdf/SPDFApplicationTest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF;
+package stirling.software.spdf;
import static org.junit.jupiter.api.Assertions.assertEquals;
diff --git a/stirling-pdf/src/test/java/stirling/software/SPDF/controller/api/EmailControllerTest.java b/stirling-pdf/src/test/java/stirling/software/spdf/controller/api/EmailControllerTest.java
similarity index 100%
rename from stirling-pdf/src/test/java/stirling/software/SPDF/controller/api/EmailControllerTest.java
rename to stirling-pdf/src/test/java/stirling/software/spdf/controller/api/EmailControllerTest.java
diff --git a/stirling-pdf/src/test/java/stirling/software/SPDF/controller/api/RearrangePagesPDFControllerTest.java b/stirling-pdf/src/test/java/stirling/software/spdf/controller/api/RearrangePagesPDFControllerTest.java
similarity index 98%
rename from stirling-pdf/src/test/java/stirling/software/SPDF/controller/api/RearrangePagesPDFControllerTest.java
rename to stirling-pdf/src/test/java/stirling/software/spdf/controller/api/RearrangePagesPDFControllerTest.java
index fcc0a7f0b..2727aa958 100644
--- a/stirling-pdf/src/test/java/stirling/software/SPDF/controller/api/RearrangePagesPDFControllerTest.java
+++ b/stirling-pdf/src/test/java/stirling/software/spdf/controller/api/RearrangePagesPDFControllerTest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
diff --git a/stirling-pdf/src/test/java/stirling/software/SPDF/controller/api/RotationControllerTest.java b/stirling-pdf/src/test/java/stirling/software/spdf/controller/api/RotationControllerTest.java
similarity index 96%
rename from stirling-pdf/src/test/java/stirling/software/SPDF/controller/api/RotationControllerTest.java
rename to stirling-pdf/src/test/java/stirling/software/spdf/controller/api/RotationControllerTest.java
index 13d76b262..b1d7cfef1 100644
--- a/stirling-pdf/src/test/java/stirling/software/SPDF/controller/api/RotationControllerTest.java
+++ b/stirling-pdf/src/test/java/stirling/software/spdf/controller/api/RotationControllerTest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api;
+package stirling.software.spdf.controller.api;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -20,7 +20,7 @@ import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.http.ResponseEntity;
import org.springframework.mock.web.MockMultipartFile;
-import stirling.software.SPDF.model.api.general.RotatePDFRequest;
+import stirling.software.spdf.model.api.general.RotatePDFRequest;
import stirling.software.common.service.CustomPDFDocumentFactory;
@ExtendWith(MockitoExtension.class)
diff --git a/stirling-pdf/src/test/java/stirling/software/SPDF/controller/api/converters/ConvertWebsiteToPdfTest.java b/stirling-pdf/src/test/java/stirling/software/spdf/controller/api/converters/ConvertWebsiteToPdfTest.java
similarity index 95%
rename from stirling-pdf/src/test/java/stirling/software/SPDF/controller/api/converters/ConvertWebsiteToPdfTest.java
rename to stirling-pdf/src/test/java/stirling/software/spdf/controller/api/converters/ConvertWebsiteToPdfTest.java
index b5d65ba79..0b11cdc5f 100644
--- a/stirling-pdf/src/test/java/stirling/software/SPDF/controller/api/converters/ConvertWebsiteToPdfTest.java
+++ b/stirling-pdf/src/test/java/stirling/software/spdf/controller/api/converters/ConvertWebsiteToPdfTest.java
@@ -1,4 +1,4 @@
-package stirling.software.SPDF.controller.api.converters;
+package stirling.software.spdf.controller.api.converters;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -8,7 +8,7 @@ import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import stirling.software.SPDF.model.api.converters.UrlToPdfRequest;
+import stirling.software.spdf.model.api.converters.UrlToPdfRequest;
import stirling.software.common.configuration.RuntimePathConfig;
import stirling.software.common.model.ApplicationProperties;
import stirling.software.common.service.CustomPDFDocumentFactory;