Skip to content

Commit 0901f37

Browse files
committed
fix breaking changes in org.apache.pdfbox:pdfbox
1 parent 97040e7 commit 0901f37

File tree

4 files changed

+13
-6
lines changed

4 files changed

+13
-6
lines changed

src/main/java/com/mindee/input/InputSourceUtils.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package com.mindee.input;
22

33
import com.mindee.MindeeException;
4+
45
import java.io.ByteArrayInputStream;
56
import java.io.IOException;
67
import java.net.URL;
78
import javax.imageio.ImageIO;
9+
810
import org.apache.pdfbox.Loader;
11+
import org.apache.pdfbox.io.RandomAccessReadBuffer;
912
import org.apache.pdfbox.pdmodel.PDDocument;
1013
import org.apache.pdfbox.text.PDFTextStripper;
1114

@@ -71,7 +74,7 @@ public static String[] splitNameStrict(String filename) throws MindeeException {
7174
* Returns true if the file is a PDF.
7275
*/
7376
public static boolean isPdf(byte[] fileBytes) {
74-
try (PDDocument document = Loader.loadPDF(new ByteArrayInputStream(fileBytes))) {
77+
try (PDDocument document = Loader.loadPDF(new RandomAccessReadBuffer(new ByteArrayInputStream(fileBytes)))) {
7578
return true;
7679
} catch (IOException e) {
7780
return false;
@@ -96,7 +99,7 @@ public static void validateUrl(URL inputUrl) {
9699
*/
97100
public static boolean hasSourceText(byte[] fileBytes) {
98101
try {
99-
PDDocument document = Loader.loadPDF(new ByteArrayInputStream(fileBytes));
102+
PDDocument document = Loader.loadPDF(new RandomAccessReadBuffer(new ByteArrayInputStream(fileBytes)));
100103
PDFTextStripper stripper = new PDFTextStripper();
101104

102105
for (int i = 0; i < document.getNumberOfPages(); i++) {

src/main/java/com/mindee/pdf/PDFUtils.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.apache.pdfbox.pdmodel.PDResources;
1818
import org.apache.pdfbox.pdmodel.common.PDRectangle;
1919
import org.apache.pdfbox.pdmodel.font.PDType1Font;
20+
import org.apache.pdfbox.pdmodel.font.Standard14Fonts;
2021
import org.apache.pdfbox.pdmodel.graphics.color.PDColor;
2122
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
2223
import org.apache.pdfbox.rendering.ImageType;
@@ -243,7 +244,7 @@ protected void writeString(String text, List<TextPosition> textPositions) throws
243244
try {
244245
contentStream.showText(text);
245246
} catch (IllegalArgumentException | UnsupportedOperationException e) {
246-
contentStream.setFont(PDType1Font.HELVETICA, fontSize);
247+
contentStream.setFont(new PDType1Font(Standard14Fonts.FontName.HELVETICA), fontSize);
247248
contentStream.showText(text);
248249
}
249250
contentStream.endText();

src/test/java/com/mindee/input/LocalInputSourceTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.util.stream.Collectors;
1515
import javax.imageio.ImageIO;
1616
import org.apache.commons.codec.binary.Base64;
17+
import org.apache.pdfbox.Loader;
1718
import org.apache.pdfbox.pdmodel.PDDocument;
1819
import org.apache.pdfbox.text.PDFTextStripper;
1920
import org.junit.jupiter.api.Assertions;
@@ -338,8 +339,8 @@ public void testPdfResizeWithTextKeepsText() throws IOException {
338339
byte[] compressedWithText =
339340
PdfCompressor.compressPdf(initialWithText.getFile(), 100, true, false);
340341

341-
PDDocument originalDoc = PDDocument.load(initialWithText.getFile());
342-
PDDocument compressedDoc = PDDocument.load(compressedWithText);
342+
PDDocument originalDoc = Loader.loadPDF(initialWithText.getFile());
343+
PDDocument compressedDoc = Loader.loadPDF(compressedWithText);
343344

344345
Assertions.assertEquals(originalDoc.getNumberOfPages(), compressedDoc.getNumberOfPages());
345346
Assertions.assertNotEquals(originalDoc.hashCode(), compressedDoc.hashCode());

src/test/java/com/mindee/pdf/PDFUtilsTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import java.util.Arrays;
1111
import java.util.List;
1212
import java.util.Random;
13+
14+
import org.apache.pdfbox.Loader;
1315
import org.apache.pdfbox.pdmodel.PDDocument;
1416
import org.apache.pdfbox.pdmodel.PDPage;
1517
import org.junit.jupiter.api.Assertions;
@@ -43,7 +45,7 @@ public void givenADocumentAndListOfPages_whenMerged_thenReturnsCorrectDocument()
4345
File file = new File("src/test/resources/output/fileToTest.pdf");
4446
List<Integer> pageList = Arrays.asList(0, 2, 3, 1, 10, 2, 1);
4547
byte[] newPdf = PDFUtils.mergePdfPages(file, pageList);
46-
PDDocument document = PDDocument.load(newPdf);
48+
PDDocument document = Loader.loadPDF(newPdf);
4749

4850
Assertions.assertEquals(7, document.getNumberOfPages());
4951
document.close();

0 commit comments

Comments
 (0)