iText操作PDF读取JPEG图片ArrayIndexOutOfBoundsException异常
iText版本:itextpdf-5.5.1.jar
问题描述
读取本地JPEG图片文件的代码:
com.itextpdf.text.Image image = com.itextpdf.text.Image.getInstance("图片路径");
出现以下异常:
java.lang.ArrayIndexOutOfBoundsException: 2
at com.itextpdf.text.Jpeg.processParameters(Jpeg.java:291)
at com.itextpdf.text.Jpeg.<init>(Jpeg.java:118)
at com.itextpdf.text.Image.getInstance(Image.java:280)
at com.itextpdf.text.Image.getInstance(Image.java:242)
at com.itextpdf.text.Image.getInstance(Image.java:365)
问题分析
就一句调用API的代码还出现异常,不知为何
难道是不支持JPEG图片?换了几个图片测试,发现有些是可以的,而有些不行,也看不出出现异常的图片有什么不同之处
网上搜罗
由于异常信息不是很明确,很难直接搜到答案,找到一篇相关的帖子http://www.java2s.com/Tutorial/Java/0419__PDF/ConvertjavaawtImagetocomlowagietextImage.htm
解决办法
java.awt.Image awtImage = Toolkit.getDefaultToolkit().createImage("图片路径");
com.itextpdf.text.Image image = com.itextpdf.text.Image.getInstance(awtImage, null);
还有另外一个Image的API可以调用:
com.lowagie.text.Image image = com.lowagie.text.Image.getInstance("图片路径");