diff --git a/.github/workflows/push-docker.yml b/.github/workflows/push-docker.yml index 117157923..0aefaa003 100644 --- a/.github/workflows/push-docker.yml +++ b/.github/workflows/push-docker.yml @@ -4,6 +4,7 @@ on: push: branches: - master + - testGit - main jobs: push: @@ -37,20 +38,41 @@ jobs: with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_API }} - + + # - name: Check if tag exists + # id: checkIdExists + # continue-on-error: true + # run: | + # response=$(curl -s https://hub.docker.com/v2/repositories/frooodle/s-pdf/tags/?name=${{ steps.versionNumber.outputs.versionNumber }}) + # result=$(echo $response | jq ".results") + # if [ "$result" == "[]" ]; then + # echo "Tag ${{ steps.versionNumber.outputs.versionNumber }} doesnt exist. Continuing with build and push." + # else + # echo "Tag ${{ steps.versionNumber.outputs.versionNumber }} already exists. Skipping build and push." + # exit 1; + # fi + + + - name: Setup buildx run: | docker buildx create --name mybuilder docker buildx use mybuilder + + - name: Build and push versioned amd64 and v8 + if: github.ref == 'refs/heads/main' + run: | + docker buildx build --platform="linux/amd64,linux/arm64/v8" --push --tag "frooodle/s-pdf:${{ steps.versionNumber.outputs.versionNumber }}-alpha" . + - - name: Build and push versioned amd64 and v8 - if: github.ref == 'refs/heads/main' + - name: Build and push versioned amd64 and v8 + if: github.ref == 'refs/heads/master' run: | docker buildx build --platform="linux/amd64,linux/arm64/v8" --push --tag "frooodle/s-pdf:${{ steps.versionNumber.outputs.versionNumber }}" . - name: Build and push latest amd64 and v8 - if: github.ref == 'refs/heads/master' + if: github.ref == 'refs/heads/master' run: | docker buildx build --platform="linux/amd64,linux/arm64/v8" --push --tag "frooodle/s-pdf:latest" . diff --git a/HowToAddNewLanguage.md b/HowToAddNewLanguage.md index 5792dad13..18799b2b9 100644 --- a/HowToAddNewLanguage.md +++ b/HowToAddNewLanguage.md @@ -1,4 +1,6 @@ -

tirling-PDF

+


Stirling-PDF

+

+ # How to add new languages to Stirling-PDF diff --git a/README.md b/README.md index 96729959d..5da8586bd 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ -

tirling-PDF

+


Stirling-PDF

+

This is a locally hosted web application that allows you to perform various operations on PDF files, such as splitting and adding images. @@ -34,7 +35,7 @@ I will support and fix/add things to this if there is a demand [Discord](https:/ ## How to use -### Locally +### Locally Prerequisites - Java 17 or later diff --git a/build.gradle b/build.gradle index c514b8a8f..b62510225 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { } group = 'stirling.software' -version = '0.3.1' +version = '0.3.2' sourceCompatibility = '17' repositories { diff --git a/src/main/java/stirling/software/SPDF/controller/RotationController.java b/src/main/java/stirling/software/SPDF/controller/RotationController.java index 42676f6dc..436dc4842 100644 --- a/src/main/java/stirling/software/SPDF/controller/RotationController.java +++ b/src/main/java/stirling/software/SPDF/controller/RotationController.java @@ -37,7 +37,7 @@ public class RotationController { @PostMapping("/rotate-pdf") public ResponseEntity rotatePDF(@RequestParam("fileInput") MultipartFile pdfFile, - @RequestParam("angle") String angle) throws IOException { + @RequestParam("angle") Integer angle) throws IOException { // Load the PDF document PDDocument document = PDDocument.load(pdfFile.getBytes()); @@ -50,7 +50,7 @@ public class RotationController { while (iterPage.hasNext()) { PDPage page = iterPage.next(); - page.setRotation(Integer.valueOf(angle)); + page.setRotation(page.getRotation() + angle); } return PdfUtils.pdfDocToWebResponse(document, pdfFile.getName() + "_rotated.pdf"); diff --git a/src/main/java/stirling/software/SPDF/controller/security/WatermarkController.java b/src/main/java/stirling/software/SPDF/controller/security/WatermarkController.java index ba42a1d78..6fd2c8cb0 100644 --- a/src/main/java/stirling/software/SPDF/controller/security/WatermarkController.java +++ b/src/main/java/stirling/software/SPDF/controller/security/WatermarkController.java @@ -34,7 +34,7 @@ public class WatermarkController { } @PostMapping("/add-watermark") - public ResponseEntity addWatermark(@RequestParam("pdfFile") MultipartFile pdfFile, + public ResponseEntity addWatermark(@RequestParam("fileInput") MultipartFile pdfFile, @RequestParam("watermarkText") String watermarkText, @RequestParam(defaultValue = "30", name = "fontSize") float fontSize, @RequestParam(defaultValue = "0", name = "rotation") float rotation, diff --git a/src/main/resources/messages_de_DE.properties b/src/main/resources/messages_de_DE.properties new file mode 100644 index 000000000..38266bb43 --- /dev/null +++ b/src/main/resources/messages_de_DE.properties @@ -0,0 +1,210 @@ +########### +# Generic # +########### +pdfPrompt=PDF auswählen +multiPdfPrompt=PDFs auswählen(2+) +multiPdfDropPrompt=Wählen Sie alle gewünschten PDFs aus (oder ziehen Sie sie per Drag & Drop hierhin) +imgPrompt=Wählen Sie ein Bild +genericSubmit=Einreichen +processTimeWarning=Achtung: Abhängig von der Dateigröße kann dieser Prozess bis zu einer Minute dauern +pageOrderPrompt=Seitenreihenfolge (Geben Sie eine durch Komma getrennte Liste von Seitenzahlen ein): +goToPage=Los +############# +# HOME-PAGE # +############# +home.desc=Ihr lokal gehosteter One-Stop-Shop für alle Ihre PDF-Anforderungen. + +navbar.convert=Konvertieren +navbar.security=Sicherheit +navbar.other=Anderes +navbar.darkmode=Dark Mode + +home.merge.title=PDFs zusammenführen +home.merge.desc=Mehrere PDF-Dateien zu einer einzigen zusammenführen. + +home.split.title=PDFs aufteilen +home.split.desc=PDFs in mehrere Dokumente aufteilen. + +home.rotate.title=PDFs drehen +home.rotate.desc=Drehen Sie Ihre PDFs ganz einfach. + +home.imageToPdf.title=Bild zu PDF +home.imageToPdf.desc=Konvertieren Sie ein Bild (PNG, JPEG, GIF) in ein PDF. + +home.pdfToImage.title=PDF zu Bild +home.pdfToImage.desc=Konvertieren Sie ein PDF in ein Bild (PNG, JPEG, GIF). + +home.pdfOrganiser.title=PDF organisieren +home.pdfOrganiser.desc=Seiten entfernen und Seitenreihenfolge ändern. + +home.addImage.title=Bild einfügen +home.addImage.desc=Fügt ein Bild an eine bestimmte Stelle im PDF ein (Work in progress). + +home.watermark.title=Wasserzeichen hinzufügen +home.watermark.desc=Fügen Sie ein eigenes Wasserzeichen zu Ihrem PDF hinzu. + +home.permissions.title=Berechtigungen ändern +home.permissions.desc=Die Berechtigungen für Ihr PDF-Dokument verändern. + +home.removePages.title=Seiten entfernen +home.removePages.desc=Ungewollte Seiten aus dem PDF entfernen. + +home.addPassword.title=Passwort hinzufügen +home.addPassword.desc=Das PDF mit einem Passwort verschlüsseln. + +home.removePassword.title=Passwort entfernen +home.removePassword.desc=Den Passwortschutz eines PDFs entfernen. + +home.compressPdfs.title=PDF komprimieren +home.compressPdfs.desc=PDF komprimieren um die Dateigröße zu reduzieren. + + + +#Add image +addImage.title=Bild hinzufügen +addImage.header=Ein Bild einfügen (Work in progress) +addImage.submit=Bild hinzufügen + +#compress +compress.title=Komprimieren +compress.header=PDF komprimieren +compress.compressLevel=Wert zwischen 1 und 100 (1 ist am meisten komprimiert) +compress.submit=Komprimieren + + +#merge +merge.title=Zusammenführen +merge.header=Mehrere PDFs zusammenführen (2+) +merge.submit=Zusammenführen + +#pdfOrganiser +pdfOrganiser.title=Seiten anordnen +pdfOrganiser.header=PDF Seitenorganisation +#pdfOrganiser.pagesToOrganize=Seitenanordnung (geben Sie eine Kommagetrennte Liste der Seitenzahlen an): # may have forgotten to add this as a translation option? +pdfOrganiser.submit=Seiten anordnen + + +#pageRemover +pageRemover.title=Seiten entfernen +pageRemover.header=PDF Seiten entfernen +pageRemover.pagesToDelete=Seiten zu entfernen (geben Sie eine Kommagetrennte Liste der Seitenzahlen an): +pageRemover.submit=Seiten löschen + +#rotate +rotate.title=PDF drehen +rotate.header=PDF drehen +rotate.selectAngle=Wählen Sie den Winkel (in Vielfachen von 90 Grad): +rotate.submit=Drehen + + + + +#merge +split.title=PDF aufteilen +split.header=PDF aufteilen +split.desc.1=Die Nummern, die Sie auswählen, sind die Seitenzahlen, an denen Sie aufteilen möchten. +split.desc.2=So würde die Auswahl von 1,3,7-8 ein 10-seitiges Dokument in 6 separate PDFs aufteilen, mit: +split.desc.3=Dokument #1: Seite 1 +split.desc.4=Dokument #2: Seite 2 und 3 +split.desc.5=Dokument #3: Seite 4, 5 und 6 +split.desc.6=Dokument #4: Seite 7 +split.desc.7=Dokument #5: Seite 8 +split.desc.8=Dokument #6: Seite 9 und 10 +split.splitPages=Geben Sie die Seiten an, an denen aufgeteilt werden soll: +split.submit=Aufteilen + + +#merge +imageToPDF.title=Bild zu PDF +imageToPDF.header=Bild zu PDF +imageToPDF.submit=Umwandeln + +#pdfToImage +pdfToImage.title=PDF zu Bild +pdfToImage.header=PDF zu Bild +pdfToImage.selectText=Bildformat +pdfToImage.submit=Umwandeln + +#addPassword +addPassword.title=Passwort hinzufügen +addPassword.header=Passwort hinzufügen (Verschlüsseln) +addPassword.selectText.1=Das zu verschlüsselnde PDF auswählen +addPassword.selectText.2=Passwort +addPassword.selectText.3=Länge des Schlüssels +addPassword.selectText.4=Größere Werte sind stärker, aber niedrigere Werte sind besser kompatibel. +addPassword.selectText.5=Zu setzende Berechtigungen +addPassword.selectText.6=Das zusammensetzen des PDFs verhindern +addPassword.selectText.7=Inhaltsextrahierung verhindern +addPassword.selectText.8=Inhaltsextrahierung zur Barrierefreiheit verhindern +addPassword.selectText.9=Ausfüllen des Formulars verhindern +addPassword.selectText.10=Modifizierung verhindern +addPassword.selectText.11=Ändern von Kommentaren verhindern +addPassword.selectText.12=Drucken verhindern +addPassword.selectText.13=Drucken verschiedener Formate verhindern +addPassword.submit=Verschlüsseln + +#watermark +watermark.title=Wasserzeichen hinzufügen +watermark.header=Wasserzeichen hinzufügen +watermark.selectText.1=PDF auswählen, dem ein Wasserzeichen hinzugefügt werden soll: +watermark.selectText.2=Wasserzeichen Text: +watermark.selectText.3=Schriftgröße: +watermark.selectText.4=Drehung (0-360): +watermark.selectText.5=breiteSpacer (horizontaler Abstand zwischen den einzelnen Wasserzeichen): +watermark.selectText.6=höheSpacer (vertikaler Abstand zwischen den einzelnen Wasserzeichen): +watermark.submit=Wasserzeichen hinzufügen + + +#Change permissions +permissions.title=Berechtigungen ändern +permissions.header=Berechtigungen ändern +permissions.warning=Achtung: Damit diese Berechtigungen nicht geändert werden können, wird empfohlen, sie über die "Passwort hinzufügen"-Seite mit einem Passwort zu versehen +permissions.selectText.1=Das zu ändernde PDF auswählen +permissions.selectText.2=Zu setzende Berechtigungen +permissions.selectText.3=Das zusammensetzen des PDFs verhindern +permissions.selectText.4=Inhaltsextrahierung verhindern +permissions.selectText.5=Inhaltsextrahierung zur Barrierefreiheit verhindern +permissions.selectText.6=Ausfüllen des Formulars verhindern +permissions.selectText.7=Modifizierung verhindern +permissions.selectText.8=Ändern von Kommentaren verhindern +permissions.selectText.9=Drucken verhindern +permissions.selectText.10=Drucken verschiedener Formate verhindern +permissions.submit=Ändern + +#remove password +removePassword.title=Passwort entfernen +removePassword.header=Passwort entfernen (Entschlüsseln) +removePassword.selectText.1=Das zu entschlüsselnde PDF auswählen +removePassword.selectText.2=Passwort +removePassword.submit=Entfernen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/templates/fragments/common.html b/src/main/resources/templates/fragments/common.html index d8abe2426..4340d5e85 100644 --- a/src/main/resources/templates/fragments/common.html +++ b/src/main/resources/templates/fragments/common.html @@ -6,6 +6,9 @@ + + + + + + +
+
+ + +
+
+ +
\ No newline at end of file diff --git a/src/main/resources/templates/fragments/navbar.html b/src/main/resources/templates/fragments/navbar.html index 1071537eb..d0e911772 100644 --- a/src/main/resources/templates/fragments/navbar.html +++ b/src/main/resources/templates/fragments/navbar.html @@ -78,6 +78,8 @@ @@ -128,4 +130,4 @@ - \ No newline at end of file + diff --git a/src/main/resources/templates/rotate-pdf.html b/src/main/resources/templates/rotate-pdf.html index daa0e799b..fb68049b8 100644 --- a/src/main/resources/templates/rotate-pdf.html +++ b/src/main/resources/templates/rotate-pdf.html @@ -15,27 +15,32 @@

+
+
+ +
@@ -43,6 +48,84 @@
+ + + \ No newline at end of file