From 58423bfc21c3c5be6ddda90ca550b249826f42b3 Mon Sep 17 00:00:00 2001 From: Saud Fatayerji Date: Sun, 5 Feb 2023 02:45:33 +0300 Subject: [PATCH 01/12] Redesigned the rotate page --- .../resources/templates/fragments/common.html | 24 +++++ src/main/resources/templates/rotate-pdf.html | 102 ++++++++++++++---- 2 files changed, 108 insertions(+), 18 deletions(-) diff --git a/src/main/resources/templates/fragments/common.html b/src/main/resources/templates/fragments/common.html index d8abe2426..18352416e 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/rotate-pdf.html b/src/main/resources/templates/rotate-pdf.html index cd17e8aaf..d22c40c82 100644 --- a/src/main/resources/templates/rotate-pdf.html +++ b/src/main/resources/templates/rotate-pdf.html @@ -15,28 +15,20 @@

Rotate PDF

+
+
+ - - -
- +
+
-
- +
+ + + +
-
@@ -44,6 +36,80 @@
+ + + \ No newline at end of file From f093d657296cedb7df8119a84276bfe989e0afb7 Mon Sep 17 00:00:00 2001 From: Saud Fatayerji Date: Sun, 5 Feb 2023 18:08:43 +0300 Subject: [PATCH 02/12] Fixed bugs --- .../SPDF/controller/RotationController.java | 4 +- src/main/resources/templates/rotate-pdf.html | 38 ++++++++++++++----- 2 files changed, 31 insertions(+), 11 deletions(-) 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/resources/templates/rotate-pdf.html b/src/main/resources/templates/rotate-pdf.html index d22c40c82..588559226 100644 --- a/src/main/resources/templates/rotate-pdf.html +++ b/src/main/resources/templates/rotate-pdf.html @@ -24,9 +24,19 @@
- + - +
@@ -57,8 +67,13 @@ const canvas = document.createElement("canvas"); // set the canvas size to the size of the page - canvas.width = page.view[2]; - canvas.height = page.view[3]; + if (page.rotate == 90 || page.rotate == 270) { + canvas.width = page.view[3]; + canvas.height = page.view[2]; + } else { + canvas.width = page.view[2]; + canvas.height = page.view[3]; + } // render the page onto the canvas var renderContext = { @@ -71,14 +86,14 @@ }); function rotate(deg) { - var lastTransform = preview.style.transform; + var lastTransform = preview.style.rotate; if (!lastTransform) { lastTransform = "0"; } const lastAngle = parseInt(lastTransform.replace(/[^\d-]/g, '')); const newAngle = lastAngle + deg; - preview.style.transform = "rotate(" + newAngle + "deg)"; + preview.style.rotate = newAngle + "deg"; angleInput.value = newAngle; } @@ -86,10 +101,14 @@ #pdf-preview { margin: 0 auto; display: block; - max-width: 100%; - max-height: 100%; + max-width: calc(100% - 30px); + max-height: calc(100% - 30px); box-shadow: 0 0 4px rgba(100,100,100,.25); - transition: transform .3s; + transition: rotate .3s; + position: absolute; + top: 50%; + left: 50%; + translate: -50% -50%; } .previewContainer { aspect-ratio: 1; @@ -100,6 +119,7 @@ padding: 15px; display: none; overflow: hidden; + position: relative; } .buttonContainer { From 38925ea4cab2efa00b178035254749a6bafea691 Mon Sep 17 00:00:00 2001 From: Saud Fatayerji Date: Sun, 5 Feb 2023 22:04:37 +0300 Subject: [PATCH 03/12] Fixed merge conflict. Cleaned up code --- .../resources/templates/fragments/common.html | 4 +- src/main/resources/templates/rotate-pdf.html | 58 +++++++++---------- 2 files changed, 29 insertions(+), 33 deletions(-) diff --git a/src/main/resources/templates/fragments/common.html b/src/main/resources/templates/fragments/common.html index 18352416e..4340d5e85 100644 --- a/src/main/resources/templates/fragments/common.html +++ b/src/main/resources/templates/fragments/common.html @@ -102,7 +102,7 @@
- +
@@ -113,7 +113,7 @@ if (fileNames) { $(this).siblings(".custom-file-label").addClass("selected").html(fileNames); } else { - $(this).siblings(".custom-file-label").addClass("selected").html("Choose file"); + $(this).siblings(".custom-file-label").addClass("selected").html([[#{pdfPrompt}]]); } }); diff --git a/src/main/resources/templates/rotate-pdf.html b/src/main/resources/templates/rotate-pdf.html index 2ce896903..68418b693 100644 --- a/src/main/resources/templates/rotate-pdf.html +++ b/src/main/resources/templates/rotate-pdf.html @@ -19,24 +19,26 @@
-
- -
+ - \ No newline at end of file + From c9cb1959b301c5b1eafac8a3e0303445aec5d240 Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Mon, 6 Feb 2023 10:52:11 +0000 Subject: [PATCH 09/12] Update WatermarkController.java --- .../software/SPDF/controller/security/WatermarkController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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, From 2146e5c8a86acb3657df93c38e34bd067d532ed8 Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Mon, 6 Feb 2023 11:01:23 +0000 Subject: [PATCH 10/12] Update push-docker.yml --- .github/workflows/push-docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push-docker.yml b/.github/workflows/push-docker.yml index 93225818a..765b62036 100644 --- a/.github/workflows/push-docker.yml +++ b/.github/workflows/push-docker.yml @@ -67,7 +67,7 @@ jobs: - name: Build and push latest amd64 and v8 - if: github.ref == 'refs/heads/master' && steps.checkIdExists.outcome != 'failure' + if: github.ref == 'refs/heads/master' run: | docker buildx build --platform="linux/amd64,linux/arm64/v8" --push --tag "frooodle/s-pdf:latest" . From e40e47df7d523f4ace5da06d059783482135e369 Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Mon, 6 Feb 2023 11:02:46 +0000 Subject: [PATCH 11/12] Update push-docker.yml --- .github/workflows/push-docker.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/push-docker.yml b/.github/workflows/push-docker.yml index 765b62036..e144c2eab 100644 --- a/.github/workflows/push-docker.yml +++ b/.github/workflows/push-docker.yml @@ -55,7 +55,6 @@ jobs: - name: Setup buildx - if: steps.checkIdExists.outcome != 'failure' run: | docker buildx create --name mybuilder docker buildx use mybuilder From f7d320ac3278c60cbca976ad5da95f9d2fdd05b6 Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Mon, 6 Feb 2023 12:39:26 +0000 Subject: [PATCH 12/12] Update push-docker.yml --- .github/workflows/push-docker.yml | 32 ++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/.github/workflows/push-docker.yml b/.github/workflows/push-docker.yml index e144c2eab..0aefaa003 100644 --- a/.github/workflows/push-docker.yml +++ b/.github/workflows/push-docker.yml @@ -39,18 +39,18 @@ jobs: 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: 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 @@ -58,9 +58,15 @@ jobs: 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' && steps.checkIdExists.outcome != 'failure' + 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 }}" .