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)  

file: https://www.dropbox.com/s/4l4ioqzpcca05vc/understanding%20the%20high%20photocatalytic%20activity%20of%20%28b%2c%20ag%29-codopeda312205c_si_001.pdf?dl=0

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

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -