diff --git a/dossierfacile-api-tenant/pom.xml b/dossierfacile-api-tenant/pom.xml index f1721ca20..1f7344fe1 100644 --- a/dossierfacile-api-tenant/pom.xml +++ b/dossierfacile-api-tenant/pom.xml @@ -22,7 +22,7 @@ 1.18.30 0.0.1-SNAPSHOT 5.9.1 - 2.0.27 + 3.0.0 1.7.0 @@ -142,7 +142,7 @@ org.apache.pdfbox pdfbox-tools - 2.0.23 + ${pdfbox.tools.version} org.apache.pdfbox diff --git a/dossierfacile-api-tenant/src/main/java/fr/dossierfacile/api/front/util/FilePageCounter.java b/dossierfacile-api-tenant/src/main/java/fr/dossierfacile/api/front/util/FilePageCounter.java index dc7109ee4..5a140327d 100644 --- a/dossierfacile-api-tenant/src/main/java/fr/dossierfacile/api/front/util/FilePageCounter.java +++ b/dossierfacile-api-tenant/src/main/java/fr/dossierfacile/api/front/util/FilePageCounter.java @@ -1,7 +1,9 @@ package fr.dossierfacile.api.front.util; import lombok.AllArgsConstructor; +import org.apache.pdfbox.Loader; import org.apache.pdfbox.io.MemoryUsageSetting; +import org.apache.pdfbox.io.RandomAccessReadBuffer; import org.apache.pdfbox.multipdf.PDFMergerUtility; import org.apache.pdfbox.pdmodel.PDDocument; import org.springframework.web.multipart.MultipartFile; @@ -45,15 +47,15 @@ private Optional mergePdfFiles(List pdfFiles) throws pdfMerger.setDestinationStream(outputStream); for (MultipartFile pdfFile : pdfFiles) { - pdfMerger.addSource(pdfFile.getInputStream()); + pdfMerger.addSource(new RandomAccessReadBuffer(pdfFile.getInputStream())); } - pdfMerger.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly()); + pdfMerger.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly().streamCache); if (outputStream.size() <= 0) { return Optional.empty(); } - try (PDDocument document = PDDocument.load(outputStream.toByteArray())) { + try (PDDocument document = Loader.loadPDF(outputStream.toByteArray())) { return Optional.of(document); } } diff --git a/dossierfacile-bo/pom.xml b/dossierfacile-bo/pom.xml index 5d42898ca..69665f3b0 100644 --- a/dossierfacile-bo/pom.xml +++ b/dossierfacile-bo/pom.xml @@ -29,7 +29,6 @@ 1.18.30 0.0.1-SNAPSHOT 3.0.15.RELEASE - 2.0.27 0.21.0 @@ -50,11 +49,6 @@ nimbus-jose-jwt 7.9 - - org.apache.pdfbox - pdfbox - ${pdfbox.tools.version} - org.jboss.resteasy resteasy-core @@ -193,16 +187,6 @@ metadata-extractor 2.18.0 - - org.apache.pdfbox - pdfbox-tools - ${pdfbox.tools.version} - - - org.apache.pdfbox - jbig2-imageio - 3.0.3 - com.github.jai-imageio jai-imageio-core diff --git a/dossierfacile-bo/src/main/java/fr/gouv/bo/model/FileForm.java b/dossierfacile-bo/src/main/java/fr/gouv/bo/model/FileForm.java deleted file mode 100644 index 77bfd58e4..000000000 --- a/dossierfacile-bo/src/main/java/fr/gouv/bo/model/FileForm.java +++ /dev/null @@ -1,15 +0,0 @@ -package fr.gouv.bo.model; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import javax.validation.constraints.NotEmpty; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class FileForm { - @NotEmpty - private String path; -} diff --git a/dossierfacile-bo/src/main/java/fr/gouv/bo/model/PdfMergeModel.java b/dossierfacile-bo/src/main/java/fr/gouv/bo/model/PdfMergeModel.java deleted file mode 100644 index 69bd8856b..000000000 --- a/dossierfacile-bo/src/main/java/fr/gouv/bo/model/PdfMergeModel.java +++ /dev/null @@ -1,17 +0,0 @@ -package fr.gouv.bo.model; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.InputStream; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class PdfMergeModel { - private InputStream inputStream; - private String extension; -} diff --git a/dossierfacile-bo/src/main/resources/application.properties b/dossierfacile-bo/src/main/resources/application.properties index f1d941b1b..c178cfa5c 100644 --- a/dossierfacile-bo/src/main/resources/application.properties +++ b/dossierfacile-bo/src/main/resources/application.properties @@ -17,7 +17,6 @@ spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true spring.profiles.active= google.token.storage.path= -pdfbox.encrypt.password= spring.main.allow-bean-definition-overriding=true time.reprocess.application.minutes=5 spring.liquibase.change-log=classpath:db/changelog/databaseChangeLog.xml diff --git a/dossierfacile-common-library/pom.xml b/dossierfacile-common-library/pom.xml index 2ae4ab1e8..7d516f40e 100644 --- a/dossierfacile-common-library/pom.xml +++ b/dossierfacile-common-library/pom.xml @@ -45,7 +45,7 @@ ${java.version} ${java.version} 1.18.30 - 2.0.27 + 3.0.0 5.9.2 2.10.1 6.25.0 diff --git a/dossierfacile-common-library/src/main/java/fr/dossierfacile/common/service/DocumentHelperServiceImpl.java b/dossierfacile-common-library/src/main/java/fr/dossierfacile/common/service/DocumentHelperServiceImpl.java index 456b28f3a..eb35631bb 100644 --- a/dossierfacile-common-library/src/main/java/fr/dossierfacile/common/service/DocumentHelperServiceImpl.java +++ b/dossierfacile-common-library/src/main/java/fr/dossierfacile/common/service/DocumentHelperServiceImpl.java @@ -12,6 +12,7 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FilenameUtils; +import org.apache.pdfbox.Loader; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.rendering.ImageType; import org.apache.pdfbox.rendering.PDFRenderer; @@ -80,7 +81,7 @@ public StorageFile generatePreview(InputStream fileInputStream, String originalN BufferedImage preview; if ("pdf".equalsIgnoreCase(imageExtension)) { long startTime = System.currentTimeMillis(); - try (PDDocument document = PDDocument.load(fileInputStream)) { + try (PDDocument document = Loader.loadPDF(fileInputStream.readAllBytes())) { PDFRenderer pdfRenderer = new PDFRenderer(document); BufferedImage bufferedImage = pdfRenderer.renderImageWithDPI(0, 200, ImageType.RGB); preview = resizeImage(bufferedImage); diff --git a/dossierfacile-common-library/src/main/java/fr/dossierfacile/common/utils/FileUtility.java b/dossierfacile-common-library/src/main/java/fr/dossierfacile/common/utils/FileUtility.java index 2434c05be..8abe064cf 100644 --- a/dossierfacile-common-library/src/main/java/fr/dossierfacile/common/utils/FileUtility.java +++ b/dossierfacile-common-library/src/main/java/fr/dossierfacile/common/utils/FileUtility.java @@ -3,6 +3,7 @@ import io.sentry.Sentry; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FilenameUtils; +import org.apache.pdfbox.Loader; import org.apache.pdfbox.pdmodel.PDDocument; import org.springframework.http.MediaType; import org.springframework.web.multipart.MultipartFile; @@ -35,7 +36,7 @@ public static int countNumberOfPagesOfPdfDocument(MultipartFile multipartFile) { return 1; } - try (PDDocument document = PDDocument.load(multipartFile.getInputStream())) { + try (PDDocument document = Loader.loadPDF(multipartFile.getInputStream().readAllBytes())) { return document.getNumberOfPages(); } catch (IOException e) { log.error("Problem reading number of pages of document"); diff --git a/dossierfacile-process-file/pom.xml b/dossierfacile-process-file/pom.xml index 0348632c7..c85443ffd 100644 --- a/dossierfacile-process-file/pom.xml +++ b/dossierfacile-process-file/pom.xml @@ -19,7 +19,7 @@ 19 1.18.30 - 2.0.27 + 3.0.0 3.0.3 1.4.0 1.4.0 diff --git a/dossierfacile-process-file/src/main/java/fr/dossierfacile/process/file/barcode/InMemoryFile.java b/dossierfacile-process-file/src/main/java/fr/dossierfacile/process/file/barcode/InMemoryFile.java index a5c1c678b..86ec79f8a 100644 --- a/dossierfacile-process-file/src/main/java/fr/dossierfacile/process/file/barcode/InMemoryFile.java +++ b/dossierfacile-process-file/src/main/java/fr/dossierfacile/process/file/barcode/InMemoryFile.java @@ -4,7 +4,7 @@ import fr.dossierfacile.common.service.interfaces.FileStorageService; import fr.dossierfacile.process.file.barcode.qrcode.QrCode; import fr.dossierfacile.process.file.barcode.twoddoc.TwoDDocRawContent; -import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.Loader; import javax.imageio.ImageIO; import java.io.IOException; @@ -25,7 +25,7 @@ public abstract class InMemoryFile implements AutoCloseable { public static InMemoryFile download(File file, FileStorageService fileStorageService) throws IOException { try (InputStream inputStream = fileStorageService.download(file.getStorageFile())) { if (isPdf(file)) { - return new InMemoryPdfFile(PDDocument.load(inputStream)); + return new InMemoryPdfFile(Loader.loadPDF(inputStream.readAllBytes())); } return new InMemoryImageFile(ImageIO.read(inputStream)); } diff --git a/dossierfacile-process-file/src/test/java/fr/dossierfacile/process/file/TestFilesUtil.java b/dossierfacile-process-file/src/test/java/fr/dossierfacile/process/file/TestFilesUtil.java index 62734f7b7..cf5767975 100644 --- a/dossierfacile-process-file/src/test/java/fr/dossierfacile/process/file/TestFilesUtil.java +++ b/dossierfacile-process-file/src/test/java/fr/dossierfacile/process/file/TestFilesUtil.java @@ -1,6 +1,7 @@ package fr.dossierfacile.process.file; import fr.dossierfacile.process.file.barcode.InMemoryPdfFile; +import org.apache.pdfbox.Loader; import org.apache.pdfbox.pdmodel.PDDocument; import javax.imageio.ImageIO; @@ -23,7 +24,7 @@ public static InMemoryPdfFile getPdfFile(String fileName) throws IOException { public static PDDocument getPdfBoxDocument(String fileName) throws IOException { try (InputStream inputStream = getFileAsStream(fileName)) { - return PDDocument.load(inputStream); + return Loader.loadPDF(inputStream.readAllBytes()); } }