diff --git a/pom.xml b/pom.xml
index 0a75039..77cdf4e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,7 +43,7 @@
1.18.38
- 2.0.32
+ 3.0.8
20250107
2.22.0
9.1.22
diff --git a/src/main/java/com/rsh/jtoolkit/pdf/ExtractAttachments.java b/src/main/java/com/rsh/jtoolkit/pdf/ExtractAttachments.java
index a3db715..657984b 100644
--- a/src/main/java/com/rsh/jtoolkit/pdf/ExtractAttachments.java
+++ b/src/main/java/com/rsh/jtoolkit/pdf/ExtractAttachments.java
@@ -7,6 +7,7 @@
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import org.apache.pdfbox.Loader;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentNameDictionary;
import org.apache.pdfbox.pdmodel.PDEmbeddedFilesNameTreeNode;
@@ -27,7 +28,7 @@ private ExtractAttachments() {}
* @throws IOException if the PDF cannot be read or an attachment cannot be written
*/
public static List extractAttachments(String src, String dir) throws IOException {
- try (PDDocument document = PDDocument.load(new File(src))) {
+ try (PDDocument document = Loader.loadPDF(new File(src))) {
PDDocumentNameDictionary names = new PDDocumentNameDictionary(document.getDocumentCatalog());
PDEmbeddedFilesNameTreeNode embeddedFiles = names.getEmbeddedFiles();
if (embeddedFiles == null) {
diff --git a/src/main/java/com/rsh/jtoolkit/pdf/PdfUtil.java b/src/main/java/com/rsh/jtoolkit/pdf/PdfUtil.java
index 96ee397..1c84a40 100644
--- a/src/main/java/com/rsh/jtoolkit/pdf/PdfUtil.java
+++ b/src/main/java/com/rsh/jtoolkit/pdf/PdfUtil.java
@@ -4,6 +4,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
+import org.apache.pdfbox.Loader;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.common.PDMetadata;
@@ -17,14 +18,14 @@ private PdfUtil() {}
* metadata.
*/
public static boolean isPdfA(String filePath) throws IOException {
- try (PDDocument document = PDDocument.load(new File(filePath))) {
+ try (PDDocument document = Loader.loadPDF(new File(filePath))) {
return isPdfA(document);
}
}
/** Returns {@code true} if the PDF read from {@code inputStream} declares PDF/A conformance. */
public static boolean isPdfA(InputStream inputStream) throws IOException {
- try (PDDocument document = PDDocument.load(inputStream)) {
+ try (PDDocument document = Loader.loadPDF(inputStream.readAllBytes())) {
return isPdfA(document);
}
}
diff --git a/src/main/java/com/rsh/jtoolkit/pdf/sign/PDFSigner.java b/src/main/java/com/rsh/jtoolkit/pdf/sign/PDFSigner.java
index 1773a13..1a2ebcd 100644
--- a/src/main/java/com/rsh/jtoolkit/pdf/sign/PDFSigner.java
+++ b/src/main/java/com/rsh/jtoolkit/pdf/sign/PDFSigner.java
@@ -17,6 +17,7 @@
import java.util.Arrays;
import java.util.Calendar;
import java.util.Enumeration;
+import org.apache.pdfbox.Loader;
import org.apache.pdfbox.io.IOUtils;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
@@ -26,6 +27,7 @@
import org.apache.pdfbox.pdmodel.common.PDStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
+import org.apache.pdfbox.pdmodel.font.Standard14Fonts;
import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationWidget;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceDictionary;
@@ -50,7 +52,7 @@
public class PDFSigner implements SignatureInterface {
- private static final PDFont FONT = PDType1Font.HELVETICA_BOLD;
+ private static final PDFont FONT = new PDType1Font(Standard14Fonts.FontName.HELVETICA_BOLD);
private static final float FONT_SIZE = 10;
private static final float LEADING = FONT_SIZE * 1.5f;
private PrivateKey privateKey;
@@ -112,7 +114,7 @@ public byte[] sign(InputStream content) throws IOException {
public void signPDF(InputStream inputFile, ByteArrayOutputStream fos, PDRectangle rect)
throws IOException {
- try (PDDocument doc = PDDocument.load(inputFile)) {
+ try (PDDocument doc = Loader.loadPDF(inputFile.readAllBytes())) {
PDSignature signature = new PDSignature();
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
diff --git a/src/test/java/com/rsh/jtoolkit/pdf/sign/PDFSignerTest.java b/src/test/java/com/rsh/jtoolkit/pdf/sign/PDFSignerTest.java
index 28a6401..18cf6c7 100644
--- a/src/test/java/com/rsh/jtoolkit/pdf/sign/PDFSignerTest.java
+++ b/src/test/java/com/rsh/jtoolkit/pdf/sign/PDFSignerTest.java
@@ -16,6 +16,7 @@
import java.time.Instant;
import java.time.temporal.ChronoUnit;
import java.util.Date;
+import org.apache.pdfbox.Loader;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
@@ -50,7 +51,7 @@ void signsPdfAndAddsSignatureDictionary() throws Exception {
byte[] signed = out.toByteArray();
assertTrue(signed.length > source.length, "signed PDF should be larger than the source");
- try (PDDocument doc = PDDocument.load(signed)) {
+ try (PDDocument doc = Loader.loadPDF(signed)) {
assertFalse(doc.getSignatureDictionaries().isEmpty(), "expected a signature dictionary");
}
}