mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-06-23 16:05:09 +00:00
Compare commits
10 Commits
85e92c65bc
...
73dbc09187
Author | SHA1 | Date | |
---|---|---|---|
![]() |
73dbc09187 | ||
![]() |
24ccde0ca0 | ||
![]() |
fc63a90620 | ||
![]() |
6a17bc0cd3 | ||
![]() |
d2c5d28473 | ||
![]() |
9c7ae0be5f | ||
![]() |
1401d7011f | ||
![]() |
e48f0fc526 | ||
![]() |
e2685aa93f | ||
![]() |
5d1d8138dc |
@ -180,7 +180,7 @@ jobs:
|
|||||||
password: ${{ secrets.DOCKER_HUB_API }}
|
password: ${{ secrets.DOCKER_HUB_API }}
|
||||||
|
|
||||||
- name: Build and push PR-specific image
|
- name: Build and push PR-specific image
|
||||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
|
uses: docker/build-push-action@1dc73863535b631f98b2378be8619f83b136f4a0 # v6.17.0
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
file: ./Dockerfile
|
file: ./Dockerfile
|
||||||
|
3
.github/workflows/build.yml
vendored
3
.github/workflows/build.yml
vendored
@ -56,9 +56,6 @@ jobs:
|
|||||||
build/reports/tests/
|
build/reports/tests/
|
||||||
build/test-results/
|
build/test-results/
|
||||||
build/reports/problems/
|
build/reports/problems/
|
||||||
/common/build/reports/tests/
|
|
||||||
/common/build/test-results/
|
|
||||||
/common/build/reports/problems/
|
|
||||||
retention-days: 3
|
retention-days: 3
|
||||||
|
|
||||||
check-licence:
|
check-licence:
|
||||||
|
6
.github/workflows/push-docker.yml
vendored
6
.github/workflows/push-docker.yml
vendored
@ -90,7 +90,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Build and push main Dockerfile
|
- name: Build and push main Dockerfile
|
||||||
id: build-push-regular
|
id: build-push-regular
|
||||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
|
uses: docker/build-push-action@1dc73863535b631f98b2378be8619f83b136f4a0 # v6.17.0
|
||||||
with:
|
with:
|
||||||
builder: ${{ steps.buildx.outputs.name }}
|
builder: ${{ steps.buildx.outputs.name }}
|
||||||
context: .
|
context: .
|
||||||
@ -135,7 +135,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Build and push Dockerfile-ultra-lite
|
- name: Build and push Dockerfile-ultra-lite
|
||||||
id: build-push-lite
|
id: build-push-lite
|
||||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
|
uses: docker/build-push-action@1dc73863535b631f98b2378be8619f83b136f4a0 # v6.17.0
|
||||||
if: github.ref != 'refs/heads/main'
|
if: github.ref != 'refs/heads/main'
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
@ -166,7 +166,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Build and push main Dockerfile fat
|
- name: Build and push main Dockerfile fat
|
||||||
id: build-push-fat
|
id: build-push-fat
|
||||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
|
uses: docker/build-push-action@1dc73863535b631f98b2378be8619f83b136f4a0 # v6.17.0
|
||||||
if: github.ref != 'refs/heads/main'
|
if: github.ref != 'refs/heads/main'
|
||||||
with:
|
with:
|
||||||
builder: ${{ steps.buildx.outputs.name }}
|
builder: ${{ steps.buildx.outputs.name }}
|
||||||
|
2
.github/workflows/scorecards.yml
vendored
2
.github/workflows/scorecards.yml
vendored
@ -44,7 +44,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
- name: "Run analysis"
|
- name: "Run analysis"
|
||||||
uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2
|
uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
|
||||||
with:
|
with:
|
||||||
results_file: results.sarif
|
results_file: results.sarif
|
||||||
results_format: sarif
|
results_format: sarif
|
||||||
|
2
.github/workflows/testdriver.yml
vendored
2
.github/workflows/testdriver.yml
vendored
@ -46,7 +46,7 @@ jobs:
|
|||||||
password: ${{ secrets.DOCKER_HUB_API }}
|
password: ${{ secrets.DOCKER_HUB_API }}
|
||||||
|
|
||||||
- name: Build and push test image
|
- name: Build and push test image
|
||||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
|
uses: docker/build-push-action@1dc73863535b631f98b2378be8619f83b136f4a0 # v6.17.0
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
file: ./Dockerfile
|
file: ./Dockerfile
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -13,7 +13,6 @@ local.properties
|
|||||||
.recommenders
|
.recommenders
|
||||||
.classpath
|
.classpath
|
||||||
.project
|
.project
|
||||||
*.local.json
|
|
||||||
version.properties
|
version.properties
|
||||||
|
|
||||||
#### Stirling-PDF Files ###
|
#### Stirling-PDF Files ###
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Main stage
|
# Main stage
|
||||||
FROM alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be023728e11715
|
FROM alpine:3.21.3@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c
|
||||||
|
|
||||||
# Copy necessary files
|
# Copy necessary files
|
||||||
COPY scripts /scripts
|
COPY scripts /scripts
|
||||||
|
@ -21,7 +21,7 @@ RUN ADDITIONAL_FEATURES_OFF=false \
|
|||||||
./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
||||||
|
|
||||||
# Main stage
|
# Main stage
|
||||||
FROM alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be023728e11715
|
FROM alpine:3.21.3@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c
|
||||||
|
|
||||||
# Copy necessary files
|
# Copy necessary files
|
||||||
COPY scripts /scripts
|
COPY scripts /scripts
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# use alpine
|
# use alpine
|
||||||
FROM alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be023728e11715
|
FROM alpine:3.21.3@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c
|
||||||
|
|
||||||
ARG VERSION_TAG
|
ARG VERSION_TAG
|
||||||
|
|
||||||
|
7
LICENSE
7
LICENSE
@ -9,13 +9,6 @@ if that directory exists, is licensed under the license defined in "proprietary/
|
|||||||
* Content outside of the above mentioned directories or restrictions above is
|
* Content outside of the above mentioned directories or restrictions above is
|
||||||
available under the MIT License as defined below.
|
available under the MIT License as defined below.
|
||||||
|
|
||||||
Portions of this software are licensed as follows:
|
|
||||||
|
|
||||||
* All content that resides under the "proprietary/" directory of this repository,
|
|
||||||
if that directory exists, is licensed under the license defined in "proprietary/LICENSE".
|
|
||||||
* Content outside of the above mentioned directories or restrictions above is
|
|
||||||
available under the MIT License as defined below.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
in the Software without restriction, including without limitation the rights
|
in the Software without restriction, including without limitation the rights
|
||||||
|
76
README.md
76
README.md
@ -116,47 +116,47 @@ Stirling-PDF currently supports 40 languages!
|
|||||||
|
|
||||||
| Language | Progress |
|
| Language | Progress |
|
||||||
| -------------------------------------------- | -------------------------------------- |
|
| -------------------------------------------- | -------------------------------------- |
|
||||||
| Arabic (العربية) (ar_AR) |  |
|
| Arabic (العربية) (ar_AR) |  |
|
||||||
| Azerbaijani (Azərbaycan Dili) (az_AZ) |  |
|
| Azerbaijani (Azərbaycan Dili) (az_AZ) |  |
|
||||||
| Basque (Euskara) (eu_ES) |  |
|
| Basque (Euskara) (eu_ES) |  |
|
||||||
| Bulgarian (Български) (bg_BG) |  |
|
| Bulgarian (Български) (bg_BG) |  |
|
||||||
| Catalan (Català) (ca_CA) |  |
|
| Catalan (Català) (ca_CA) |  |
|
||||||
| Croatian (Hrvatski) (hr_HR) |  |
|
| Croatian (Hrvatski) (hr_HR) |  |
|
||||||
| Czech (Česky) (cs_CZ) |  |
|
| Czech (Česky) (cs_CZ) |  |
|
||||||
| Danish (Dansk) (da_DK) |  |
|
| Danish (Dansk) (da_DK) |  |
|
||||||
| Dutch (Nederlands) (nl_NL) |  |
|
| Dutch (Nederlands) (nl_NL) |  |
|
||||||
| English (English) (en_GB) |  |
|
| English (English) (en_GB) |  |
|
||||||
| English (US) (en_US) |  |
|
| English (US) (en_US) |  |
|
||||||
| French (Français) (fr_FR) |  |
|
| French (Français) (fr_FR) |  |
|
||||||
| German (Deutsch) (de_DE) |  |
|
| German (Deutsch) (de_DE) |  |
|
||||||
| Greek (Ελληνικά) (el_GR) |  |
|
| Greek (Ελληνικά) (el_GR) |  |
|
||||||
| Hindi (हिंदी) (hi_IN) |  |
|
| Hindi (हिंदी) (hi_IN) |  |
|
||||||
| Hungarian (Magyar) (hu_HU) |  |
|
| Hungarian (Magyar) (hu_HU) |  |
|
||||||
| Indonesian (Bahasa Indonesia) (id_ID) |  |
|
| Indonesian (Bahasa Indonesia) (id_ID) |  |
|
||||||
| Irish (Gaeilge) (ga_IE) |  |
|
| Irish (Gaeilge) (ga_IE) |  |
|
||||||
| Italian (Italiano) (it_IT) |  |
|
| Italian (Italiano) (it_IT) |  |
|
||||||
| Japanese (日本語) (ja_JP) |  |
|
| Japanese (日本語) (ja_JP) |  |
|
||||||
| Korean (한국어) (ko_KR) |  |
|
| Korean (한국어) (ko_KR) |  |
|
||||||
| Norwegian (Norsk) (no_NB) |  |
|
| Norwegian (Norsk) (no_NB) |  |
|
||||||
| Persian (فارسی) (fa_IR) |  |
|
| Persian (فارسی) (fa_IR) |  |
|
||||||
| Polish (Polski) (pl_PL) |  |
|
| Polish (Polski) (pl_PL) |  |
|
||||||
| Portuguese (Português) (pt_PT) |  |
|
| Portuguese (Português) (pt_PT) |  |
|
||||||
| Portuguese Brazilian (Português) (pt_BR) |  |
|
| Portuguese Brazilian (Português) (pt_BR) |  |
|
||||||
| Romanian (Română) (ro_RO) |  |
|
| Romanian (Română) (ro_RO) |  |
|
||||||
| Russian (Русский) (ru_RU) |  |
|
| Russian (Русский) (ru_RU) |  |
|
||||||
| Serbian Latin alphabet (Srpski) (sr_LATN_RS) |  |
|
| Serbian Latin alphabet (Srpski) (sr_LATN_RS) |  |
|
||||||
| Simplified Chinese (简体中文) (zh_CN) |  |
|
| Simplified Chinese (简体中文) (zh_CN) |  |
|
||||||
| Slovakian (Slovensky) (sk_SK) |  |
|
| Slovakian (Slovensky) (sk_SK) |  |
|
||||||
| Slovenian (Slovenščina) (sl_SI) |  |
|
| Slovenian (Slovenščina) (sl_SI) |  |
|
||||||
| Spanish (Español) (es_ES) |  |
|
| Spanish (Español) (es_ES) |  |
|
||||||
| Swedish (Svenska) (sv_SE) |  |
|
| Swedish (Svenska) (sv_SE) |  |
|
||||||
| Thai (ไทย) (th_TH) |  |
|
| Thai (ไทย) (th_TH) |  |
|
||||||
| Tibetan (བོད་ཡིག་) (bo_CN) |  |
|
| Tibetan (བོད་ཡིག་) (bo_CN) |  |
|
||||||
| Traditional Chinese (繁體中文) (zh_TW) |  |
|
| Traditional Chinese (繁體中文) (zh_TW) |  |
|
||||||
| Turkish (Türkçe) (tr_TR) |  |
|
| Turkish (Türkçe) (tr_TR) |  |
|
||||||
| Ukrainian (Українська) (uk_UA) |  |
|
| Ukrainian (Українська) (uk_UA) |  |
|
||||||
| Vietnamese (Tiếng Việt) (vi_VN) |  |
|
| Vietnamese (Tiếng Việt) (vi_VN) |  |
|
||||||
| Malayalam (മലയാളം) (ml_IN) |  |
|
| Malayalam (മലയാളം) (ml_IN) |  |
|
||||||
|
|
||||||
## Stirling PDF Enterprise
|
## Stirling PDF Enterprise
|
||||||
|
|
||||||
|
22
build.gradle
22
build.gradle
@ -6,10 +6,10 @@ plugins {
|
|||||||
id "org.springdoc.openapi-gradle-plugin" version "1.9.0"
|
id "org.springdoc.openapi-gradle-plugin" version "1.9.0"
|
||||||
id "io.swagger.swaggerhub" version "1.3.2"
|
id "io.swagger.swaggerhub" version "1.3.2"
|
||||||
id "edu.sc.seis.launch4j" version "3.0.6"
|
id "edu.sc.seis.launch4j" version "3.0.6"
|
||||||
id "com.diffplug.spotless" version "7.0.4"
|
id "com.diffplug.spotless" version "7.0.3"
|
||||||
id "com.github.jk1.dependency-license-report" version "2.9"
|
id "com.github.jk1.dependency-license-report" version "2.9"
|
||||||
//id "nebula.lint" version "19.0.3"
|
//id "nebula.lint" version "19.0.3"
|
||||||
id "org.panteleyev.jpackageplugin" version "1.6.1"
|
id("org.panteleyev.jpackageplugin") version "1.6.1"
|
||||||
id "org.sonarqube" version "6.2.0.5505"
|
id "org.sonarqube" version "6.2.0.5505"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,9 +51,9 @@ licenseReport {
|
|||||||
sourceSets {
|
sourceSets {
|
||||||
main {
|
main {
|
||||||
java {
|
java {
|
||||||
if (System.getenv('DOCKER_ENABLE_SECURITY') == 'false' || System.getenv('ADDITIONAL_FEATURES_OFF') == 'true'
|
if (System.getenv('DOCKER_ENABLE_SECURITY') == 'false' || System.getenv('ADDITIONAL_FEATURES_OFF') == 'false'
|
||||||
|| (project.hasProperty('ADDITIONAL_FEATURES_OFF')
|
|| (project.hasProperty('ADDITIONAL_FEATURES_OFF')
|
||||||
&& System.getProperty('ADDITIONAL_FEATURES_OFF') == 'true')) {
|
&& System.getProperty('ADDITIONAL_FEATURES_OFF'))) {
|
||||||
exclude 'stirling/software/proprietary/security/**'
|
exclude 'stirling/software/proprietary/security/**'
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,9 +66,9 @@ sourceSets {
|
|||||||
|
|
||||||
test {
|
test {
|
||||||
java {
|
java {
|
||||||
if (System.getenv('DOCKER_ENABLE_SECURITY') == 'false' || System.getenv('ADDITIONAL_FEATURES_OFF') == 'true'
|
if (System.getenv('DOCKER_ENABLE_SECURITY') == 'false' || System.getenv('ADDITIONAL_FEATURES_OFF') == 'false'
|
||||||
|| (project.hasProperty('ADDITIONAL_FEATURES_OFF')
|
|| (project.hasProperty('ADDITIONAL_FEATURES_OFF')
|
||||||
&& System.getProperty('ADDITIONAL_FEATURES_OFF') == 'true')) {
|
&& System.getProperty('ADDITIONAL_FEATURES_OFF'))) {
|
||||||
exclude 'stirling/software/proprietary/security/**'
|
exclude 'stirling/software/proprietary/security/**'
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -285,18 +285,18 @@ tasks.register('downloadTempJre') {
|
|||||||
def jreArchive = new File(tmpDir, 'jre.tar.gz')
|
def jreArchive = new File(tmpDir, 'jre.tar.gz')
|
||||||
def jreDir = new File(tmpDir, 'jre')
|
def jreDir = new File(tmpDir, 'jre')
|
||||||
|
|
||||||
println "Downloading JRE to $jreArchive..."
|
println "🔽 Downloading JRE to $jreArchive..."
|
||||||
jreArchive.withOutputStream { out ->
|
jreArchive.withOutputStream { out ->
|
||||||
new URI(jreUrl).toURL().withInputStream { from -> out << from }
|
new URI(jreUrl).toURL().withInputStream { from -> out << from }
|
||||||
}
|
}
|
||||||
|
|
||||||
println "Extracting JRE to $jreDir..."
|
println "📦 Extracting JRE to $jreDir..."
|
||||||
jreDir.mkdirs()
|
jreDir.mkdirs()
|
||||||
providers.exec {
|
providers.exec {
|
||||||
commandLine 'tar', '-xzf', jreArchive.absolutePath, '-C', jreDir.absolutePath, '--strip-components=1'
|
commandLine 'tar', '-xzf', jreArchive.absolutePath, '-C', jreDir.absolutePath, '--strip-components=1'
|
||||||
}.result.get()
|
}.result.get()
|
||||||
|
|
||||||
println "JRE ready at: $jreDir"
|
println "✅ JRE ready at: $jreDir"
|
||||||
ext.tempJrePath = jreDir.absolutePath
|
ext.tempJrePath = jreDir.absolutePath
|
||||||
project.ext.tempJrePath = jreDir.absolutePath
|
project.ext.tempJrePath = jreDir.absolutePath
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -413,7 +413,7 @@ dependencies {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (System.getenv("STIRLING_PDF_DESKTOP_UI") != "false") {
|
if (System.getenv("STIRLING_PDF_DESKTOP_UI") != "false") {
|
||||||
implementation "me.friwi:jcefmaven:135.0.20"
|
implementation "me.friwi:jcefmaven:132.3.1"
|
||||||
implementation "org.openjfx:javafx-controls:21"
|
implementation "org.openjfx:javafx-controls:21"
|
||||||
implementation "org.openjfx:javafx-swing:21"
|
implementation "org.openjfx:javafx-swing:21"
|
||||||
}
|
}
|
||||||
@ -431,7 +431,7 @@ dependencies {
|
|||||||
implementation 'com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:20240325.1'
|
implementation 'com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:20240325.1'
|
||||||
implementation 'org.snakeyaml:snakeyaml-engine:2.9'
|
implementation 'org.snakeyaml:snakeyaml-engine:2.9'
|
||||||
|
|
||||||
if (System.getenv("DOCKER_ENABLE_SECURITY") != "false" && System.getenv("ADDITIONAL_FEATURES_OFF") != "true") {
|
if (System.getenv("DOCKER_ENABLE_SECURITY") != "false" || System.getenv("ADDITIONAL_FEATURES_OFF") == "false") {
|
||||||
implementation project(':proprietary')
|
implementation project(':proprietary')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ configurations.all {
|
|||||||
|
|
||||||
dependencyManagement {
|
dependencyManagement {
|
||||||
imports {
|
imports {
|
||||||
mavenBom 'org.springframework.boot:spring-boot-dependencies:3.5.0'
|
mavenBom 'org.springframework.boot:spring-boot-dependencies:3.4.5'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,9 +40,9 @@ dependencies {
|
|||||||
api 'com.drewnoakes:metadata-extractor:2.19.0' // Image metadata extractor
|
api 'com.drewnoakes:metadata-extractor:2.19.0' // Image metadata extractor
|
||||||
api 'com.vladsch.flexmark:flexmark-html2md-converter:0.64.8'
|
api 'com.vladsch.flexmark:flexmark-html2md-converter:0.64.8'
|
||||||
api "org.apache.pdfbox:pdfbox:$pdfboxVersion"
|
api "org.apache.pdfbox:pdfbox:$pdfboxVersion"
|
||||||
api 'jakarta.servlet:jakarta.servlet-api:6.1.0'
|
api 'jakarta.servlet:jakarta.servlet-api:6.0.0'
|
||||||
api 'org.snakeyaml:snakeyaml-engine:2.9'
|
api 'org.snakeyaml:snakeyaml-engine:2.9'
|
||||||
api "org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.8"
|
api "org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.6"
|
||||||
|
|
||||||
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
||||||
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
|
||||||
distributionPath=wrapper/dists
|
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip
|
|
||||||
validateDistributionUrl=true
|
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
|
||||||
zipStorePath=wrapper/dists
|
|
251
common/gradlew
vendored
251
common/gradlew
vendored
@ -1,251 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
#
|
|
||||||
# Copyright © 2015-2021 the original authors.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
#
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
#
|
|
||||||
# Gradle start up script for POSIX generated by Gradle.
|
|
||||||
#
|
|
||||||
# Important for running:
|
|
||||||
#
|
|
||||||
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
|
||||||
# noncompliant, but you have some other compliant shell such as ksh or
|
|
||||||
# bash, then to run this script, type that shell name before the whole
|
|
||||||
# command line, like:
|
|
||||||
#
|
|
||||||
# ksh Gradle
|
|
||||||
#
|
|
||||||
# Busybox and similar reduced shells will NOT work, because this script
|
|
||||||
# requires all of these POSIX shell features:
|
|
||||||
# * functions;
|
|
||||||
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
|
||||||
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
|
||||||
# * compound commands having a testable exit status, especially «case»;
|
|
||||||
# * various built-in commands including «command», «set», and «ulimit».
|
|
||||||
#
|
|
||||||
# Important for patching:
|
|
||||||
#
|
|
||||||
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
|
||||||
# by Bash, Ksh, etc; in particular arrays are avoided.
|
|
||||||
#
|
|
||||||
# The "traditional" practice of packing multiple parameters into a
|
|
||||||
# space-separated string is a well documented source of bugs and security
|
|
||||||
# problems, so this is (mostly) avoided, by progressively accumulating
|
|
||||||
# options in "$@", and eventually passing that to Java.
|
|
||||||
#
|
|
||||||
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
|
||||||
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
|
||||||
# see the in-line comments for details.
|
|
||||||
#
|
|
||||||
# There are tweaks for specific operating systems such as AIX, CygWin,
|
|
||||||
# Darwin, MinGW, and NonStop.
|
|
||||||
#
|
|
||||||
# (3) This script is generated from the Groovy template
|
|
||||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
|
||||||
# within the Gradle project.
|
|
||||||
#
|
|
||||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
|
||||||
#
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# Attempt to set APP_HOME
|
|
||||||
|
|
||||||
# Resolve links: $0 may be a link
|
|
||||||
app_path=$0
|
|
||||||
|
|
||||||
# Need this for daisy-chained symlinks.
|
|
||||||
while
|
|
||||||
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
|
||||||
[ -h "$app_path" ]
|
|
||||||
do
|
|
||||||
ls=$( ls -ld "$app_path" )
|
|
||||||
link=${ls#*' -> '}
|
|
||||||
case $link in #(
|
|
||||||
/*) app_path=$link ;; #(
|
|
||||||
*) app_path=$APP_HOME$link ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
# This is normally unused
|
|
||||||
# shellcheck disable=SC2034
|
|
||||||
APP_BASE_NAME=${0##*/}
|
|
||||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
|
||||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
|
||||||
MAX_FD=maximum
|
|
||||||
|
|
||||||
warn () {
|
|
||||||
echo "$*"
|
|
||||||
} >&2
|
|
||||||
|
|
||||||
die () {
|
|
||||||
echo
|
|
||||||
echo "$*"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
} >&2
|
|
||||||
|
|
||||||
# OS specific support (must be 'true' or 'false').
|
|
||||||
cygwin=false
|
|
||||||
msys=false
|
|
||||||
darwin=false
|
|
||||||
nonstop=false
|
|
||||||
case "$( uname )" in #(
|
|
||||||
CYGWIN* ) cygwin=true ;; #(
|
|
||||||
Darwin* ) darwin=true ;; #(
|
|
||||||
MSYS* | MINGW* ) msys=true ;; #(
|
|
||||||
NONSTOP* ) nonstop=true ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
CLASSPATH="\\\"\\\""
|
|
||||||
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
|
||||||
# IBM's JDK on AIX uses strange locations for the executables
|
|
||||||
JAVACMD=$JAVA_HOME/jre/sh/java
|
|
||||||
else
|
|
||||||
JAVACMD=$JAVA_HOME/bin/java
|
|
||||||
fi
|
|
||||||
if [ ! -x "$JAVACMD" ] ; then
|
|
||||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
JAVACMD=java
|
|
||||||
if ! command -v java >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Increase the maximum file descriptors if we can.
|
|
||||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
|
||||||
case $MAX_FD in #(
|
|
||||||
max*)
|
|
||||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
|
||||||
# shellcheck disable=SC2039,SC3045
|
|
||||||
MAX_FD=$( ulimit -H -n ) ||
|
|
||||||
warn "Could not query maximum file descriptor limit"
|
|
||||||
esac
|
|
||||||
case $MAX_FD in #(
|
|
||||||
'' | soft) :;; #(
|
|
||||||
*)
|
|
||||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
|
||||||
# shellcheck disable=SC2039,SC3045
|
|
||||||
ulimit -n "$MAX_FD" ||
|
|
||||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Collect all arguments for the java command, stacking in reverse order:
|
|
||||||
# * args from the command line
|
|
||||||
# * the main class name
|
|
||||||
# * -classpath
|
|
||||||
# * -D...appname settings
|
|
||||||
# * --module-path (only if needed)
|
|
||||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
|
||||||
|
|
||||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
|
||||||
if "$cygwin" || "$msys" ; then
|
|
||||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
|
||||||
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
|
||||||
|
|
||||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
|
||||||
|
|
||||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
|
||||||
for arg do
|
|
||||||
if
|
|
||||||
case $arg in #(
|
|
||||||
-*) false ;; # don't mess with options #(
|
|
||||||
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
|
||||||
[ -e "$t" ] ;; #(
|
|
||||||
*) false ;;
|
|
||||||
esac
|
|
||||||
then
|
|
||||||
arg=$( cygpath --path --ignore --mixed "$arg" )
|
|
||||||
fi
|
|
||||||
# Roll the args list around exactly as many times as the number of
|
|
||||||
# args, so each arg winds up back in the position where it started, but
|
|
||||||
# possibly modified.
|
|
||||||
#
|
|
||||||
# NB: a `for` loop captures its iteration list before it begins, so
|
|
||||||
# changing the positional parameters here affects neither the number of
|
|
||||||
# iterations, nor the values presented in `arg`.
|
|
||||||
shift # remove old arg
|
|
||||||
set -- "$@" "$arg" # push replacement arg
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
|
||||||
|
|
||||||
# Collect all arguments for the java command:
|
|
||||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
|
||||||
# and any embedded shellness will be escaped.
|
|
||||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
|
||||||
# treated as '${Hostname}' itself on the command line.
|
|
||||||
|
|
||||||
set -- \
|
|
||||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
|
||||||
-classpath "$CLASSPATH" \
|
|
||||||
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
|
||||||
"$@"
|
|
||||||
|
|
||||||
# Stop when "xargs" is not available.
|
|
||||||
if ! command -v xargs >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
die "xargs is not available"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Use "xargs" to parse quoted args.
|
|
||||||
#
|
|
||||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
|
||||||
#
|
|
||||||
# In Bash we could simply go:
|
|
||||||
#
|
|
||||||
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
|
||||||
# set -- "${ARGS[@]}" "$@"
|
|
||||||
#
|
|
||||||
# but POSIX shell has neither arrays nor command substitution, so instead we
|
|
||||||
# post-process each arg (as a line of input to sed) to backslash-escape any
|
|
||||||
# character that might be a shell metacharacter, then use eval to reverse
|
|
||||||
# that process (while maintaining the separation between arguments), and wrap
|
|
||||||
# the whole thing up as a single "set" statement.
|
|
||||||
#
|
|
||||||
# This will of course break if any of these variables contains a newline or
|
|
||||||
# an unmatched quote.
|
|
||||||
#
|
|
||||||
|
|
||||||
eval "set -- $(
|
|
||||||
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
|
||||||
xargs -n1 |
|
|
||||||
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
|
||||||
tr '\n' ' '
|
|
||||||
)" '"$@"'
|
|
||||||
|
|
||||||
exec "$JAVACMD" "$@"
|
|
94
common/gradlew.bat
vendored
94
common/gradlew.bat
vendored
@ -1,94 +0,0 @@
|
|||||||
@rem
|
|
||||||
@rem Copyright 2015 the original author or authors.
|
|
||||||
@rem
|
|
||||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
@rem you may not use this file except in compliance with the License.
|
|
||||||
@rem You may obtain a copy of the License at
|
|
||||||
@rem
|
|
||||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
@rem
|
|
||||||
@rem Unless required by applicable law or agreed to in writing, software
|
|
||||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
@rem See the License for the specific language governing permissions and
|
|
||||||
@rem limitations under the License.
|
|
||||||
@rem
|
|
||||||
@rem SPDX-License-Identifier: Apache-2.0
|
|
||||||
@rem
|
|
||||||
|
|
||||||
@if "%DEBUG%"=="" @echo off
|
|
||||||
@rem ##########################################################################
|
|
||||||
@rem
|
|
||||||
@rem Gradle startup script for Windows
|
|
||||||
@rem
|
|
||||||
@rem ##########################################################################
|
|
||||||
|
|
||||||
@rem Set local scope for the variables with windows NT shell
|
|
||||||
if "%OS%"=="Windows_NT" setlocal
|
|
||||||
|
|
||||||
set DIRNAME=%~dp0
|
|
||||||
if "%DIRNAME%"=="" set DIRNAME=.
|
|
||||||
@rem This is normally unused
|
|
||||||
set APP_BASE_NAME=%~n0
|
|
||||||
set APP_HOME=%DIRNAME%
|
|
||||||
|
|
||||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
|
||||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
|
||||||
|
|
||||||
@rem Find java.exe
|
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
|
||||||
|
|
||||||
set JAVA_EXE=java.exe
|
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
|
||||||
if %ERRORLEVEL% equ 0 goto execute
|
|
||||||
|
|
||||||
echo. 1>&2
|
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
|
||||||
echo. 1>&2
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
|
||||||
echo location of your Java installation. 1>&2
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:findJavaFromJavaHome
|
|
||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
|
||||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto execute
|
|
||||||
|
|
||||||
echo. 1>&2
|
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
|
||||||
echo. 1>&2
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
|
||||||
echo location of your Java installation. 1>&2
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:execute
|
|
||||||
@rem Setup the command line
|
|
||||||
|
|
||||||
set CLASSPATH=
|
|
||||||
|
|
||||||
|
|
||||||
@rem Execute Gradle
|
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
|
|
||||||
|
|
||||||
:end
|
|
||||||
@rem End local scope for the variables with windows NT shell
|
|
||||||
if %ERRORLEVEL% equ 0 goto mainEnd
|
|
||||||
|
|
||||||
:fail
|
|
||||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
|
||||||
rem the _cmd.exe /c_ return code!
|
|
||||||
set EXIT_CODE=%ERRORLEVEL%
|
|
||||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
|
||||||
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
|
||||||
exit /b %EXIT_CODE%
|
|
||||||
|
|
||||||
:mainEnd
|
|
||||||
if "%OS%"=="Windows_NT" endlocal
|
|
||||||
|
|
||||||
:omega
|
|
@ -148,16 +148,10 @@ public class AppConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Bean(name = "activeSecurity")
|
@Bean(name = "activeSecurity")
|
||||||
|
@ConditionalOnClass(
|
||||||
|
name = "stirling.software.proprietary.security.configuration.SecurityConfiguration")
|
||||||
public boolean activeSecurity() {
|
public boolean activeSecurity() {
|
||||||
String additionalFeaturesOff = env.getProperty("ADDITIONAL_FEATURES_OFF");
|
return true;
|
||||||
|
|
||||||
if (additionalFeaturesOff != null) {
|
|
||||||
// ADDITIONAL_FEATURES_OFF=true means security OFF, so return false
|
|
||||||
// ADDITIONAL_FEATURES_OFF=false means security ON, so return true
|
|
||||||
return !Boolean.parseBoolean(additionalFeaturesOff);
|
|
||||||
}
|
|
||||||
|
|
||||||
return env.getProperty("DOCKER_ENABLE_SECURITY", Boolean.class, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean(name = "missingActiveSecurity")
|
@Bean(name = "missingActiveSecurity")
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
|
||||||
distributionPath=wrapper/dists
|
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip
|
|
||||||
validateDistributionUrl=true
|
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
|
||||||
zipStorePath=wrapper/dists
|
|
251
proprietary/gradlew
vendored
251
proprietary/gradlew
vendored
@ -1,251 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
#
|
|
||||||
# Copyright © 2015-2021 the original authors.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
#
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
#
|
|
||||||
# Gradle start up script for POSIX generated by Gradle.
|
|
||||||
#
|
|
||||||
# Important for running:
|
|
||||||
#
|
|
||||||
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
|
||||||
# noncompliant, but you have some other compliant shell such as ksh or
|
|
||||||
# bash, then to run this script, type that shell name before the whole
|
|
||||||
# command line, like:
|
|
||||||
#
|
|
||||||
# ksh Gradle
|
|
||||||
#
|
|
||||||
# Busybox and similar reduced shells will NOT work, because this script
|
|
||||||
# requires all of these POSIX shell features:
|
|
||||||
# * functions;
|
|
||||||
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
|
||||||
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
|
||||||
# * compound commands having a testable exit status, especially «case»;
|
|
||||||
# * various built-in commands including «command», «set», and «ulimit».
|
|
||||||
#
|
|
||||||
# Important for patching:
|
|
||||||
#
|
|
||||||
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
|
||||||
# by Bash, Ksh, etc; in particular arrays are avoided.
|
|
||||||
#
|
|
||||||
# The "traditional" practice of packing multiple parameters into a
|
|
||||||
# space-separated string is a well documented source of bugs and security
|
|
||||||
# problems, so this is (mostly) avoided, by progressively accumulating
|
|
||||||
# options in "$@", and eventually passing that to Java.
|
|
||||||
#
|
|
||||||
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
|
||||||
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
|
||||||
# see the in-line comments for details.
|
|
||||||
#
|
|
||||||
# There are tweaks for specific operating systems such as AIX, CygWin,
|
|
||||||
# Darwin, MinGW, and NonStop.
|
|
||||||
#
|
|
||||||
# (3) This script is generated from the Groovy template
|
|
||||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
|
||||||
# within the Gradle project.
|
|
||||||
#
|
|
||||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
|
||||||
#
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# Attempt to set APP_HOME
|
|
||||||
|
|
||||||
# Resolve links: $0 may be a link
|
|
||||||
app_path=$0
|
|
||||||
|
|
||||||
# Need this for daisy-chained symlinks.
|
|
||||||
while
|
|
||||||
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
|
||||||
[ -h "$app_path" ]
|
|
||||||
do
|
|
||||||
ls=$( ls -ld "$app_path" )
|
|
||||||
link=${ls#*' -> '}
|
|
||||||
case $link in #(
|
|
||||||
/*) app_path=$link ;; #(
|
|
||||||
*) app_path=$APP_HOME$link ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
# This is normally unused
|
|
||||||
# shellcheck disable=SC2034
|
|
||||||
APP_BASE_NAME=${0##*/}
|
|
||||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
|
||||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
|
||||||
MAX_FD=maximum
|
|
||||||
|
|
||||||
warn () {
|
|
||||||
echo "$*"
|
|
||||||
} >&2
|
|
||||||
|
|
||||||
die () {
|
|
||||||
echo
|
|
||||||
echo "$*"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
} >&2
|
|
||||||
|
|
||||||
# OS specific support (must be 'true' or 'false').
|
|
||||||
cygwin=false
|
|
||||||
msys=false
|
|
||||||
darwin=false
|
|
||||||
nonstop=false
|
|
||||||
case "$( uname )" in #(
|
|
||||||
CYGWIN* ) cygwin=true ;; #(
|
|
||||||
Darwin* ) darwin=true ;; #(
|
|
||||||
MSYS* | MINGW* ) msys=true ;; #(
|
|
||||||
NONSTOP* ) nonstop=true ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
CLASSPATH="\\\"\\\""
|
|
||||||
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
|
||||||
# IBM's JDK on AIX uses strange locations for the executables
|
|
||||||
JAVACMD=$JAVA_HOME/jre/sh/java
|
|
||||||
else
|
|
||||||
JAVACMD=$JAVA_HOME/bin/java
|
|
||||||
fi
|
|
||||||
if [ ! -x "$JAVACMD" ] ; then
|
|
||||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
JAVACMD=java
|
|
||||||
if ! command -v java >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Increase the maximum file descriptors if we can.
|
|
||||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
|
||||||
case $MAX_FD in #(
|
|
||||||
max*)
|
|
||||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
|
||||||
# shellcheck disable=SC2039,SC3045
|
|
||||||
MAX_FD=$( ulimit -H -n ) ||
|
|
||||||
warn "Could not query maximum file descriptor limit"
|
|
||||||
esac
|
|
||||||
case $MAX_FD in #(
|
|
||||||
'' | soft) :;; #(
|
|
||||||
*)
|
|
||||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
|
||||||
# shellcheck disable=SC2039,SC3045
|
|
||||||
ulimit -n "$MAX_FD" ||
|
|
||||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Collect all arguments for the java command, stacking in reverse order:
|
|
||||||
# * args from the command line
|
|
||||||
# * the main class name
|
|
||||||
# * -classpath
|
|
||||||
# * -D...appname settings
|
|
||||||
# * --module-path (only if needed)
|
|
||||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
|
||||||
|
|
||||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
|
||||||
if "$cygwin" || "$msys" ; then
|
|
||||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
|
||||||
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
|
||||||
|
|
||||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
|
||||||
|
|
||||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
|
||||||
for arg do
|
|
||||||
if
|
|
||||||
case $arg in #(
|
|
||||||
-*) false ;; # don't mess with options #(
|
|
||||||
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
|
||||||
[ -e "$t" ] ;; #(
|
|
||||||
*) false ;;
|
|
||||||
esac
|
|
||||||
then
|
|
||||||
arg=$( cygpath --path --ignore --mixed "$arg" )
|
|
||||||
fi
|
|
||||||
# Roll the args list around exactly as many times as the number of
|
|
||||||
# args, so each arg winds up back in the position where it started, but
|
|
||||||
# possibly modified.
|
|
||||||
#
|
|
||||||
# NB: a `for` loop captures its iteration list before it begins, so
|
|
||||||
# changing the positional parameters here affects neither the number of
|
|
||||||
# iterations, nor the values presented in `arg`.
|
|
||||||
shift # remove old arg
|
|
||||||
set -- "$@" "$arg" # push replacement arg
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
|
||||||
|
|
||||||
# Collect all arguments for the java command:
|
|
||||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
|
||||||
# and any embedded shellness will be escaped.
|
|
||||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
|
||||||
# treated as '${Hostname}' itself on the command line.
|
|
||||||
|
|
||||||
set -- \
|
|
||||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
|
||||||
-classpath "$CLASSPATH" \
|
|
||||||
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
|
||||||
"$@"
|
|
||||||
|
|
||||||
# Stop when "xargs" is not available.
|
|
||||||
if ! command -v xargs >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
die "xargs is not available"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Use "xargs" to parse quoted args.
|
|
||||||
#
|
|
||||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
|
||||||
#
|
|
||||||
# In Bash we could simply go:
|
|
||||||
#
|
|
||||||
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
|
||||||
# set -- "${ARGS[@]}" "$@"
|
|
||||||
#
|
|
||||||
# but POSIX shell has neither arrays nor command substitution, so instead we
|
|
||||||
# post-process each arg (as a line of input to sed) to backslash-escape any
|
|
||||||
# character that might be a shell metacharacter, then use eval to reverse
|
|
||||||
# that process (while maintaining the separation between arguments), and wrap
|
|
||||||
# the whole thing up as a single "set" statement.
|
|
||||||
#
|
|
||||||
# This will of course break if any of these variables contains a newline or
|
|
||||||
# an unmatched quote.
|
|
||||||
#
|
|
||||||
|
|
||||||
eval "set -- $(
|
|
||||||
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
|
||||||
xargs -n1 |
|
|
||||||
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
|
||||||
tr '\n' ' '
|
|
||||||
)" '"$@"'
|
|
||||||
|
|
||||||
exec "$JAVACMD" "$@"
|
|
94
proprietary/gradlew.bat
vendored
94
proprietary/gradlew.bat
vendored
@ -1,94 +0,0 @@
|
|||||||
@rem
|
|
||||||
@rem Copyright 2015 the original author or authors.
|
|
||||||
@rem
|
|
||||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
@rem you may not use this file except in compliance with the License.
|
|
||||||
@rem You may obtain a copy of the License at
|
|
||||||
@rem
|
|
||||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
@rem
|
|
||||||
@rem Unless required by applicable law or agreed to in writing, software
|
|
||||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
@rem See the License for the specific language governing permissions and
|
|
||||||
@rem limitations under the License.
|
|
||||||
@rem
|
|
||||||
@rem SPDX-License-Identifier: Apache-2.0
|
|
||||||
@rem
|
|
||||||
|
|
||||||
@if "%DEBUG%"=="" @echo off
|
|
||||||
@rem ##########################################################################
|
|
||||||
@rem
|
|
||||||
@rem Gradle startup script for Windows
|
|
||||||
@rem
|
|
||||||
@rem ##########################################################################
|
|
||||||
|
|
||||||
@rem Set local scope for the variables with windows NT shell
|
|
||||||
if "%OS%"=="Windows_NT" setlocal
|
|
||||||
|
|
||||||
set DIRNAME=%~dp0
|
|
||||||
if "%DIRNAME%"=="" set DIRNAME=.
|
|
||||||
@rem This is normally unused
|
|
||||||
set APP_BASE_NAME=%~n0
|
|
||||||
set APP_HOME=%DIRNAME%
|
|
||||||
|
|
||||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
|
||||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
|
||||||
|
|
||||||
@rem Find java.exe
|
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
|
||||||
|
|
||||||
set JAVA_EXE=java.exe
|
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
|
||||||
if %ERRORLEVEL% equ 0 goto execute
|
|
||||||
|
|
||||||
echo. 1>&2
|
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
|
||||||
echo. 1>&2
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
|
||||||
echo location of your Java installation. 1>&2
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:findJavaFromJavaHome
|
|
||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
|
||||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto execute
|
|
||||||
|
|
||||||
echo. 1>&2
|
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
|
||||||
echo. 1>&2
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
|
||||||
echo location of your Java installation. 1>&2
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:execute
|
|
||||||
@rem Setup the command line
|
|
||||||
|
|
||||||
set CLASSPATH=
|
|
||||||
|
|
||||||
|
|
||||||
@rem Execute Gradle
|
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
|
|
||||||
|
|
||||||
:end
|
|
||||||
@rem End local scope for the variables with windows NT shell
|
|
||||||
if %ERRORLEVEL% equ 0 goto mainEnd
|
|
||||||
|
|
||||||
:fail
|
|
||||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
|
||||||
rem the _cmd.exe /c_ return code!
|
|
||||||
set EXIT_CODE=%ERRORLEVEL%
|
|
||||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
|
||||||
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
|
||||||
exit /b %EXIT_CODE%
|
|
||||||
|
|
||||||
:mainEnd
|
|
||||||
if "%OS%"=="Windows_NT" endlocal
|
|
||||||
|
|
||||||
:omega
|
|
@ -131,7 +131,7 @@ public class SplitPdfByChaptersController {
|
|||||||
Integer bookmarkLevel =
|
Integer bookmarkLevel =
|
||||||
request.getBookmarkLevel(); // levels start from 0 (top most bookmarks)
|
request.getBookmarkLevel(); // levels start from 0 (top most bookmarks)
|
||||||
if (bookmarkLevel < 0) {
|
if (bookmarkLevel < 0) {
|
||||||
throw new IllegalArgumentException("Invalid bookmark level");
|
return ResponseEntity.badRequest().body("Invalid bookmark level".getBytes());
|
||||||
}
|
}
|
||||||
sourceDocument = pdfDocumentFactory.load(file);
|
sourceDocument = pdfDocumentFactory.load(file);
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ public class SplitPdfByChaptersController {
|
|||||||
|
|
||||||
if (outline == null) {
|
if (outline == null) {
|
||||||
log.warn("No outline found for {}", file.getOriginalFilename());
|
log.warn("No outline found for {}", file.getOriginalFilename());
|
||||||
throw new IllegalArgumentException("No outline found");
|
return ResponseEntity.badRequest().body("No outline found".getBytes());
|
||||||
}
|
}
|
||||||
List<Bookmark> bookmarks = new ArrayList<>();
|
List<Bookmark> bookmarks = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
|
@ -91,59 +91,6 @@ public class GetInfoOnPDF {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Generates structured summary data about the PDF highlighting its unique characteristics such
|
|
||||||
* as encryption status, permission restrictions, and standards compliance.
|
|
||||||
*
|
|
||||||
* @param document The PDF document to analyze
|
|
||||||
* @return An ObjectNode containing structured summary data
|
|
||||||
*/
|
|
||||||
private ObjectNode generatePDFSummaryData(PDDocument document) {
|
|
||||||
ObjectNode summaryData = objectMapper.createObjectNode();
|
|
||||||
|
|
||||||
// Check if encrypted
|
|
||||||
if (document.isEncrypted()) {
|
|
||||||
summaryData.put("encrypted", true);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check permissions
|
|
||||||
AccessPermission ap = document.getCurrentAccessPermission();
|
|
||||||
ArrayNode restrictedPermissions = objectMapper.createArrayNode();
|
|
||||||
|
|
||||||
if (!ap.canAssembleDocument()) restrictedPermissions.add("document assembly");
|
|
||||||
if (!ap.canExtractContent()) restrictedPermissions.add("content extraction");
|
|
||||||
if (!ap.canExtractForAccessibility()) restrictedPermissions.add("accessibility extraction");
|
|
||||||
if (!ap.canFillInForm()) restrictedPermissions.add("form filling");
|
|
||||||
if (!ap.canModify()) restrictedPermissions.add("modification");
|
|
||||||
if (!ap.canModifyAnnotations()) restrictedPermissions.add("annotation modification");
|
|
||||||
if (!ap.canPrint()) restrictedPermissions.add("printing");
|
|
||||||
|
|
||||||
if (restrictedPermissions.size() > 0) {
|
|
||||||
summaryData.set("restrictedPermissions", restrictedPermissions);
|
|
||||||
summaryData.put("restrictedPermissionsCount", restrictedPermissions.size());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check standard compliance
|
|
||||||
if (checkForStandard(document, "PDF/A")) {
|
|
||||||
summaryData.put("standardCompliance", "PDF/A");
|
|
||||||
summaryData.put("standardPurpose", "long-term archiving");
|
|
||||||
} else if (checkForStandard(document, "PDF/X")) {
|
|
||||||
summaryData.put("standardCompliance", "PDF/X");
|
|
||||||
summaryData.put("standardPurpose", "graphic exchange");
|
|
||||||
} else if (checkForStandard(document, "PDF/UA")) {
|
|
||||||
summaryData.put("standardCompliance", "PDF/UA");
|
|
||||||
summaryData.put("standardPurpose", "universal accessibility");
|
|
||||||
} else if (checkForStandard(document, "PDF/E")) {
|
|
||||||
summaryData.put("standardCompliance", "PDF/E");
|
|
||||||
summaryData.put("standardPurpose", "engineering workflows");
|
|
||||||
} else if (checkForStandard(document, "PDF/VT")) {
|
|
||||||
summaryData.put("standardCompliance", "PDF/VT");
|
|
||||||
summaryData.put("standardPurpose", "variable and transactional printing");
|
|
||||||
}
|
|
||||||
|
|
||||||
return summaryData;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean checkForStandard(PDDocument document, String standardKeyword) {
|
public static boolean checkForStandard(PDDocument document, String standardKeyword) {
|
||||||
// Check XMP Metadata
|
// Check XMP Metadata
|
||||||
try {
|
try {
|
||||||
@ -244,12 +191,6 @@ public class GetInfoOnPDF {
|
|||||||
}
|
}
|
||||||
jsonOutput.set("FormFields", formFieldsNode);
|
jsonOutput.set("FormFields", formFieldsNode);
|
||||||
|
|
||||||
// Generate structured summary data about PDF characteristics
|
|
||||||
ObjectNode summaryData = generatePDFSummaryData(pdfBoxDoc);
|
|
||||||
if (summaryData != null && summaryData.size() > 0) {
|
|
||||||
jsonOutput.set("SummaryData", summaryData);
|
|
||||||
}
|
|
||||||
|
|
||||||
// embeed files TODO size
|
// embeed files TODO size
|
||||||
if (catalog.getNames() != null) {
|
if (catalog.getNames() != null) {
|
||||||
PDEmbeddedFilesNameTreeNode efTree = catalog.getNames().getEmbeddedFiles();
|
PDEmbeddedFilesNameTreeNode efTree = catalog.getNames().getEmbeddedFiles();
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -6,133 +6,133 @@ language.direction=ltr
|
|||||||
|
|
||||||
# Language names for reuse throughout the application
|
# Language names for reuse throughout the application
|
||||||
lang.afr=Afrikaans
|
lang.afr=Afrikaans
|
||||||
lang.amh=Amharisch
|
lang.amh=Amharic
|
||||||
lang.ara=Arabisch
|
lang.ara=Arabic
|
||||||
lang.asm=Assamesisch
|
lang.asm=Assamese
|
||||||
lang.aze=Aserbaidschanisch
|
lang.aze=Azerbaijani
|
||||||
lang.aze_cyrl=Aserbaidschanisch (Kyrillisch)
|
lang.aze_cyrl=Azerbaijani (Cyrillic)
|
||||||
lang.bel=Weißrussisch
|
lang.bel=Belarusian
|
||||||
lang.ben=Bengalisch
|
lang.ben=Bengali
|
||||||
lang.bod=Tibetisch
|
lang.bod=Tibetan
|
||||||
lang.bos=Bosnisch
|
lang.bos=Bosnian
|
||||||
lang.bre=Bretonisch
|
lang.bre=Breton
|
||||||
lang.bul=Bulgarisch
|
lang.bul=Bulgarian
|
||||||
lang.cat=Katalanisch
|
lang.cat=Catalan
|
||||||
lang.ceb=Cebuano
|
lang.ceb=Cebuano
|
||||||
lang.ces=Tschechisch
|
lang.ces=Czech
|
||||||
lang.chi_sim=Chinesisch (vereinfacht)
|
lang.chi_sim=Chinese (Simplified)
|
||||||
lang.chi_sim_vert=Chinesisch (vereinfacht, vertikal)
|
lang.chi_sim_vert=Chinese (Simplified, Vertical)
|
||||||
lang.chi_tra=Chinesisch (traditionell)
|
lang.chi_tra=Chinese (Traditional)
|
||||||
lang.chi_tra_vert=Chinesisch (traditionell, vertikal)
|
lang.chi_tra_vert=Chinese (Traditional, Vertical)
|
||||||
lang.chr=Cherokee
|
lang.chr=Cherokee
|
||||||
lang.cos=Korsisch
|
lang.cos=Corsican
|
||||||
lang.cym=Walisisch
|
lang.cym=Welsh
|
||||||
lang.dan=Dänisch
|
lang.dan=Danish
|
||||||
lang.dan_frak=Dänisch (Fraktur)
|
lang.dan_frak=Danish (Fraktur)
|
||||||
lang.deu=Deutsch
|
lang.deu=German
|
||||||
lang.deu_frak=Deutsch (Fraktur)
|
lang.deu_frak=German (Fraktur)
|
||||||
lang.div=Divehi
|
lang.div=Divehi
|
||||||
lang.dzo=Dzongkha
|
lang.dzo=Dzongkha
|
||||||
lang.ell=Griechisch
|
lang.ell=Greek
|
||||||
lang.eng=Englisch
|
lang.eng=English
|
||||||
lang.enm=Englisch, Mittelenglisch (1100-1500)
|
lang.enm=English, Middle (1100-1500)
|
||||||
lang.epo=Esperanto
|
lang.epo=Esperanto
|
||||||
lang.equ=Mathe-/Gleichungserkennungsmodul
|
lang.equ=Math / equation detection module
|
||||||
lang.est=Estnisch
|
lang.est=Estonian
|
||||||
lang.eus=Baskisch
|
lang.eus=Basque
|
||||||
lang.fao=Färöisch
|
lang.fao=Faroese
|
||||||
lang.fas=Persisch
|
lang.fas=Persian
|
||||||
lang.fil=Philippinisch
|
lang.fil=Filipino
|
||||||
lang.fin=Finnisch
|
lang.fin=Finnish
|
||||||
lang.fra=Französisch
|
lang.fra=French
|
||||||
lang.frk=Fränkisch
|
lang.frk=Frankish
|
||||||
lang.frm=Französisch, Mittelfranzösisch (ca. 1400-1600)
|
lang.frm=French, Middle (ca.1400-1600)
|
||||||
lang.fry=Westfriesisch
|
lang.fry=Western Frisian
|
||||||
lang.gla=Schottisch-Gälisch
|
lang.gla=Scottish Gaelic
|
||||||
lang.gle=Irisch
|
lang.gle=Irish
|
||||||
lang.glg=Galizisch
|
lang.glg=Galician
|
||||||
lang.grc=Altgriechisch
|
lang.grc=Ancient Greek
|
||||||
lang.guj=Gujarati
|
lang.guj=Gujarati
|
||||||
lang.hat=Haitianisch, haitianisches Kreol
|
lang.hat=Haitian, Haitian Creole
|
||||||
lang.heb=Hebräisch
|
lang.heb=Hebrew
|
||||||
lang.hin=Hindi
|
lang.hin=Hindi
|
||||||
lang.hrv=Kroatisch
|
lang.hrv=Croatian
|
||||||
lang.hun=Ungarisch
|
lang.hun=Hungarian
|
||||||
lang.hye=Armenisch
|
lang.hye=Armenian
|
||||||
lang.iku=Inuktitut
|
lang.iku=Inuktitut
|
||||||
lang.ind=Indonesisch
|
lang.ind=Indonesian
|
||||||
lang.isl=Isländisch
|
lang.isl=Icelandic
|
||||||
lang.ita=Italienisch
|
lang.ita=Italian
|
||||||
lang.ita_old=Italienisch (Alt)
|
lang.ita_old=Italian (Old)
|
||||||
lang.jav=Javanesisch
|
lang.jav=Javanese
|
||||||
lang.jpn=Japanisch
|
lang.jpn=Japanese
|
||||||
lang.jpn_vert=Japanisch (vertikal)
|
lang.jpn_vert=Japanese (Vertical)
|
||||||
lang.kan=Kannada
|
lang.kan=Kannada
|
||||||
lang.kat=Georgisch
|
lang.kat=Georgian
|
||||||
lang.kat_old=Georgisch (Alt)
|
lang.kat_old=Georgian (Old)
|
||||||
lang.kaz=Kasachisch
|
lang.kaz=Kazakh
|
||||||
lang.khm=Zentral Khmer
|
lang.khm=Central Khmer
|
||||||
lang.kir=Kirgisisch
|
lang.kir=Kirghiz, Kyrgyz
|
||||||
lang.kmr=Nordkurdisch
|
lang.kmr=Northern Kurdish
|
||||||
lang.kor=Koreanisch
|
lang.kor=Korean
|
||||||
lang.kor_vert=Koreanisch (vertikal)
|
lang.kor_vert=Korean (Vertical)
|
||||||
lang.lao=Laotisch
|
lang.lao=Lao
|
||||||
lang.lat=Latein
|
lang.lat=Latin
|
||||||
lang.lav=Lettisch
|
lang.lav=Latvian
|
||||||
lang.lit=Litauisch
|
lang.lit=Lithuanian
|
||||||
lang.ltz=Luxemburgisch
|
lang.ltz=Luxembourgish
|
||||||
lang.mal=Malayalam
|
lang.mal=Malayalam
|
||||||
lang.mar=Marathi
|
lang.mar=Marathi
|
||||||
lang.mkd=Mazedonisch
|
lang.mkd=Macedonian
|
||||||
lang.mlt=Maltesisch
|
lang.mlt=Maltese
|
||||||
lang.mon=Mongolisch
|
lang.mon=Mongolian
|
||||||
lang.mri=Maori
|
lang.mri=Maori
|
||||||
lang.msa=Malaiisch
|
lang.msa=Malay
|
||||||
lang.mya=Burmesisch
|
lang.mya=Burmese
|
||||||
lang.nep=Nepali
|
lang.nep=Nepali
|
||||||
lang.nld=Niederländisch; Flämisch
|
lang.nld=Dutch; Flemish
|
||||||
lang.nor=Norwegisch
|
lang.nor=Norwegian
|
||||||
lang.oci=Okzitanisch (nach 1500)
|
lang.oci=Occitan (post 1500)
|
||||||
lang.ori=Oriya
|
lang.ori=Oriya
|
||||||
lang.osd=Orientierungs- und Skripterkennungsmodul
|
lang.osd=Orientation and script detection module
|
||||||
lang.pan=Panjabi, Punjabi
|
lang.pan=Panjabi, Punjabi
|
||||||
lang.pol=Polnisch
|
lang.pol=Polish
|
||||||
lang.por=Portugiesisch
|
lang.por=Portuguese
|
||||||
lang.pus=Puschtu, Paschtu
|
lang.pus=Pushto, Pashto
|
||||||
lang.que=Quechua
|
lang.que=Quechua
|
||||||
lang.ron=Rumänisch, Moldauisch, Moldauisch
|
lang.ron=Romanian, Moldavian, Moldovan
|
||||||
lang.rus=Russisch
|
lang.rus=Russian
|
||||||
lang.san=Sanskrit
|
lang.san=Sanskrit
|
||||||
lang.sin=Singhalesisch
|
lang.sin=Sinhala, Sinhalese
|
||||||
lang.slk=Slowakisch
|
lang.slk=Slovak
|
||||||
lang.slk_frak=Slowakisch (Fraktur)
|
lang.slk_frak=Slovak (Fraktur)
|
||||||
lang.slv=Slowenisch
|
lang.slv=Slovenian
|
||||||
lang.snd=Sindhi
|
lang.snd=Sindhi
|
||||||
lang.spa=Spanisch
|
lang.spa=Spanish
|
||||||
lang.spa_old=Spanisch (Alt)
|
lang.spa_old=Spanish (Old)
|
||||||
lang.sqi=Albanisch
|
lang.sqi=Albanian
|
||||||
lang.srp=Serbisch
|
lang.srp=Serbian
|
||||||
lang.srp_latn=Serbisch (Lateinisch)
|
lang.srp_latn=Serbian (Latin)
|
||||||
lang.sun=Sundanesisch
|
lang.sun=Sundanese
|
||||||
lang.swa=Suaheli
|
lang.swa=Swahili
|
||||||
lang.swe=Schwedisch
|
lang.swe=Swedish
|
||||||
lang.syr=Syrisch
|
lang.syr=Syriac
|
||||||
lang.tam=Tamil
|
lang.tam=Tamil
|
||||||
lang.tat=Tatarisch
|
lang.tat=Tatar
|
||||||
lang.tel=Telugu
|
lang.tel=Telugu
|
||||||
lang.tgk=Tadschikisch
|
lang.tgk=Tajik
|
||||||
lang.tgl=Tagalog
|
lang.tgl=Tagalog
|
||||||
lang.tha=Thailändisch
|
lang.tha=Thai
|
||||||
lang.tir=Tigrinya
|
lang.tir=Tigrinya
|
||||||
lang.ton=Tonga (Tonga-Inseln)
|
lang.ton=Tonga (Tonga Islands)
|
||||||
lang.tur=Türkisch
|
lang.tur=Turkish
|
||||||
lang.uig=Uigurisch
|
lang.uig=Uighur, Uyghur
|
||||||
lang.ukr=Ukrainisch
|
lang.ukr=Ukrainian
|
||||||
lang.urd=Urdu
|
lang.urd=Urdu
|
||||||
lang.uzb=Usbekisch
|
lang.uzb=Uzbek
|
||||||
lang.uzb_cyrl=Usbekisch (Kyrillisch)
|
lang.uzb_cyrl=Uzbek (Cyrillic)
|
||||||
lang.vie=Vietnamesisch
|
lang.vie=Vietnamese
|
||||||
lang.yid=Jiddisch
|
lang.yid=Yiddish
|
||||||
lang.yor=Yoruba
|
lang.yor=Yoruba
|
||||||
|
|
||||||
addPageNumbers.fontSize=Schriftgröße
|
addPageNumbers.fontSize=Schriftgröße
|
||||||
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=Diese Cookies sind für das
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analyse
|
cookieBanner.preferencesModal.analytics.title=Analyse
|
||||||
cookieBanner.preferencesModal.analytics.description=Diese Cookies helfen uns zu verstehen, wie unsere Tools genutzt werden, damit wir uns darauf konzentrieren können, die Funktionen zu entwickeln, die unserer Community am meisten am Herzen liegen. Seien Sie beruhigt – Stirling PDF kann und wird niemals den Inhalt der Dokumente verfolgen, mit denen Sie arbeiten.
|
cookieBanner.preferencesModal.analytics.description=Diese Cookies helfen uns zu verstehen, wie unsere Tools genutzt werden, damit wir uns darauf konzentrieren können, die Funktionen zu entwickeln, die unserer Community am meisten am Herzen liegen. Seien Sie beruhigt – Stirling PDF kann und wird niemals den Inhalt der Dokumente verfolgen, mit denen Sie arbeiten.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake-Scan-PDF
|
|
||||||
fakeScan.header=Fake-Scan-PDF
|
|
||||||
fakeScan.description=Erstellen Sie ein PDF, das so aussieht, als wäre es gescannt worden
|
|
||||||
fakeScan.selectPDF=Wählen Sie PDF:
|
|
||||||
fakeScan.quality=Scan-Qualität
|
|
||||||
fakeScan.quality.low=Niedrig
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=Hoch
|
|
||||||
fakeScan.rotation=Rotationswinkel
|
|
||||||
fakeScan.rotation.none=Keiner
|
|
||||||
fakeScan.rotation.slight=Leicht
|
|
||||||
fakeScan.rotation.moderate=Mäßig
|
|
||||||
fakeScan.rotation.severe=Schwer
|
|
||||||
fakeScan.submit=Erstellen Sie einen Fake-Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake-Scan-PDF
|
|
||||||
home.fakeScan.desc=Erstellen Sie ein PDF, das so aussieht, als wäre es gescannt worden
|
|
||||||
fakeScan.tags=scannen,simulieren,realistisch,konvertieren,fake,scan,pdf
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Aktivieren Sie erweiterte Scaneinstellungen
|
|
||||||
fakeScan.colorspace=Farbraum
|
|
||||||
fakeScan.colorspace.grayscale=Graustufen
|
|
||||||
fakeScan.colorspace.color=Farbe
|
|
||||||
fakeScan.border=Grenze (PX)
|
|
||||||
fakeScan.rotate=Grundrotation (Grad)
|
|
||||||
fakeScan.rotateVariance=Rotationsvarianz (Grad)
|
|
||||||
fakeScan.brightness=Helligkeit
|
|
||||||
fakeScan.contrast=Kontrast
|
|
||||||
fakeScan.blur=Verwischen
|
|
||||||
fakeScan.noise=Rauschen
|
|
||||||
fakeScan.yellowish=Gelblich (simulieren Sie altes Papier)
|
|
||||||
fakeScan.resolution=Auflösung (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -807,28 +807,6 @@ getPdfInfo.title=Get Info on PDF
|
|||||||
getPdfInfo.header=Get Info on PDF
|
getPdfInfo.header=Get Info on PDF
|
||||||
getPdfInfo.submit=Get Info
|
getPdfInfo.submit=Get Info
|
||||||
getPdfInfo.downloadJson=Download JSON
|
getPdfInfo.downloadJson=Download JSON
|
||||||
getPdfInfo.summary=PDF Summary
|
|
||||||
getPdfInfo.summary.encrypted=This PDF is encrypted so may face issues with some applications
|
|
||||||
getPdfInfo.summary.permissions=This PDF has {0} restricted permissions which may limit what you can do with it
|
|
||||||
getPdfInfo.summary.compliance=This PDF complies with the {0} standard
|
|
||||||
getPdfInfo.summary.basicInfo=Basic Information
|
|
||||||
getPdfInfo.summary.docInfo=Document Information
|
|
||||||
getPdfInfo.summary.encrypted.alert=Encrypted PDF - This document is password protected
|
|
||||||
getPdfInfo.summary.not.encrypted.alert=Unencrypted PDF - No password protection
|
|
||||||
getPdfInfo.summary.permissions.alert=Restricted Permissions - {0} actions are not allowed
|
|
||||||
getPdfInfo.summary.all.permissions.alert=All Permissions Allowed
|
|
||||||
getPdfInfo.summary.compliance.alert={0} Compliant
|
|
||||||
getPdfInfo.summary.no.compliance.alert=No Compliance Standards
|
|
||||||
getPdfInfo.summary.security.section=Security Status
|
|
||||||
getPdfInfo.section.BasicInfo=Basic Information about the PDF document including file size, page count, and language
|
|
||||||
getPdfInfo.section.Metadata=Document metadata including title, author, creation date and other document properties
|
|
||||||
getPdfInfo.section.DocumentInfo=Technical details about the PDF document structure and version
|
|
||||||
getPdfInfo.section.Compliancy=PDF standards compliance information (PDF/A, PDF/X, etc.)
|
|
||||||
getPdfInfo.section.Encryption=Security and encryption details of the document
|
|
||||||
getPdfInfo.section.Permissions=Document permission settings that control what actions can be performed
|
|
||||||
getPdfInfo.section.Other=Additional document components like bookmarks, layers, and embedded files
|
|
||||||
getPdfInfo.section.FormFields=Interactive form fields present in the document
|
|
||||||
getPdfInfo.section.PerPageInfo=Detailed information about each page in the document
|
|
||||||
|
|
||||||
|
|
||||||
#markdown-to-pdf
|
#markdown-to-pdf
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=Estas cookies son esenciales
|
|||||||
cookieBanner.preferencesModal.analytics.title=Análisis
|
cookieBanner.preferencesModal.analytics.title=Análisis
|
||||||
cookieBanner.preferencesModal.analytics.description=Estas cookies nos ayudan a entender cómo se están utilizando nuestras herramientas, para que podamos centrarnos en desarrollar las funciones que nuestra comunidad valora más. Tenga la seguridad de que Stirling PDF no puede y nunca podrá rastrear el contenido de los documentos con los que trabaja.
|
cookieBanner.preferencesModal.analytics.description=Estas cookies nos ayudan a entender cómo se están utilizando nuestras herramientas, para que podamos centrarnos en desarrollar las funciones que nuestra comunidad valora más. Tenga la seguridad de que Stirling PDF no puede y nunca podrá rastrear el contenido de los documentos con los que trabaja.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=Ezek a sütik elengedhetetle
|
|||||||
cookieBanner.preferencesModal.analytics.title=Adatelemzések
|
cookieBanner.preferencesModal.analytics.title=Adatelemzések
|
||||||
cookieBanner.preferencesModal.analytics.description=Ezek a sütik segítenek megérteni, hogyan használják eszközeinket, így a közösségünk által leginkább értékelt funkciókra összpontosíthatunk. Nyugodt lehet-a Stirling PDF nem képes és soha nem is fog nyomon követni az Ön által használt dokumentumok tartalmát.
|
cookieBanner.preferencesModal.analytics.description=Ezek a sütik segítenek megérteni, hogyan használják eszközeinket, így a közösségünk által leginkább értékelt funkciókra összpontosíthatunk. Nyugodt lehet-a Stirling PDF nem képes és soha nem is fog nyomon követni az Ön által használt dokumentumok tartalmát.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=Questi cookie sono essenzial
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=Questi cookie ci aiutano a capire come vengono utilizzati i nostri strumenti, così possiamo concentrarci sullo sviluppo delle funzionalità che la nostra community apprezza di più. Non preoccuparti: Stirling PDF non può e non traccerà mai il contenuto dei documenti con cui lavori.
|
cookieBanner.preferencesModal.analytics.description=Questi cookie ci aiutano a capire come vengono utilizzati i nostri strumenti, così possiamo concentrarci sullo sviluppo delle funzionalità che la nostra community apprezza di più. Non preoccuparti: Stirling PDF non può e non traccerà mai il contenuto dei documenti con cui lavori.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Falsa scansione
|
|
||||||
fakeScan.header=Falsa scansione
|
|
||||||
fakeScan.description=Crea un PDF che sembra scansionato
|
|
||||||
fakeScan.selectPDF=Seleziona PDF:
|
|
||||||
fakeScan.quality=Qualità di scansione
|
|
||||||
fakeScan.quality.low=Bassa
|
|
||||||
fakeScan.quality.medium=Media
|
|
||||||
fakeScan.quality.high=Alta
|
|
||||||
fakeScan.rotation=Angolo di rotazione
|
|
||||||
fakeScan.rotation.none=Nessuno
|
|
||||||
fakeScan.rotation.slight=Lieve
|
|
||||||
fakeScan.rotation.moderate=Moderato
|
|
||||||
fakeScan.rotation.severe=Severo
|
|
||||||
fakeScan.submit=Crea una falsa scansione
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Falsa scansione
|
|
||||||
home.fakeScan.desc=Crea un PDF che sembra scansionato
|
|
||||||
fakeScan.tags=scansiona, simula, realistico, converti
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Abilita impostazioni di scansione avanzate
|
|
||||||
fakeScan.colorspace=Spazio colore
|
|
||||||
fakeScan.colorspace.grayscale=Scala di grigi
|
|
||||||
fakeScan.colorspace.color=Colore
|
|
||||||
fakeScan.border=Bordo (px)
|
|
||||||
fakeScan.rotate=Rotazione di base (gradi)
|
|
||||||
fakeScan.rotateVariance=Varianza di rotazione (gradi)
|
|
||||||
fakeScan.brightness=Luminosità
|
|
||||||
fakeScan.contrast=Contrasto
|
|
||||||
fakeScan.blur=Sfocatura
|
|
||||||
fakeScan.noise=Rumore
|
|
||||||
fakeScan.yellowish=Giallastro (simula carta vecchia)
|
|
||||||
fakeScan.resolution=Risoluzione (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=これらのCookieはウェ
|
|||||||
cookieBanner.preferencesModal.analytics.title=分析
|
cookieBanner.preferencesModal.analytics.title=分析
|
||||||
cookieBanner.preferencesModal.analytics.description=これらのCookieはツールがどのように使用されているかを把握するのに役立ちます。これによりコミュニティが最も重視する機能の開発に集中することができます。ご安心ください。Stirling PDFはお客様が操作するドキュメントの内容を追跡することは決してありません。
|
cookieBanner.preferencesModal.analytics.description=これらのCookieはツールがどのように使用されているかを把握するのに役立ちます。これによりコミュニティが最も重視する機能の開発に集中することができます。ご安心ください。Stirling PDFはお客様が操作するドキュメントの内容を追跡することは決してありません。
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=വെബ്സൈറ്റ
|
|||||||
cookieBanner.preferencesModal.analytics.title=അനലിറ്റിക്സ്
|
cookieBanner.preferencesModal.analytics.title=അനലിറ്റിക്സ്
|
||||||
cookieBanner.preferencesModal.analytics.description=ഞങ്ങളുടെ ടൂളുകൾ എങ്ങനെ ഉപയോഗിക്കുന്നുവെന്ന് മനസ്സിലാക്കാൻ ഈ കുക്കികൾ ഞങ്ങളെ സഹായിക്കുന്നു, അതിനാൽ ഞങ്ങളുടെ കമ്മ്യൂണിറ്റി ഏറ്റവും കൂടുതൽ വിലമതിക്കുന്ന ഫീച്ചറുകൾ നിർമ്മിക്കുന്നതിൽ ഞങ്ങൾക്ക് ശ്രദ്ധ കേന്ദ്രീകരിക്കാൻ കഴിയും. ഉറപ്പാക്കുക—സ്റ്റെർലിംഗ് PDF-ന് നിങ്ങൾ പ്രവർത്തിക്കുന്ന പ്രമാണങ്ങളുടെ ഉള്ളടക്കം ട്രാക്ക് ചെയ്യാൻ കഴിയില്ല, ഒരിക്കലും കഴിയില്ല.
|
cookieBanner.preferencesModal.analytics.description=ഞങ്ങളുടെ ടൂളുകൾ എങ്ങനെ ഉപയോഗിക്കുന്നുവെന്ന് മനസ്സിലാക്കാൻ ഈ കുക്കികൾ ഞങ്ങളെ സഹായിക്കുന്നു, അതിനാൽ ഞങ്ങളുടെ കമ്മ്യൂണിറ്റി ഏറ്റവും കൂടുതൽ വിലമതിക്കുന്ന ഫീച്ചറുകൾ നിർമ്മിക്കുന്നതിൽ ഞങ്ങൾക്ക് ശ്രദ്ധ കേന്ദ്രീകരിക്കാൻ കഴിയും. ഉറപ്പാക്കുക—സ്റ്റെർലിംഗ് PDF-ന് നിങ്ങൾ പ്രവർത്തിക്കുന്ന പ്രമാണങ്ങളുടെ ഉള്ളടക്കം ട്രാക്ക് ചെയ്യാൻ കഴിയില്ല, ഒരിക്കലും കഴിയില്ല.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=Estes cookies são essenciai
|
|||||||
cookieBanner.preferencesModal.analytics.title=Cookies Analíticos
|
cookieBanner.preferencesModal.analytics.title=Cookies Analíticos
|
||||||
cookieBanner.preferencesModal.analytics.description=Estes cookies nos ajudam a entender como nossas ferramentas estão sendo utilizadas, para que possamos nos concentrar na construção dos recursos que nossa comunidade mais valoriza. Fique tranquilo: o Stirling PDF não pode e nunca rastreará o conteúdo dos documentos com os quais você manipula.
|
cookieBanner.preferencesModal.analytics.description=Estes cookies nos ajudam a entender como nossas ferramentas estão sendo utilizadas, para que possamos nos concentrar na construção dos recursos que nossa comunidade mais valoriza. Fique tranquilo: o Stirling PDF não pode e nunca rastreará o conteúdo dos documentos com os quais você manipula.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=Эти файлы cookie н
|
|||||||
cookieBanner.preferencesModal.analytics.title=Аналитика
|
cookieBanner.preferencesModal.analytics.title=Аналитика
|
||||||
cookieBanner.preferencesModal.analytics.description=Эти файлы cookie помогают нам понять, как используются наши инструменты, чтобы мы могли сосредоточиться на создании функций, которые ценит наше сообщество. Будьте уверены — Stirling PDF не может и никогда не будет отслеживать содержимое документов, с которыми вы работаете.
|
cookieBanner.preferencesModal.analytics.description=Эти файлы cookie помогают нам понять, как используются наши инструменты, чтобы мы могли сосредоточиться на создании функций, которые ценит наше сообщество. Будьте уверены — Stirling PDF не может и никогда не будет отслеживать содержимое документов, с которыми вы работаете.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=Bu çerezler, web sitesinin
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analitik
|
cookieBanner.preferencesModal.analytics.title=Analitik
|
||||||
cookieBanner.preferencesModal.analytics.description=Bu çerezler, araçlarımızın nasıl kullanıldığını anlamamıza yardımcı olur, böylece topluluğumuzun en çok değer verdiği özellikleri geliştirmeye odaklanabiliriz. İçiniz rahat olsun — Stirling PDF, belgelerinizin içeriğini asla takip etmez ve etmeyecektir.
|
cookieBanner.preferencesModal.analytics.description=Bu çerezler, araçlarımızın nasıl kullanıldığını anlamamıza yardımcı olur, böylece topluluğumuzun en çok değer verdiği özellikleri geliştirmeye odaklanabiliriz. İçiniz rahat olsun — Stirling PDF, belgelerinizin içeriğini asla takip etmez ve etmeyecektir.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=Ці файли cookie є н
|
|||||||
cookieBanner.preferencesModal.analytics.title=Аналітика
|
cookieBanner.preferencesModal.analytics.title=Аналітика
|
||||||
cookieBanner.preferencesModal.analytics.description=Ці файли cookie допомагають нам зрозуміти, як використовуються наші інструменти, щоб ми могли зосередитися на створенні функцій, які найбільше цінує наша спільнота. Будьте впевнені — Stirling PDF не може і ніколи не буде відстежувати вміст документів, з якими ви працюєте.
|
cookieBanner.preferencesModal.analytics.description=Ці файли cookie допомагають нам зрозуміти, як використовуються наші інструменти, щоб ми могли зосередитися на створенні функцій, які найбільше цінує наша спільнота. Будьте впевнені — Stirling PDF не може і ніколи не буде відстежувати вміст документів, з якими ви працюєте.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
|||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=这些Cookie对网站基础
|
|||||||
cookieBanner.preferencesModal.analytics.title=分析统计
|
cookieBanner.preferencesModal.analytics.title=分析统计
|
||||||
cookieBanner.preferencesModal.analytics.description=这些Cookie帮助我们分析工具使用情况,以便聚焦开发用户最需要的功能。再次强调:Stirling PDF绝不会追踪您处理的文档内容。
|
cookieBanner.preferencesModal.analytics.description=这些Cookie帮助我们分析工具使用情况,以便聚焦开发用户最需要的功能。再次强调:Stirling PDF绝不会追踪您处理的文档内容。
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -1569,38 +1569,3 @@ cookieBanner.preferencesModal.necessary.description=這些 Cookies 對網站正
|
|||||||
cookieBanner.preferencesModal.analytics.title=分析 Cookies
|
cookieBanner.preferencesModal.analytics.title=分析 Cookies
|
||||||
cookieBanner.preferencesModal.analytics.description=這些 Cookies 幫助我們分析您如何使用我們的工具,好讓我們能專注在構建社群最重視的功能。儘管放心—— Stirling PDF 不會且永不追蹤您的文件
|
cookieBanner.preferencesModal.analytics.description=這些 Cookies 幫助我們分析您如何使用我們的工具,好讓我們能專注在構建社群最重視的功能。儘管放心—— Stirling PDF 不會且永不追蹤您的文件
|
||||||
|
|
||||||
#fakeScan
|
|
||||||
fakeScan.title=Fake Scan
|
|
||||||
fakeScan.header=Fake Scan
|
|
||||||
fakeScan.description=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.selectPDF=Select PDF:
|
|
||||||
fakeScan.quality=Scan Quality
|
|
||||||
fakeScan.quality.low=Low
|
|
||||||
fakeScan.quality.medium=Medium
|
|
||||||
fakeScan.quality.high=High
|
|
||||||
fakeScan.rotation=Rotation Angle
|
|
||||||
fakeScan.rotation.none=None
|
|
||||||
fakeScan.rotation.slight=Slight
|
|
||||||
fakeScan.rotation.moderate=Moderate
|
|
||||||
fakeScan.rotation.severe=Severe
|
|
||||||
fakeScan.submit=Create Fake Scan
|
|
||||||
|
|
||||||
#home.fakeScan
|
|
||||||
home.fakeScan.title=Fake Scan
|
|
||||||
home.fakeScan.desc=Create a PDF that looks like it was scanned
|
|
||||||
fakeScan.tags=scan,simulate,realistic,convert
|
|
||||||
|
|
||||||
# FakeScan advanced settings (frontend)
|
|
||||||
fakeScan.advancedSettings=Enable Advanced Scan Settings
|
|
||||||
fakeScan.colorspace=Colorspace
|
|
||||||
fakeScan.colorspace.grayscale=Grayscale
|
|
||||||
fakeScan.colorspace.color=Color
|
|
||||||
fakeScan.border=Border (px)
|
|
||||||
fakeScan.rotate=Base Rotation (degrees)
|
|
||||||
fakeScan.rotateVariance=Rotation Variance (degrees)
|
|
||||||
fakeScan.brightness=Brightness
|
|
||||||
fakeScan.contrast=Contrast
|
|
||||||
fakeScan.blur=Blur
|
|
||||||
fakeScan.noise=Noise
|
|
||||||
fakeScan.yellowish=Yellowish (simulate old paper)
|
|
||||||
fakeScan.resolution=Resolution (DPI)
|
|
||||||
|
@ -42,6 +42,13 @@
|
|||||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "com.fasterxml.jackson.core:jackson-annotations",
|
||||||
|
"moduleUrl": "https://github.com/FasterXML/jackson",
|
||||||
|
"moduleVersion": "2.18.3",
|
||||||
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "com.fasterxml.jackson.core:jackson-annotations",
|
"moduleName": "com.fasterxml.jackson.core:jackson-annotations",
|
||||||
"moduleUrl": "https://github.com/FasterXML/jackson",
|
"moduleUrl": "https://github.com/FasterXML/jackson",
|
||||||
@ -49,6 +56,13 @@
|
|||||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "com.fasterxml.jackson.core:jackson-core",
|
||||||
|
"moduleUrl": "https://github.com/FasterXML/jackson-core",
|
||||||
|
"moduleVersion": "2.18.3",
|
||||||
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "com.fasterxml.jackson.core:jackson-core",
|
"moduleName": "com.fasterxml.jackson.core:jackson-core",
|
||||||
"moduleUrl": "https://github.com/FasterXML/jackson-core",
|
"moduleUrl": "https://github.com/FasterXML/jackson-core",
|
||||||
@ -56,6 +70,13 @@
|
|||||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "com.fasterxml.jackson.core:jackson-databind",
|
||||||
|
"moduleUrl": "https://github.com/FasterXML/jackson",
|
||||||
|
"moduleVersion": "2.18.3",
|
||||||
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "com.fasterxml.jackson.core:jackson-databind",
|
"moduleName": "com.fasterxml.jackson.core:jackson-databind",
|
||||||
"moduleUrl": "https://github.com/FasterXML/jackson",
|
"moduleUrl": "https://github.com/FasterXML/jackson",
|
||||||
@ -63,6 +84,13 @@
|
|||||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml",
|
||||||
|
"moduleUrl": "https://github.com/FasterXML/jackson-dataformats-text",
|
||||||
|
"moduleVersion": "2.18.3",
|
||||||
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml",
|
"moduleName": "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml",
|
||||||
"moduleUrl": "https://github.com/FasterXML/jackson-dataformats-text",
|
"moduleUrl": "https://github.com/FasterXML/jackson-dataformats-text",
|
||||||
@ -70,6 +98,13 @@
|
|||||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "com.fasterxml.jackson.datatype:jackson-datatype-jdk8",
|
||||||
|
"moduleUrl": "https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8",
|
||||||
|
"moduleVersion": "2.18.3",
|
||||||
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "com.fasterxml.jackson.datatype:jackson-datatype-jdk8",
|
"moduleName": "com.fasterxml.jackson.datatype:jackson-datatype-jdk8",
|
||||||
"moduleUrl": "https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8",
|
"moduleUrl": "https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8",
|
||||||
@ -77,6 +112,13 @@
|
|||||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "com.fasterxml.jackson.datatype:jackson-datatype-jsr310",
|
||||||
|
"moduleUrl": "https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310",
|
||||||
|
"moduleVersion": "2.18.3",
|
||||||
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "com.fasterxml.jackson.datatype:jackson-datatype-jsr310",
|
"moduleName": "com.fasterxml.jackson.datatype:jackson-datatype-jsr310",
|
||||||
"moduleUrl": "https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310",
|
"moduleUrl": "https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310",
|
||||||
@ -105,6 +147,13 @@
|
|||||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "com.fasterxml.jackson.module:jackson-module-parameter-names",
|
||||||
|
"moduleUrl": "https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names",
|
||||||
|
"moduleVersion": "2.18.3",
|
||||||
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "com.fasterxml.jackson.module:jackson-module-parameter-names",
|
"moduleName": "com.fasterxml.jackson.module:jackson-module-parameter-names",
|
||||||
"moduleUrl": "https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names",
|
"moduleUrl": "https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names",
|
||||||
@ -112,6 +161,13 @@
|
|||||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "com.fasterxml.jackson:jackson-bom",
|
||||||
|
"moduleUrl": "https://github.com/FasterXML/jackson-bom",
|
||||||
|
"moduleVersion": "2.18.3",
|
||||||
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "com.fasterxml.jackson:jackson-bom",
|
"moduleName": "com.fasterxml.jackson:jackson-bom",
|
||||||
"moduleUrl": "https://github.com/FasterXML/jackson-bom",
|
"moduleUrl": "https://github.com/FasterXML/jackson-bom",
|
||||||
@ -550,6 +606,13 @@
|
|||||||
"moduleLicense": "MIT License",
|
"moduleLicense": "MIT License",
|
||||||
"moduleLicenseUrl": "http://www.opensource.org/licenses/mit-license.php"
|
"moduleLicenseUrl": "http://www.opensource.org/licenses/mit-license.php"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "io.micrometer:micrometer-commons",
|
||||||
|
"moduleUrl": "https://github.com/micrometer-metrics/micrometer",
|
||||||
|
"moduleVersion": "1.14.6",
|
||||||
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "io.micrometer:micrometer-commons",
|
"moduleName": "io.micrometer:micrometer-commons",
|
||||||
"moduleUrl": "https://github.com/micrometer-metrics/micrometer",
|
"moduleUrl": "https://github.com/micrometer-metrics/micrometer",
|
||||||
@ -571,6 +634,13 @@
|
|||||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "io.micrometer:micrometer-observation",
|
||||||
|
"moduleUrl": "https://github.com/micrometer-metrics/micrometer",
|
||||||
|
"moduleVersion": "1.14.6",
|
||||||
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "io.micrometer:micrometer-observation",
|
"moduleName": "io.micrometer:micrometer-observation",
|
||||||
"moduleUrl": "https://github.com/micrometer-metrics/micrometer",
|
"moduleUrl": "https://github.com/micrometer-metrics/micrometer",
|
||||||
@ -627,6 +697,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "io.swagger.core.v3:swagger-annotations-jakarta",
|
||||||
|
"moduleUrl": "https://github.com/swagger-api/swagger-core/modules/swagger-annotations",
|
||||||
|
"moduleVersion": "2.2.29",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "io.swagger.core.v3:swagger-annotations-jakarta",
|
"moduleName": "io.swagger.core.v3:swagger-annotations-jakarta",
|
||||||
"moduleUrl": "https://github.com/swagger-api/swagger-core/modules/swagger-annotations",
|
"moduleUrl": "https://github.com/swagger-api/swagger-core/modules/swagger-annotations",
|
||||||
@ -634,6 +711,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "io.swagger.core.v3:swagger-core-jakarta",
|
||||||
|
"moduleUrl": "https://github.com/swagger-api/swagger-core/modules/swagger-core",
|
||||||
|
"moduleVersion": "2.2.29",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "io.swagger.core.v3:swagger-core-jakarta",
|
"moduleName": "io.swagger.core.v3:swagger-core-jakarta",
|
||||||
"moduleUrl": "https://github.com/swagger-api/swagger-core/modules/swagger-core",
|
"moduleUrl": "https://github.com/swagger-api/swagger-core/modules/swagger-core",
|
||||||
@ -641,6 +725,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "io.swagger.core.v3:swagger-models-jakarta",
|
||||||
|
"moduleUrl": "https://github.com/swagger-api/swagger-core/modules/swagger-models",
|
||||||
|
"moduleVersion": "2.2.29",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "io.swagger.core.v3:swagger-models-jakarta",
|
"moduleName": "io.swagger.core.v3:swagger-models-jakarta",
|
||||||
"moduleUrl": "https://github.com/swagger-api/swagger-core/modules/swagger-models",
|
"moduleUrl": "https://github.com/swagger-api/swagger-core/modules/swagger-models",
|
||||||
@ -704,13 +795,6 @@
|
|||||||
"moduleLicense": "GPL2 w/ CPE",
|
"moduleLicense": "GPL2 w/ CPE",
|
||||||
"moduleLicenseUrl": "https://www.gnu.org/software/classpath/license.html"
|
"moduleLicenseUrl": "https://www.gnu.org/software/classpath/license.html"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"moduleName": "jakarta.servlet:jakarta.servlet-api",
|
|
||||||
"moduleUrl": "https://www.eclipse.org",
|
|
||||||
"moduleVersion": "6.1.0",
|
|
||||||
"moduleLicense": "GPL2 w/ CPE",
|
|
||||||
"moduleLicenseUrl": "https://www.gnu.org/software/classpath/license.html"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"moduleName": "jakarta.transaction:jakarta.transaction-api",
|
"moduleName": "jakarta.transaction:jakarta.transaction-api",
|
||||||
"moduleUrl": "https://projects.eclipse.org/projects/ee4j.jta",
|
"moduleUrl": "https://projects.eclipse.org/projects/ee4j.jta",
|
||||||
@ -770,14 +854,14 @@
|
|||||||
{
|
{
|
||||||
"moduleName": "me.friwi:jcef-api",
|
"moduleName": "me.friwi:jcef-api",
|
||||||
"moduleUrl": "https://bitbucket.org/chromiumembedded/java-cef/",
|
"moduleUrl": "https://bitbucket.org/chromiumembedded/java-cef/",
|
||||||
"moduleVersion": "jcef-ca49ada+cef-135.0.20+ge7de5c3+chromium-135.0.7049.85",
|
"moduleVersion": "jcef-1770317+cef-132.3.1+g144febe+chromium-132.0.6834.83",
|
||||||
"moduleLicense": "BSD License",
|
"moduleLicense": "BSD License",
|
||||||
"moduleLicenseUrl": "https://bitbucket.org/chromiumembedded/java-cef/src/master/LICENSE.txt"
|
"moduleLicenseUrl": "https://bitbucket.org/chromiumembedded/java-cef/src/master/LICENSE.txt"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "me.friwi:jcefmaven",
|
"moduleName": "me.friwi:jcefmaven",
|
||||||
"moduleUrl": "https://github.com/jcefmaven/jcefmaven/",
|
"moduleUrl": "https://github.com/jcefmaven/jcefmaven/",
|
||||||
"moduleVersion": "135.0.20",
|
"moduleVersion": "132.3.1",
|
||||||
"moduleLicense": "Apache-2.0 License",
|
"moduleLicense": "Apache-2.0 License",
|
||||||
"moduleLicenseUrl": "https://github.com/jcefmaven/jcefmaven/blob/master/LICENSE"
|
"moduleLicenseUrl": "https://github.com/jcefmaven/jcefmaven/blob/master/LICENSE"
|
||||||
},
|
},
|
||||||
@ -995,7 +1079,7 @@
|
|||||||
{
|
{
|
||||||
"moduleName": "org.checkerframework:checker-qual",
|
"moduleName": "org.checkerframework:checker-qual",
|
||||||
"moduleUrl": "https://checkerframework.org/",
|
"moduleUrl": "https://checkerframework.org/",
|
||||||
"moduleVersion": "3.49.3",
|
"moduleVersion": "3.48.3",
|
||||||
"moduleLicense": "The MIT License",
|
"moduleLicense": "The MIT License",
|
||||||
"moduleLicenseUrl": "http://opensource.org/licenses/MIT"
|
"moduleLicenseUrl": "http://opensource.org/licenses/MIT"
|
||||||
},
|
},
|
||||||
@ -1423,7 +1507,7 @@
|
|||||||
{
|
{
|
||||||
"moduleName": "org.postgresql:postgresql",
|
"moduleName": "org.postgresql:postgresql",
|
||||||
"moduleUrl": "https://jdbc.postgresql.org/",
|
"moduleUrl": "https://jdbc.postgresql.org/",
|
||||||
"moduleVersion": "42.7.6",
|
"moduleVersion": "42.7.5",
|
||||||
"moduleLicense": "BSD-2-Clause",
|
"moduleLicense": "BSD-2-Clause",
|
||||||
"moduleLicenseUrl": "https://jdbc.postgresql.org/about/license.html"
|
"moduleLicenseUrl": "https://jdbc.postgresql.org/about/license.html"
|
||||||
},
|
},
|
||||||
@ -1448,24 +1532,49 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springdoc:springdoc-openapi-starter-common",
|
||||||
|
"moduleVersion": "2.8.6",
|
||||||
|
"moduleLicense": "The Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springdoc:springdoc-openapi-starter-common",
|
"moduleName": "org.springdoc:springdoc-openapi-starter-common",
|
||||||
"moduleVersion": "2.8.8",
|
"moduleVersion": "2.8.8",
|
||||||
"moduleLicense": "The Apache License, Version 2.0",
|
"moduleLicense": "The Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springdoc:springdoc-openapi-starter-webmvc-api",
|
||||||
|
"moduleVersion": "2.8.6",
|
||||||
|
"moduleLicense": "The Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springdoc:springdoc-openapi-starter-webmvc-api",
|
"moduleName": "org.springdoc:springdoc-openapi-starter-webmvc-api",
|
||||||
"moduleVersion": "2.8.8",
|
"moduleVersion": "2.8.8",
|
||||||
"moduleLicense": "The Apache License, Version 2.0",
|
"moduleLicense": "The Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springdoc:springdoc-openapi-starter-webmvc-ui",
|
||||||
|
"moduleVersion": "2.8.6",
|
||||||
|
"moduleLicense": "The Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springdoc:springdoc-openapi-starter-webmvc-ui",
|
"moduleName": "org.springdoc:springdoc-openapi-starter-webmvc-ui",
|
||||||
"moduleVersion": "2.8.8",
|
"moduleVersion": "2.8.8",
|
||||||
"moduleLicense": "The Apache License, Version 2.0",
|
"moduleLicense": "The Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springframework.boot:spring-boot",
|
||||||
|
"moduleUrl": "https://spring.io/projects/spring-boot",
|
||||||
|
"moduleVersion": "3.4.5",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springframework.boot:spring-boot",
|
"moduleName": "org.springframework.boot:spring-boot",
|
||||||
"moduleUrl": "https://spring.io/projects/spring-boot",
|
"moduleUrl": "https://spring.io/projects/spring-boot",
|
||||||
@ -1487,6 +1596,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springframework.boot:spring-boot-autoconfigure",
|
||||||
|
"moduleUrl": "https://spring.io/projects/spring-boot",
|
||||||
|
"moduleVersion": "3.4.5",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springframework.boot:spring-boot-autoconfigure",
|
"moduleName": "org.springframework.boot:spring-boot-autoconfigure",
|
||||||
"moduleUrl": "https://spring.io/projects/spring-boot",
|
"moduleUrl": "https://spring.io/projects/spring-boot",
|
||||||
@ -1501,6 +1617,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springframework.boot:spring-boot-starter",
|
||||||
|
"moduleUrl": "https://spring.io/projects/spring-boot",
|
||||||
|
"moduleVersion": "3.4.5",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springframework.boot:spring-boot-starter",
|
"moduleName": "org.springframework.boot:spring-boot-starter",
|
||||||
"moduleUrl": "https://spring.io/projects/spring-boot",
|
"moduleUrl": "https://spring.io/projects/spring-boot",
|
||||||
@ -1536,6 +1659,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springframework.boot:spring-boot-starter-json",
|
||||||
|
"moduleUrl": "https://spring.io/projects/spring-boot",
|
||||||
|
"moduleVersion": "3.4.5",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springframework.boot:spring-boot-starter-json",
|
"moduleName": "org.springframework.boot:spring-boot-starter-json",
|
||||||
"moduleUrl": "https://spring.io/projects/spring-boot",
|
"moduleUrl": "https://spring.io/projects/spring-boot",
|
||||||
@ -1543,6 +1673,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springframework.boot:spring-boot-starter-logging",
|
||||||
|
"moduleUrl": "https://spring.io/projects/spring-boot",
|
||||||
|
"moduleVersion": "3.4.5",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springframework.boot:spring-boot-starter-logging",
|
"moduleName": "org.springframework.boot:spring-boot-starter-logging",
|
||||||
"moduleUrl": "https://spring.io/projects/spring-boot",
|
"moduleUrl": "https://spring.io/projects/spring-boot",
|
||||||
@ -1571,6 +1708,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springframework.boot:spring-boot-starter-thymeleaf",
|
||||||
|
"moduleUrl": "https://spring.io/projects/spring-boot",
|
||||||
|
"moduleVersion": "3.4.5",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springframework.boot:spring-boot-starter-thymeleaf",
|
"moduleName": "org.springframework.boot:spring-boot-starter-thymeleaf",
|
||||||
"moduleUrl": "https://spring.io/projects/spring-boot",
|
"moduleUrl": "https://spring.io/projects/spring-boot",
|
||||||
@ -1585,6 +1729,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springframework.boot:spring-boot-starter-web",
|
||||||
|
"moduleUrl": "https://spring.io/projects/spring-boot",
|
||||||
|
"moduleVersion": "3.4.5",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springframework.boot:spring-boot-starter-web",
|
"moduleName": "org.springframework.boot:spring-boot-starter-web",
|
||||||
"moduleUrl": "https://spring.io/projects/spring-boot",
|
"moduleUrl": "https://spring.io/projects/spring-boot",
|
||||||
@ -1669,6 +1820,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springframework:spring-aop",
|
||||||
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
|
"moduleVersion": "6.2.6",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springframework:spring-aop",
|
"moduleName": "org.springframework:spring-aop",
|
||||||
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
@ -1683,6 +1841,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springframework:spring-beans",
|
||||||
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
|
"moduleVersion": "6.2.6",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springframework:spring-beans",
|
"moduleName": "org.springframework:spring-beans",
|
||||||
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
@ -1690,6 +1855,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springframework:spring-context",
|
||||||
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
|
"moduleVersion": "6.2.6",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springframework:spring-context",
|
"moduleName": "org.springframework:spring-context",
|
||||||
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
@ -1704,6 +1876,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springframework:spring-core",
|
||||||
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
|
"moduleVersion": "6.2.6",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springframework:spring-core",
|
"moduleName": "org.springframework:spring-core",
|
||||||
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
@ -1711,6 +1890,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springframework:spring-expression",
|
||||||
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
|
"moduleVersion": "6.2.6",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springframework:spring-expression",
|
"moduleName": "org.springframework:spring-expression",
|
||||||
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
@ -1718,6 +1904,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springframework:spring-jcl",
|
||||||
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
|
"moduleVersion": "6.2.6",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springframework:spring-jcl",
|
"moduleName": "org.springframework:spring-jcl",
|
||||||
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
@ -1746,6 +1939,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springframework:spring-web",
|
||||||
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
|
"moduleVersion": "6.2.6",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springframework:spring-web",
|
"moduleName": "org.springframework:spring-web",
|
||||||
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
@ -1753,6 +1953,13 @@
|
|||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.springframework:spring-webmvc",
|
||||||
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
|
"moduleVersion": "6.2.6",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.springframework:spring-webmvc",
|
"moduleName": "org.springframework:spring-webmvc",
|
||||||
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
"moduleUrl": "https://github.com/spring-projects/spring-framework",
|
||||||
@ -1791,12 +1998,25 @@
|
|||||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.webjars:swagger-ui",
|
||||||
|
"moduleUrl": "https://www.webjars.org",
|
||||||
|
"moduleVersion": "5.20.1",
|
||||||
|
"moduleLicense": "Apache-2.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.webjars:swagger-ui",
|
"moduleName": "org.webjars:swagger-ui",
|
||||||
"moduleUrl": "https://www.webjars.org",
|
"moduleUrl": "https://www.webjars.org",
|
||||||
"moduleVersion": "5.21.0",
|
"moduleVersion": "5.21.0",
|
||||||
"moduleLicense": "Apache-2.0"
|
"moduleLicense": "Apache-2.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.webjars:webjars-locator-lite",
|
||||||
|
"moduleUrl": "https://webjars.org",
|
||||||
|
"moduleVersion": "1.0.1",
|
||||||
|
"moduleLicense": "MIT",
|
||||||
|
"moduleLicenseUrl": "https://github.com/webjars/webjars-locator-lite/blob/main/LICENSE.md"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.webjars:webjars-locator-lite",
|
"moduleName": "org.webjars:webjars-locator-lite",
|
||||||
"moduleUrl": "https://webjars.org",
|
"moduleUrl": "https://webjars.org",
|
||||||
@ -1804,6 +2024,13 @@
|
|||||||
"moduleLicense": "MIT",
|
"moduleLicense": "MIT",
|
||||||
"moduleLicenseUrl": "https://github.com/webjars/webjars-locator-lite/blob/main/LICENSE.md"
|
"moduleLicenseUrl": "https://github.com/webjars/webjars-locator-lite/blob/main/LICENSE.md"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"moduleName": "org.yaml:snakeyaml",
|
||||||
|
"moduleUrl": "https://bitbucket.org/snakeyaml/snakeyaml",
|
||||||
|
"moduleVersion": "2.3",
|
||||||
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "org.yaml:snakeyaml",
|
"moduleName": "org.yaml:snakeyaml",
|
||||||
"moduleUrl": "https://bitbucket.org/snakeyaml/snakeyaml",
|
"moduleUrl": "https://bitbucket.org/snakeyaml/snakeyaml",
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<br><br>
|
<br><br>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
<div class="col-md-7 bg-card">
|
<div class="col-md-6 bg-card">
|
||||||
<div class="tool-header">
|
<div class="tool-header">
|
||||||
<span class="material-symbols-rounded tool-header-icon other">info</span>
|
<span class="material-symbols-rounded tool-header-icon other">info</span>
|
||||||
<span class="tool-header-text" th:text="#{getPdfInfo.header}"></span>
|
<span class="tool-header-text" th:text="#{getPdfInfo.header}"></span>
|
||||||
@ -22,82 +22,6 @@
|
|||||||
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{getPdfInfo.submit}"></button>
|
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{getPdfInfo.submit}"></button>
|
||||||
</form>
|
</form>
|
||||||
<div class="container mt-0">
|
<div class="container mt-0">
|
||||||
<!-- PDF Summary section -->
|
|
||||||
<div id="pdf-summary" class="card mt-3 mb-3" style="display: none;">
|
|
||||||
<div class="card-header">
|
|
||||||
<h5 class="mb-0" id="summary-heading">PDF Summary</h5>
|
|
||||||
</div>
|
|
||||||
<div class="card-body">
|
|
||||||
<!-- Quick overview of key details -->
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6">
|
|
||||||
<h6 id="summary-basic-info-heading">Basic Information</h6>
|
|
||||||
<ul class="list-unstyled">
|
|
||||||
<li><strong>Pages:</strong> <span id="summary-pages">-</span></li>
|
|
||||||
<li><strong>File Size:</strong> <span id="summary-size">-</span></li>
|
|
||||||
<li><strong>PDF Version:</strong> <span id="summary-version">-</span></li>
|
|
||||||
<li><strong>Language:</strong> <span id="summary-language">-</span></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<h6 id="summary-doc-info-heading">Document Information</h6>
|
|
||||||
<ul class="list-unstyled">
|
|
||||||
<li><strong>Title:</strong> <span id="summary-title">-</span></li>
|
|
||||||
<li><strong>Author:</strong> <span id="summary-author">-</span></li>
|
|
||||||
<li><strong>Created:</strong> <span id="summary-created">-</span></li>
|
|
||||||
<li><strong>Modified:</strong> <span id="summary-modified">-</span></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Security section -->
|
|
||||||
<div class="mt-4 mb-3">
|
|
||||||
<h6 id="summary-security-heading">Security Status</h6>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
<div id="encryption-status" class="card mb-2 h-100">
|
|
||||||
<div class="card-body p-2 d-flex align-items-center">
|
|
||||||
<span id="encryption-icon" class="me-2"><i class="bi bi-lock"></i></span>
|
|
||||||
<span id="encryption-text" class="small">Encryption: Unknown</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<div id="permissions-status" class="card mb-2 h-100">
|
|
||||||
<div class="card-body p-2 d-flex align-items-center">
|
|
||||||
<span id="permissions-icon" class="me-2"><i class="bi bi-shield"></i></span>
|
|
||||||
<span id="permissions-text" class="small">Permissions: Unknown</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<div id="compliance-status" class="card mb-2 h-100">
|
|
||||||
<div class="card-body p-2 d-flex align-items-center">
|
|
||||||
<span id="compliance-icon" class="me-2"><i class="bi bi-check-circle"></i></span>
|
|
||||||
<span id="compliance-text" class="small">Compliance: Unknown</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Detailed alerts -->
|
|
||||||
<div id="summary-alerts" class="mt-3">
|
|
||||||
<!-- Will be populated with detailed alerts for encryption, permissions, etc. -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Descriptive note about PDF characteristics -->
|
|
||||||
<div class="card mt-3">
|
|
||||||
<div class="card-header">
|
|
||||||
<h6 class="mb-0">PDF Overview</h6>
|
|
||||||
</div>
|
|
||||||
<div class="card-body">
|
|
||||||
<p id="summary-text" class="mb-0"></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Iterate over each main section in the JSON -->
|
<!-- Iterate over each main section in the JSON -->
|
||||||
<div id="json-content">
|
<div id="json-content">
|
||||||
<!-- JavaScript will populate this section -->
|
<!-- JavaScript will populate this section -->
|
||||||
@ -107,48 +31,10 @@
|
|||||||
<a href="#" id="downloadJson" class="btn btn-primary mt-3" style="display: none;" th:text="#{getPdfInfo.downloadJson}">Download JSON</a>
|
<a href="#" id="downloadJson" class="btn btn-primary mt-3" style="display: none;" th:text="#{getPdfInfo.downloadJson}">Download JSON</a>
|
||||||
</div>
|
</div>
|
||||||
<script th:src="@{'/js/fetch-utils.js'}"></script>
|
<script th:src="@{'/js/fetch-utils.js'}"></script>
|
||||||
<script th:inline="javascript">
|
<script>
|
||||||
// Pre-load message translations
|
|
||||||
const getPdfInfoSummary = /*[[#{getPdfInfo.summary}]]*/ "PDF Summary";
|
|
||||||
const getPdfInfoSummaryEncrypted = /*[[#{getPdfInfo.summary.encrypted}]]*/ "This PDF is encrypted so may face issues with some applications";
|
|
||||||
const getPdfInfoSummaryPermissions = /*[[#{getPdfInfo.summary.permissions}]]*/ "This PDF has {0} restricted permissions which may limit what you can do with it";
|
|
||||||
const getPdfInfoSummaryCompliance = /*[[#{getPdfInfo.summary.compliance}]]*/ "This PDF complies with the {0} standard, meaning it is suitable for {1}";
|
|
||||||
const getPdfInfoSummaryBasicInfo = /*[[#{getPdfInfo.summary.basicInfo}]]*/ "Basic Information";
|
|
||||||
const getPdfInfoSummaryDocInfo = /*[[#{getPdfInfo.summary.docInfo}]]*/ "Document Information";
|
|
||||||
const getPdfInfoSummarySecuritySection = /*[[#{getPdfInfo.summary.security.section}]]*/ "Security Status";
|
|
||||||
const getPdfInfoSummaryEncryptedAlert = /*[[#{getPdfInfo.summary.encrypted.alert}]]*/ "Encrypted PDF - This document is password protected";
|
|
||||||
const getPdfInfoSummaryNotEncryptedAlert = /*[[#{getPdfInfo.summary.not.encrypted.alert}]]*/ "Unencrypted PDF - No password protection";
|
|
||||||
const getPdfInfoSummaryPermissionsAlert = /*[[#{getPdfInfo.summary.permissions.alert}]]*/ "Restricted Permissions - {0} actions are not allowed";
|
|
||||||
const getPdfInfoSummaryAllPermissionsAlert = /*[[#{getPdfInfo.summary.all.permissions.alert}]]*/ "All Permissions Allowed";
|
|
||||||
const getPdfInfoSummaryComplianceAlert = /*[[#{getPdfInfo.summary.compliance.alert}]]*/ "{0} Compliant";
|
|
||||||
const getPdfInfoSummaryNoComplianceAlert = /*[[#{getPdfInfo.summary.no.compliance.alert}]]*/ "No Compliance Standards";
|
|
||||||
|
|
||||||
// Update the summary headings
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
document.getElementById('summary-heading').textContent = getPdfInfoSummary;
|
|
||||||
document.getElementById('summary-basic-info-heading').textContent = getPdfInfoSummaryBasicInfo;
|
|
||||||
document.getElementById('summary-doc-info-heading').textContent = getPdfInfoSummaryDocInfo;
|
|
||||||
document.getElementById('summary-security-heading').textContent = getPdfInfoSummarySecuritySection;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Pre-load section descriptions
|
|
||||||
const getPdfInfoSectionBasicInfo = /*[[#{getPdfInfo.section.BasicInfo}]]*/ "Basic Information about the PDF document including file size, page count, and language";
|
|
||||||
const getPdfInfoSectionMetadata = /*[[#{getPdfInfo.section.Metadata}]]*/ "Document metadata including title, author, creation date and other document properties";
|
|
||||||
const getPdfInfoSectionDocumentInfo = /*[[#{getPdfInfo.section.DocumentInfo}]]*/ "Technical details about the PDF document structure and version";
|
|
||||||
const getPdfInfoSectionCompliancy = /*[[#{getPdfInfo.section.Compliancy}]]*/ "PDF standards compliance information (PDF/A, PDF/X, etc.)";
|
|
||||||
const getPdfInfoSectionEncryption = /*[[#{getPdfInfo.section.Encryption}]]*/ "Security and encryption details of the document";
|
|
||||||
const getPdfInfoSectionPermissions = /*[[#{getPdfInfo.section.Permissions}]]*/ "Document permission settings that control what actions can be performed";
|
|
||||||
const getPdfInfoSectionOther = /*[[#{getPdfInfo.section.Other}]]*/ "Additional document components like bookmarks, layers, and embedded files";
|
|
||||||
const getPdfInfoSectionFormFields = /*[[#{getPdfInfo.section.FormFields}]]*/ "Interactive form fields present in the document";
|
|
||||||
const getPdfInfoSectionPerPageInfo = /*[[#{getPdfInfo.section.PerPageInfo}]]*/ "Detailed information about each page in the document";
|
|
||||||
|
|
||||||
document.getElementById("pdfInfoForm").addEventListener("submit", function(event) {
|
document.getElementById("pdfInfoForm").addEventListener("submit", function(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
// Clear previous results when submitting a new form
|
|
||||||
document.getElementById('json-content').innerHTML = '';
|
|
||||||
document.getElementById('pdf-summary').style.display = 'none';
|
|
||||||
document.getElementById('downloadJson').style.display = 'none';
|
|
||||||
|
|
||||||
const formData = new FormData(event.target);
|
const formData = new FormData(event.target);
|
||||||
|
|
||||||
@ -156,330 +42,10 @@
|
|||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: formData
|
body: formData
|
||||||
}).then(response => response.json()).then(data => {
|
}).then(response => response.json()).then(data => {
|
||||||
// Populate and display the enhanced PDF summary
|
|
||||||
populateSummarySection(data);
|
|
||||||
|
|
||||||
displayJsonData(data);
|
displayJsonData(data);
|
||||||
setDownloadLink(data);
|
setDownloadLink(data);
|
||||||
document.getElementById("downloadJson").style.display = "block";
|
document.getElementById("downloadJson").style.display = "block";
|
||||||
}).catch(error => console.error('Error:', error));
|
}).catch(error => console.error('Error:', error));
|
||||||
|
|
||||||
// Function to reset all summary elements to default state
|
|
||||||
function resetSummaryElements() {
|
|
||||||
// Reset basic information fields
|
|
||||||
document.getElementById('summary-pages').textContent = '-';
|
|
||||||
document.getElementById('summary-size').textContent = '-';
|
|
||||||
document.getElementById('summary-version').textContent = '-';
|
|
||||||
document.getElementById('summary-language').textContent = '-';
|
|
||||||
|
|
||||||
// Reset document information fields
|
|
||||||
document.getElementById('summary-title').textContent = '-';
|
|
||||||
document.getElementById('summary-author').textContent = '-';
|
|
||||||
document.getElementById('summary-created').textContent = '-';
|
|
||||||
document.getElementById('summary-modified').textContent = '-';
|
|
||||||
|
|
||||||
// Reset security status cards
|
|
||||||
const cards = ['encryption-status', 'permissions-status', 'compliance-status'];
|
|
||||||
cards.forEach(id => {
|
|
||||||
const card = document.getElementById(id);
|
|
||||||
// Remove all classes except the base ones
|
|
||||||
card.className = 'card mb-2 h-100';
|
|
||||||
});
|
|
||||||
|
|
||||||
// Reset status text and icons
|
|
||||||
document.getElementById('encryption-icon').innerHTML = '<i class="bi bi-lock"></i>';
|
|
||||||
document.getElementById('encryption-text').textContent = 'Encryption: Unknown';
|
|
||||||
|
|
||||||
document.getElementById('permissions-icon').innerHTML = '<i class="bi bi-shield"></i>';
|
|
||||||
document.getElementById('permissions-text').textContent = 'Permissions: Unknown';
|
|
||||||
|
|
||||||
document.getElementById('compliance-icon').innerHTML = '<i class="bi bi-check-circle"></i>';
|
|
||||||
document.getElementById('compliance-text').textContent = 'Compliance: Unknown';
|
|
||||||
|
|
||||||
// Clear alerts container
|
|
||||||
document.getElementById('summary-alerts').innerHTML = '';
|
|
||||||
|
|
||||||
// Reset summary text
|
|
||||||
document.getElementById('summary-text').innerHTML = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Function to populate the enhanced summary section
|
|
||||||
function populateSummarySection(data) {
|
|
||||||
// Reset all elements first
|
|
||||||
resetSummaryElements();
|
|
||||||
|
|
||||||
// Get basic information
|
|
||||||
if (data.BasicInfo) {
|
|
||||||
document.getElementById('summary-pages').textContent = data.BasicInfo["Number of pages"] || "-";
|
|
||||||
|
|
||||||
// Format file size nicely
|
|
||||||
let fileSize = data.BasicInfo["FileSizeInBytes"];
|
|
||||||
if (fileSize) {
|
|
||||||
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
|
|
||||||
const i = Math.floor(Math.log(fileSize) / Math.log(1024));
|
|
||||||
fileSize = (fileSize / Math.pow(1024, i)).toFixed(2) + ' ' + sizes[i];
|
|
||||||
document.getElementById('summary-size').textContent = fileSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
document.getElementById('summary-language').textContent = data.BasicInfo["Language"] || "-";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get document information
|
|
||||||
if (data.DocumentInfo) {
|
|
||||||
document.getElementById('summary-version').textContent = data.DocumentInfo["PDF version"] || "-";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get metadata
|
|
||||||
if (data.Metadata) {
|
|
||||||
document.getElementById('summary-title').textContent = data.Metadata["Title"] || "-";
|
|
||||||
document.getElementById('summary-author').textContent = data.Metadata["Author"] || "-";
|
|
||||||
document.getElementById('summary-created').textContent = data.Metadata["CreationDate"] || "-";
|
|
||||||
document.getElementById('summary-modified').textContent = data.Metadata["ModificationDate"] || "-";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update security status cards
|
|
||||||
|
|
||||||
// Encryption status
|
|
||||||
const encryptionStatusCard = document.getElementById('encryption-status');
|
|
||||||
const encryptionIcon = document.getElementById('encryption-icon');
|
|
||||||
const encryptionText = document.getElementById('encryption-text');
|
|
||||||
|
|
||||||
if (data.Encryption && data.Encryption.IsEncrypted) {
|
|
||||||
encryptionIcon.innerHTML = '<i class="bi bi-lock-fill"></i>';
|
|
||||||
encryptionText.textContent = getPdfInfoSummaryEncryptedAlert;
|
|
||||||
} else {
|
|
||||||
encryptionIcon.innerHTML = '<i class="bi bi-unlock-fill"></i>';
|
|
||||||
encryptionText.textContent = getPdfInfoSummaryNotEncryptedAlert;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Permissions status
|
|
||||||
const permissionsStatusCard = document.getElementById('permissions-status');
|
|
||||||
const permissionsIcon = document.getElementById('permissions-icon');
|
|
||||||
const permissionsText = document.getElementById('permissions-text');
|
|
||||||
|
|
||||||
let restrictedPermissions = [];
|
|
||||||
if (data.Permissions) {
|
|
||||||
for (const [permission, state] of Object.entries(data.Permissions)) {
|
|
||||||
if (state === "Not Allowed") {
|
|
||||||
restrictedPermissions.push(permission);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (restrictedPermissions.length > 0) {
|
|
||||||
permissionsIcon.innerHTML = '<i class="bi bi-shield-lock-fill"></i>';
|
|
||||||
const formattedAlert = getPdfInfoSummaryPermissionsAlert.replace('{0}', restrictedPermissions.length);
|
|
||||||
permissionsText.textContent = formattedAlert;
|
|
||||||
} else {
|
|
||||||
permissionsIcon.innerHTML = '<i class="bi bi-shield-check"></i>';
|
|
||||||
permissionsText.textContent = getPdfInfoSummaryAllPermissionsAlert;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Compliance status
|
|
||||||
const complianceStatusCard = document.getElementById('compliance-status');
|
|
||||||
const complianceIcon = document.getElementById('compliance-icon');
|
|
||||||
const complianceText = document.getElementById('compliance-text');
|
|
||||||
|
|
||||||
let hasCompliance = false;
|
|
||||||
let compliantStandards = [];
|
|
||||||
|
|
||||||
if (data.Compliancy) {
|
|
||||||
for (const [standard, compliant] of Object.entries(data.Compliancy)) {
|
|
||||||
if (compliant === true) {
|
|
||||||
hasCompliance = true;
|
|
||||||
const standardName = standard.replace("Is", "").replace("Compliant", "");
|
|
||||||
compliantStandards.push(standardName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hasCompliance) {
|
|
||||||
complianceIcon.innerHTML = '<i class="bi bi-check-circle-fill"></i>';
|
|
||||||
const formattedAlert = getPdfInfoSummaryComplianceAlert.replace('{0}', compliantStandards.join(', '));
|
|
||||||
complianceText.textContent = formattedAlert;
|
|
||||||
} else {
|
|
||||||
complianceIcon.innerHTML = '<i class="bi bi-dash-circle"></i>';
|
|
||||||
complianceText.textContent = getPdfInfoSummaryNoComplianceAlert;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create detailed characteristic alerts
|
|
||||||
const alertsContainer = document.getElementById('summary-alerts');
|
|
||||||
|
|
||||||
// Clear previous alerts
|
|
||||||
alertsContainer.innerHTML = '';
|
|
||||||
|
|
||||||
// Create a single comprehensive security details section
|
|
||||||
let hasSummaryInfo = false;
|
|
||||||
|
|
||||||
// Create a consolidated security details card if there are security details worth highlighting
|
|
||||||
if ((data.Encryption && data.Encryption.IsEncrypted) ||
|
|
||||||
restrictedPermissions.length > 0 ||
|
|
||||||
hasCompliance) {
|
|
||||||
|
|
||||||
const securityDetailsCard = document.createElement('div');
|
|
||||||
securityDetailsCard.className = 'card mt-3 mb-3';
|
|
||||||
|
|
||||||
const cardHeader = document.createElement('div');
|
|
||||||
cardHeader.className = 'card-header';
|
|
||||||
cardHeader.innerHTML = '<h6 class="mb-0">Detailed Security Information</h6>';
|
|
||||||
securityDetailsCard.appendChild(cardHeader);
|
|
||||||
|
|
||||||
const cardBody = document.createElement('div');
|
|
||||||
cardBody.className = 'card-body';
|
|
||||||
|
|
||||||
// Add detailed encryption info
|
|
||||||
if (data.Encryption && data.Encryption.IsEncrypted) {
|
|
||||||
const encryptionDiv = document.createElement('div');
|
|
||||||
encryptionDiv.className = 'mb-3';
|
|
||||||
encryptionDiv.innerHTML = '<h6>Encryption Details:</h6>';
|
|
||||||
|
|
||||||
const encryptionList = document.createElement('ul');
|
|
||||||
encryptionList.className = 'list-unstyled';
|
|
||||||
|
|
||||||
if (data.Encryption.EncryptionAlgorithm) {
|
|
||||||
encryptionList.innerHTML += `<li><strong>Algorithm:</strong> ${data.Encryption.EncryptionAlgorithm}</li>`;
|
|
||||||
}
|
|
||||||
if (data.Encryption.KeyLength) {
|
|
||||||
encryptionList.innerHTML += `<li><strong>Key Length:</strong> ${data.Encryption.KeyLength} bits</li>`;
|
|
||||||
}
|
|
||||||
|
|
||||||
encryptionDiv.appendChild(encryptionList);
|
|
||||||
cardBody.appendChild(encryptionDiv);
|
|
||||||
hasSummaryInfo = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add detailed permissions info
|
|
||||||
if (restrictedPermissions.length > 0) {
|
|
||||||
const permissionsDiv = document.createElement('div');
|
|
||||||
permissionsDiv.className = 'mb-3';
|
|
||||||
permissionsDiv.innerHTML = '<h6>Restricted Permissions:</h6>';
|
|
||||||
|
|
||||||
const permissionsList = document.createElement('ul');
|
|
||||||
restrictedPermissions.forEach(perm => {
|
|
||||||
permissionsList.innerHTML += `<li>${perm}</li>`;
|
|
||||||
});
|
|
||||||
|
|
||||||
permissionsDiv.appendChild(permissionsList);
|
|
||||||
cardBody.appendChild(permissionsDiv);
|
|
||||||
hasSummaryInfo = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add detailed compliance info
|
|
||||||
if (hasCompliance) {
|
|
||||||
const complianceDiv = document.createElement('div');
|
|
||||||
complianceDiv.className = 'mb-3';
|
|
||||||
complianceDiv.innerHTML = '<h6>Standards Compliance:</h6>';
|
|
||||||
|
|
||||||
const complianceList = document.createElement('ul');
|
|
||||||
complianceList.className = 'list-unstyled';
|
|
||||||
|
|
||||||
compliantStandards.forEach(standard => {
|
|
||||||
let standardDescription = '';
|
|
||||||
|
|
||||||
// Add brief descriptions for standards
|
|
||||||
if (standard === "PDF/A") {
|
|
||||||
standardDescription = 'ISO standard for long-term document archiving';
|
|
||||||
} else if (standard === "PDF/X") {
|
|
||||||
standardDescription = 'ISO standard for printing and graphic arts exchange';
|
|
||||||
} else if (standard === "PDF/UA") {
|
|
||||||
standardDescription = 'ISO standard for universal accessibility';
|
|
||||||
} else if (standard === "PDF/E") {
|
|
||||||
standardDescription = 'ISO standard for engineering documents';
|
|
||||||
} else if (standard === "PDF/VT") {
|
|
||||||
standardDescription = 'ISO standard for variable and transactional printing';
|
|
||||||
}
|
|
||||||
|
|
||||||
complianceList.innerHTML += `<li><strong>${standard}:</strong> ${standardDescription}</li>`;
|
|
||||||
});
|
|
||||||
|
|
||||||
complianceDiv.appendChild(complianceList);
|
|
||||||
cardBody.appendChild(complianceDiv);
|
|
||||||
hasSummaryInfo = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
securityDetailsCard.appendChild(cardBody);
|
|
||||||
|
|
||||||
if (hasSummaryInfo) {
|
|
||||||
alertsContainer.appendChild(securityDetailsCard);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Generate a general document summary
|
|
||||||
const summaryTextElement = document.getElementById('summary-text');
|
|
||||||
|
|
||||||
// Create a general summary for the document
|
|
||||||
let generalSummary = `This is a ${data.BasicInfo["Number of pages"] || "multi"}-page PDF`;
|
|
||||||
|
|
||||||
if (data.Metadata && data.Metadata["Title"]) {
|
|
||||||
generalSummary += ` titled "${data.Metadata["Title"]}"`;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data.Metadata && data.Metadata["Author"]) {
|
|
||||||
generalSummary += ` created by ${data.Metadata["Author"]}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data.DocumentInfo && data.DocumentInfo["PDF version"]) {
|
|
||||||
generalSummary += ` (PDF version ${data.DocumentInfo["PDF version"]})`;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add security information to the general summary if relevant
|
|
||||||
if (data.Encryption && data.Encryption.IsEncrypted) {
|
|
||||||
generalSummary += '. The document is password protected';
|
|
||||||
|
|
||||||
if (data.Encryption.EncryptionAlgorithm) {
|
|
||||||
generalSummary += ` using ${data.Encryption.EncryptionAlgorithm}`;
|
|
||||||
|
|
||||||
if (data.Encryption.KeyLength) {
|
|
||||||
generalSummary += ` (${data.Encryption.KeyLength} bit)`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (restrictedPermissions.length > 0) {
|
|
||||||
generalSummary += `. It has ${restrictedPermissions.length} restricted permissions`;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add compliance standards if available
|
|
||||||
if (hasCompliance && compliantStandards.length > 0) {
|
|
||||||
generalSummary += `. This document complies with the ${compliantStandards.join(', ')} PDF standard${compliantStandards.length > 1 ? 's' : ''}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
generalSummary += '.';
|
|
||||||
|
|
||||||
// Remove SummaryData from JSON to avoid duplication
|
|
||||||
if (data.SummaryData) {
|
|
||||||
delete data.SummaryData;
|
|
||||||
}
|
|
||||||
|
|
||||||
summaryTextElement.innerHTML = generalSummary;
|
|
||||||
|
|
||||||
// Display the summary section
|
|
||||||
document.getElementById('pdf-summary').style.display = 'block';
|
|
||||||
}
|
|
||||||
|
|
||||||
function generateSummaryFromData(summaryData) {
|
|
||||||
let summary = [];
|
|
||||||
|
|
||||||
// Handle encryption information
|
|
||||||
if (summaryData.encrypted) {
|
|
||||||
summary.push(getPdfInfoSummaryEncrypted);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle permissions information
|
|
||||||
if (summaryData.restrictedPermissions && summaryData.restrictedPermissions.length > 0) {
|
|
||||||
const formattedPermissionsText = getPdfInfoSummaryPermissions.replace('{0}', summaryData.restrictedPermissionsCount);
|
|
||||||
summary.push(formattedPermissionsText);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle standard compliance information
|
|
||||||
if (summaryData.standardCompliance) {
|
|
||||||
const formattedComplianceText = getPdfInfoSummaryCompliance
|
|
||||||
.replace('{0}', summaryData.standardCompliance);
|
|
||||||
summary.push(formattedComplianceText);
|
|
||||||
}
|
|
||||||
|
|
||||||
return summary.join(' ');
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function displayJsonData(jsonData) {
|
function displayJsonData(jsonData) {
|
||||||
@ -511,9 +77,8 @@
|
|||||||
header.className = 'card-header';
|
header.className = 'card-header';
|
||||||
header.id = `${safeKey}-heading-${depth}`;
|
header.id = `${safeKey}-heading-${depth}`;
|
||||||
const h5Elem = document.createElement('h5');
|
const h5Elem = document.createElement('h5');
|
||||||
h5Elem.className = 'mb-0 d-flex align-items-center';
|
h5Elem.className = 'mb-0';
|
||||||
|
|
||||||
// Create the main content (button or text)
|
|
||||||
if (key === 'XMPMetadata' && typeof value === "string") {
|
if (key === 'XMPMetadata' && typeof value === "string") {
|
||||||
const buttonElem = createButtonElement(key, safeKey, depth);
|
const buttonElem = createButtonElement(key, safeKey, depth);
|
||||||
h5Elem.appendChild(buttonElem);
|
h5Elem.appendChild(buttonElem);
|
||||||
@ -529,8 +94,6 @@
|
|||||||
} else {
|
} else {
|
||||||
h5Elem.textContent = `${key}: ${String(value)}`;
|
h5Elem.textContent = `${key}: ${String(value)}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Info buttons removed as requested
|
|
||||||
|
|
||||||
header.appendChild(h5Elem);
|
header.appendChild(h5Elem);
|
||||||
card.appendChild(header);
|
card.appendChild(header);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user