java - ExceptionConverter com.itextpdf.text.pdf.parser.InlineImageUtils$InlineImageParseException: Could not find image data or EI 420 -
i using itext extract text pdf, however, had following exception, , cannot caught try/catch(exception e), have attached file here, don't care whether can extract text it, want know how catch exception.
exception:
exceptionconverter: com.itextpdf.text.pdf.parser.inlineimageutils$inlineimageparseexception: not find image data or ei 420 @ com.itextpdf.text.pdf.parser.inlineimageutils.parseinlineimagesamples(inlineimageutils.java:386) @ com.itextpdf.text.pdf.parser.inlineimageutils.parseinlineimage(inlineimageutils.java:156) @ com.itextpdf.text.pdf.parser.pdfcontentstreamprocessor.processcontent(pdfcontentstreamprocessor.java:427) @ com.itextpdf.text.pdf.parser.pdfreadercontentparser.processcontent(pdfreadercontentparser.java:80) @ com.itextpdf.text.pdf.parser.pdftextextractor.gettextfrompage(pdftextextractor.java:74)
the problematic inline image
q 12 0 0 1.5 598.5 2905.5 cm bi /cs/rgb /w 8 /h 1 /bpc 8 /f[/a85 /fl] /dp[null <</predictor 15 /columns 8 /colors 3>>] id gar9f/1xl3a2+09nf?)t!(_,53r~> ei q
on page 5. null
unfortunately parsed pdfliteral
value "null", not pdfnull
instance. thus, pdfreader.decodebytes()
throws exception in
pdfobject dpentry = getpdfobject(dp.get(j)); if (dpentry instanceof pdfdictionary){ decodeparams = (pdfdictionary)dpentry; } else if (dpentry == null || dpentry instanceof pdfnull) { decodeparams = null; } else { throw new unsupportedpdfexception(messagelocalization.getcomposedmessage("the.decode.parameter.type.1.is.not.supported", dpentry.getclass().tostring())); }
replacing
} else if (dpentry == null || dpentry instanceof pdfnull) {
by
} else if (dpentry == null || dpentry instanceof pdfnull || (dpentry instanceof pdfliteral && arrays.equals("null".getbytes(), ((pdfliteral)dpentry).getbytes()))) {
makes code work op's pdf.
Comments
Post a Comment