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("图片路径");
原文地址:https://www.cnblogs.com/wenlong/p/4524950.html