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());
}
}