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("图片路径");
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

你可能感兴趣的:(exception)