0

使用 iText 以编程方式创建 PDF 文档时,我可以在本地环境 (Windows XP) 上将 JPG 图像插入到文档的标题中。但是,当在我们的测试环境(基于 Linux)上执行相同的代码时,iText 会在 com.lowagie.text.Image.getInstance(...) 中抛出一个异常,声称图像文件“不是可识别的图像格式”。我已经验证了以下内容:

  • 本地和测试环境的图片文件是相同的JPG文件
  • 两种环境下的 iText JAR 文件是相同的(1.4.3 版)
  • JPG 确实出现在我的本地/Windows 环境中创建的 PDF 中
  • 两种环境中的 JVM 都是 1.5.0_09

谁能想到我应该尝试和/或验证的其他任何事情?在 Windows 和 Linux 环境之间加载 JPG 的方式有什么奇怪的区别吗?

谢谢

编辑:更新以反映 JVM 在两种环境中是相同的。

4

3 回答 3

1

我最近遇到了一个几乎相同的问题,在我的情况下,我使用的 PNG 图像不能在 Java 1.5 版上使用,但在 1.6 版上可以完美运行。如果您的机器上有不同的 JVM,这可能是问题所在。

我建议完全选择不同的图像或更改文件格式并查看它是否有效。

于 2009-10-15T05:42:52.200 回答
1

原来 iText 正在通过 URL 访问图像。URL 在某些情况下无效。在我的环境中,我运行 localhost 所以我从来没有遇到过问题。我们的测试部门运行了一个更像生产的设置,这意味着它是通过连接到非本地主机的 Web 服务器进行测试的。

我认为发生的事情是 iText 试图获取图像文件并获取错误页面(我们显示了自定义错误页面,而不仅仅是返回通用 404)。所以,我认为它告诉我我使用的是不受支持的格式,因为(错误)网页不是受支持的图像格式。

这里学到的教训是,当 iText 给您“不是可识别的图像格式”异常时,它可能没有描述您认为的问题!

于 2009-10-16T21:35:32.147 回答
-2

您没有提及 Java 运行时的品牌、型号和年份。这就是解开这个谜团的关键,华生。

于 2009-10-14T21:52:42.723 回答