diff options
| author | Jakob Heher <jakob.heher@iaik.tugraz.at> | 2026-06-22 12:49:56 +0200 |
|---|---|---|
| committer | Jakob Heher <jakob.heher@iaik.tugraz.at> | 2026-06-22 12:49:56 +0200 |
| commit | 2f209e01da276e9862d6e0f63d02bcfb14728d9b (patch) | |
| tree | 721c3f63ad91c0b43a836753d3669c43dbd13fd0 /pdf-as-pdfbox-3/src/test | |
| parent | ec1a6a0f04af82a1797a02316b5260d687c562fc (diff) | |
| download | pdf-as-4-2f209e01da276e9862d6e0f63d02bcfb14728d9b.tar.gz pdf-as-4-2f209e01da276e9862d6e0f63d02bcfb14728d9b.tar.bz2 pdf-as-4-2f209e01da276e9862d6e0f63d02bcfb14728d9b.zip | |
fix placeholder parsing for pdfbox 3 (and test cases)
Diffstat (limited to 'pdf-as-pdfbox-3/src/test')
| -rw-r--r-- | pdf-as-pdfbox-3/src/test/java/at/gv/egiz/pdfas/lib/impl/pdfbox3/SignVerifyTest.kt (renamed from pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/SignVerifyTest.kt) | 0 | ||||
| -rw-r--r-- | pdf-as-pdfbox-3/src/test/java/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/PDFBoxPlaceholderExtractorTest.java (renamed from pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/PDFBoxPlaceholderExtractorTest.java) | 0 | ||||
| -rw-r--r-- | pdf-as-pdfbox-3/src/test/java/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/SignatureFieldsAndPlaceHolderExtractorTest.java (renamed from pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/SignatureFieldsAndPlaceHolderExtractorTest.java) | 110 | ||||
| -rw-r--r-- | pdf-as-pdfbox-3/src/test/java/at/gv/egiz/pdfas/lib/impl/verify/pdfbox3/PDFBox2To3Test.kt (renamed from pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/verify/pdfbox3/PDFBox2To3Test.kt) | 0 | ||||
| -rw-r--r-- | pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/TTFFontTest.java | 46 |
5 files changed, 52 insertions, 104 deletions
diff --git a/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/SignVerifyTest.kt b/pdf-as-pdfbox-3/src/test/java/at/gv/egiz/pdfas/lib/impl/pdfbox3/SignVerifyTest.kt index 500b15ed..500b15ed 100644 --- a/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/SignVerifyTest.kt +++ b/pdf-as-pdfbox-3/src/test/java/at/gv/egiz/pdfas/lib/impl/pdfbox3/SignVerifyTest.kt diff --git a/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/PDFBoxPlaceholderExtractorTest.java b/pdf-as-pdfbox-3/src/test/java/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/PDFBoxPlaceholderExtractorTest.java index e766c385..e766c385 100644 --- a/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/PDFBoxPlaceholderExtractorTest.java +++ b/pdf-as-pdfbox-3/src/test/java/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/PDFBoxPlaceholderExtractorTest.java diff --git a/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/SignatureFieldsAndPlaceHolderExtractorTest.java b/pdf-as-pdfbox-3/src/test/java/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/SignatureFieldsAndPlaceHolderExtractorTest.java index e1a7f09b..bdf5b760 100644 --- a/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/SignatureFieldsAndPlaceHolderExtractorTest.java +++ b/pdf-as-pdfbox-3/src/test/java/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/SignatureFieldsAndPlaceHolderExtractorTest.java @@ -5,13 +5,15 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import org.apache.pdfbox.pdmodel.PDDocument; +import at.gv.egiz.pdfas.lib.impl.pdfbox3.PDFBoxPlaceholderExtractor; +import lombok.SneakyThrows; +import lombok.val; +import org.apache.pdfbox.Loader; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; -import at.gv.egiz.pdfas.lib.impl.pdfbox2.placeholder.SignatureFieldsAndPlaceHolderExtractor; import at.gv.egiz.pdfas.lib.impl.placeholder.SignaturePlaceholderData; @RunWith(JUnit4.class) @@ -27,156 +29,148 @@ public class SignatureFieldsAndPlaceHolderExtractorTest { } @Test - public void notSigned(){ + public void notSigned() { SignaturePlaceholderData result = getNextSignaturePlaceHolder(getPath("new_qr_2-2.pdf")); - Assert.assertEquals("Image5",result.getPlaceholderName()); + Assert.assertEquals("Image5", result.getPlaceholderName()); } + @Test - public void signedOnce(){ + public void signedOnce() { SignaturePlaceholderData result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed.pdf")); - Assert.assertEquals("Image8",result.getPlaceholderName()); + Assert.assertEquals("Image8", result.getPlaceholderName()); } + @Test - public void signedTwice(){ + public void signedTwice() { SignaturePlaceholderData result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed_signed.pdf")); - Assert.assertEquals(null,result); + Assert.assertEquals(null, result); } + @Test - public void signedThrice(){ + public void signedThrice() { SignaturePlaceholderData result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed_signed_signed.pdf")); - Assert.assertEquals(null,result); + Assert.assertEquals(null, result); } @Test - public void noPlaceHolder(){ + public void noPlaceHolder() { SignaturePlaceholderData result = getNextSignaturePlaceHolder(getPath("manySignFields.pdf")); - Assert.assertEquals(null,result); + Assert.assertEquals(null, result); } - + @Test public void firstQrCodeOnUnsignedDoc() { SignaturePlaceholderData result = getNextSignaturePlaceHolder(getPath("new_qr_2-2.pdf")); - Assert.assertEquals("Image5",result.getPlaceholderName()); - + Assert.assertEquals("Image5", result.getPlaceholderName()); + } - + @Test - public void subsequentCalls(){ + public void subsequentCalls() { SignaturePlaceholderData result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed_signed_signed.pdf")); - Assert.assertEquals(null,result); + Assert.assertEquals(null, result); result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed.pdf")); - Assert.assertEquals("Image8",result.getPlaceholderName()); + Assert.assertEquals("Image8", result.getPlaceholderName()); result = getNextSignaturePlaceHolder(getPath("new_qr_2-2.pdf")); - Assert.assertEquals("Image5",result.getPlaceholderName()); + Assert.assertEquals("Image5", result.getPlaceholderName()); result = getNextSignaturePlaceHolder(getPath("new_qr_2-2.pdf")); - Assert.assertEquals("Image5",result.getPlaceholderName()); + Assert.assertEquals("Image5", result.getPlaceholderName()); result = getNextSignaturePlaceHolder(getPath("new_qr_2-2.pdf")); - Assert.assertEquals("Image5",result.getPlaceholderName()); + Assert.assertEquals("Image5", result.getPlaceholderName()); result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed.pdf")); - Assert.assertEquals("Image8",result.getPlaceholderName()); + Assert.assertEquals("Image8", result.getPlaceholderName()); result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed_signed_signed.pdf")); - Assert.assertEquals(null,result); + Assert.assertEquals(null, result); result = getNextSignaturePlaceHolder(getPath("new_qr_2-2.pdf")); - Assert.assertEquals("Image5",result.getPlaceholderName()); + Assert.assertEquals("Image5", result.getPlaceholderName()); result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed.pdf")); - Assert.assertEquals("Image8",result.getPlaceholderName()); + Assert.assertEquals("Image8", result.getPlaceholderName()); } + @Test - public void notSignedAndNoFields(){ + public void notSignedAndNoFields() { List<String> result = getPlaceHolders(getPath("new_qr_2-2.pdf")); List<String> expectedResult = new ArrayList<>(); - Assert.assertEquals(expectedResult,result); + Assert.assertEquals(expectedResult, result); } @Test - public void notSignedFields(){ + public void notSignedFields() { List<String> result = getPlaceHolders(getPath("manySignFields.pdf")); List<String> expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", "Signature_4", "Signature_5", "Signature_6", "Signature_7"); - Assert.assertEquals(expectedResult,result); + Assert.assertEquals(expectedResult, result); } @Test - public void signedOncePosition4FieldTest(){ + public void signedOncePosition4FieldTest() { List<String> result = getPlaceHolders(getPath("manySignFields_signed4.pdf")); List<String> expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", "Signature_5", "Signature_6", "Signature_7"); - Assert.assertEquals(expectedResult,result); + Assert.assertEquals(expectedResult, result); } @Test - public void multipleCallsFieldTest(){ + public void multipleCallsFieldTest() { List<String> result = getPlaceHolders(getPath("manySignFields_signed4.pdf")); List<String> expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", "Signature_5", "Signature_6", "Signature_7"); - Assert.assertEquals(expectedResult,result); + Assert.assertEquals(expectedResult, result); result = getPlaceHolders(getPath("manySignFields_signed4.pdf")); expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", "Signature_5", "Signature_6", "Signature_7"); - Assert.assertEquals(expectedResult,result); + Assert.assertEquals(expectedResult, result); result = getPlaceHolders(getPath("manySignFields.pdf")); expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", "Signature_4", "Signature_5", "Signature_6", "Signature_7"); - Assert.assertEquals(expectedResult,result); + Assert.assertEquals(expectedResult, result); result = getPlaceHolders(getPath("manySignFields.pdf")); expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", "Signature_4", "Signature_5", "Signature_6", "Signature_7"); - Assert.assertEquals(expectedResult,result); + Assert.assertEquals(expectedResult, result); result = getPlaceHolders(getPath("manySignFields_signed4.pdf")); expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", "Signature_5", "Signature_6", "Signature_7"); - Assert.assertEquals(expectedResult,result); + Assert.assertEquals(expectedResult, result); result = getPlaceHolders(getPath("manySignFields_signed4.pdf")); expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", "Signature_5", "Signature_6", "Signature_7"); - Assert.assertEquals(expectedResult,result); + Assert.assertEquals(expectedResult, result); result = getPlaceHolders(getPath("manySignFields.pdf")); expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", "Signature_4", "Signature_5", "Signature_6", "Signature_7"); - Assert.assertEquals(expectedResult,result); + Assert.assertEquals(expectedResult, result); } + @SneakyThrows private static List<String> getPlaceHolders(String filePath) { - try { - PDDocument doc = PDDocument.load(new File(filePath)); - List<String> results = SignatureFieldsAndPlaceHolderExtractor.findEmptySignatureFields(doc); -// System.out.println(filePath + ": " + result); - return results; - } catch (Throwable e) { - e.printStackTrace(); + try (val doc = Loader.loadPDF(new File(filePath))) { + return PDFBoxPlaceholderExtractor.findEmptySignatureFields(doc); } - return null; } + @SneakyThrows public static SignaturePlaceholderData getNextSignaturePlaceHolder(String filePath) { - try { - PDDocument doc = PDDocument.load(new File(filePath)); - SignaturePlaceholderData result = - SignatureFieldsAndPlaceHolderExtractor.getNextUnusedSignaturePlaceHolder(doc); -// System.out.println(filePath + ": " + result); - return result; - } catch (Throwable e) { - e.printStackTrace(); + try (val doc = Loader.loadPDF(new File(filePath))) { + return PDFBoxPlaceholderExtractor.getNextUnusedSignaturePlaceholder(doc); } - return null; } - } diff --git a/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/verify/pdfbox3/PDFBox2To3Test.kt b/pdf-as-pdfbox-3/src/test/java/at/gv/egiz/pdfas/lib/impl/verify/pdfbox3/PDFBox2To3Test.kt index 847018c4..847018c4 100644 --- a/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/verify/pdfbox3/PDFBox2To3Test.kt +++ b/pdf-as-pdfbox-3/src/test/java/at/gv/egiz/pdfas/lib/impl/verify/pdfbox3/PDFBox2To3Test.kt diff --git a/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/TTFFontTest.java b/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/TTFFontTest.java deleted file mode 100644 index ce395785..00000000 --- a/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/TTFFontTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package at.gv.egiz.pdfas.lib.impl.sign.pdfbox3; - -import java.io.File; -import java.util.Iterator; -import java.util.List; - -import org.apache.pdfbox.cos.COSBase; -import org.apache.pdfbox.cos.COSDictionary; -import org.apache.pdfbox.cos.COSName; -import org.apache.pdfbox.cos.COSObject; -import org.apache.pdfbox.pdmodel.PDDocument; - -public class TTFFontTest { - - public static void main(String[] args) { - try { - PDDocument doc = PDDocument.load(new File("/home/afitzek/Downloads/pdf_groesse/willenserklaerung_signedByUser.pdf")); - - List<COSObject> cosObjects = doc.getDocument().getObjectsByType(COSName.FONT); - - Iterator<COSObject> cosObjectIt = cosObjects.iterator(); - - while(cosObjectIt.hasNext()) { - COSObject cosObject = cosObjectIt.next(); - COSBase subType = ((COSDictionary)cosObject.getObject()).getItem(COSName.SUBTYPE); - COSBase baseFont = ((COSDictionary)cosObject.getObject()).getItem(COSName.BASE_FONT); - COSBase aTest = ((COSDictionary)cosObject.getObject()).getItem(COSName.A); - - System.out.println(aTest); - - if(subType.equals(COSName.TRUE_TYPE)) { - System.out.println("Object Number: " + cosObject.getObjectNumber() + - subType.toString()); - System.out.println(" BaseFont: " + baseFont.toString()); - } - - - } - - - } catch(Throwable e) { - e.printStackTrace(); - } - } - -} |
