From f4ab7191b8da10b54fd310395c03b5029ebca2ea Mon Sep 17 00:00:00 2001 From: Fabien Date: Thu, 31 Oct 2024 12:52:43 +0100 Subject: [PATCH] fix: add signature to generatedPDF --- .../service/templates/ApartmentSharingPdfDocumentTemplate.java | 3 +++ .../pdfgenerator/service/templates/BOPdfDocumentTemplate.java | 3 +++ .../service/templates/EmptyBOPdfDocumentTemplate.java | 2 ++ 3 files changed, 8 insertions(+) diff --git a/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/templates/ApartmentSharingPdfDocumentTemplate.java b/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/templates/ApartmentSharingPdfDocumentTemplate.java index 4fe08e533..1a2583c9e 100644 --- a/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/templates/ApartmentSharingPdfDocumentTemplate.java +++ b/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/templates/ApartmentSharingPdfDocumentTemplate.java @@ -39,6 +39,7 @@ import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; import org.apache.pdfbox.pdmodel.interactive.annotation.PDBorderStyleDictionary; +import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; import org.apache.pdfbox.pdmodel.interactive.documentnavigation.destination.PDPageFitWidthDestination; import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDDocumentOutline; import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem; @@ -517,6 +518,7 @@ private ByteArrayOutputStream mergePageInsideTemplate(PDDocument innerDocument, layerUtility.wrapInSaveRestore(destPage); layerUtility.appendFormAsLayer(destPage, innerPageAsForm, affineTransform, headerSentence); + document.addSignature(new PDSignature()); document.save(result); } @@ -1373,6 +1375,7 @@ public InputStream render(ApartmentSharing apartmentSharing) throws IOException PDDocument originDocument = Loader.loadPDF(result.toByteArray())) { new PdfOptimizer().optimize(originDocument); + originDocument.addSignature(new PDSignature()); originDocument.save(finalResult); return new ByteArrayInputStream(finalResult.toByteArray()); diff --git a/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/templates/BOPdfDocumentTemplate.java b/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/templates/BOPdfDocumentTemplate.java index 2c3ad2c2b..666fe1b11 100644 --- a/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/templates/BOPdfDocumentTemplate.java +++ b/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/templates/BOPdfDocumentTemplate.java @@ -36,6 +36,7 @@ import org.apache.pdfbox.pdmodel.PDPageTree; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; +import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; import org.apache.pdfbox.rendering.ImageType; import org.apache.pdfbox.rendering.PDFRenderer; import org.apache.pdfbox.tools.imageio.ImageIOUtil; @@ -130,7 +131,9 @@ public InputStream render(List data, String watermarkText) thro .map(bim -> applyWatermark(bim, watermarkToApply)) .forEach(bim -> addImageAsPageToDocument(document, bim)); + try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) { + document.addSignature(new PDSignature()); document.save(baos); return new ByteArrayInputStream(baos.toByteArray()); } diff --git a/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/templates/EmptyBOPdfDocumentTemplate.java b/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/templates/EmptyBOPdfDocumentTemplate.java index 00da71c65..7caa15459 100644 --- a/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/templates/EmptyBOPdfDocumentTemplate.java +++ b/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/templates/EmptyBOPdfDocumentTemplate.java @@ -18,6 +18,7 @@ import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.font.PDType0Font; +import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.stereotype.Service; @@ -93,6 +94,7 @@ private ByteArrayOutputStream createPdfFromTemplate(Document document) throws IO Utility.addText(contentStream, width, startX, startY - 36, textElements.explanation, font, fontSize, alternativeFont); contentStream.close(); + pdDocument.addSignature(new PDSignature()); pdDocument.save(outputStream); } catch (IOException e) {