iText操作PDF读取JPEG图片ArrayIndexOutOfBoundsException异常

本文讨论了使用iTextPDF库时遇到的读取本地JPEG图片文件异常问题,通过分析发现异常可能与特定JPEG图片有关,并提供了解决方案。包括使用Java AWT Image API创建图像实例的方法来替代直接使用iTextPDF的Image getInstance方法。

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("图片路径");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值