Details
Description
I get the following stack trace when trying to parse certain pdfs:
org.apache.pdfbox.preflight.exception.SyntaxValidationException at org.apache.pdfbox.preflight.parser.PreflightParser.parse(PreflightParser.java:203) at org.apache.pdfbox.preflight.parser.PreflightParser.parse(PreflightParser.java:180) at org.apache.pdfbox.preflight.parser.PreflightParser.parse(PreflightParser.java:168) at PDFBoxTest.main(hello.java:11) Caused by: org.apache.pdfbox.exceptions.WrappedIOException at org.apache.pdfbox.pdmodel.encryption.SecurityHandler.encryptData(SecurityHandler.java:376) at org.apache.pdfbox.pdmodel.encryption.SecurityHandler.decryptString(SecurityHandler.java:578) at org.apache.pdfbox.pdfparser.NonSequentialPDFParser.decryptString(NonSequentialPDFParser.java:1571) at org.apache.pdfbox.pdfparser.NonSequentialPDFParser.decryptDictionary(NonSequentialPDFParser.java:1535) at org.apache.pdfbox.pdfparser.NonSequentialPDFParser.decrypt(NonSequentialPDFParser.java:1596) at org.apache.pdfbox.preflight.parser.PreflightParser.parseObjectDynamically(PreflightParser.java:797) at org.apache.pdfbox.pdfparser.NonSequentialPDFParser.parseObjectDynamically(NonSequentialPDFParser.java:1343) at org.apache.pdfbox.preflight.parser.PreflightParser.initialParse(PreflightParser.java:273) at org.apache.pdfbox.pdfparser.NonSequentialPDFParser.parse(NonSequentialPDFParser.java:886) at org.apache.pdfbox.preflight.parser.PreflightParser.parse(PreflightParser.java:198) ... 3 more Caused by: javax.crypto.BadPaddingException: Given final block not properly padded at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:966) at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:824) at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:436) at javax.crypto.Cipher.doFinal(Cipher.java:2004) at org.apache.pdfbox.pdmodel.encryption.SecurityHandler.encryptData(SecurityHandler.java:352) ... 12 more
The parsing code looks something like:
FileDataSource fd = new FileDataSource("i-129.pdf"); PreflightParser parser = new PreflightParser(fd); parser.parse();