包含tiff格式图片的word,保存pdf/图片,tiff图像显示不正确

使用Aspose.Word Java 22.11版本
带有tiff格式的word文档,在导出为pdf格式,或图片格式时,tiff图像显示不正确,全黑色。
示例文档:
tiff.docx (27.8 KB)
错误效果:

@xinyu391 我无法使用最新的 23.10 版本的 Aspose.Words for Java 重现该问题。
另请注意,Java 高级成像 (JAI) 用于支持 TIFF 图像。 Java 8 及更早版本不支持 TIFF 图像。 为了在较旧的 Java 环境中支持 TIFF,Aspose.Words for Java 依赖于 Oracle 的 Java Advanced Imaging (JAI) 包。

您可以在文档页面上获取有关依赖项的更多详细信息:
https://docs.aspose.com/words/java/system-requirements/#optional-dependencies

我使用23.10版本 jdk17 同样 有问题,导出的pdf是黑色的。
out.pdf (39.5 KB)

我使用Imagio,直接读取 tiff文件(从docx里面提取的)是可以正确的读取图像的。

InputStream inputStream = null;
try {
    inputStream = new FileInputStream(new File("image1.tiff"));
    BufferedImage bufferedImage = ImageIO.read(inputStream);
    System.out.println("tif image size "+bufferedImage.getWidth()+","+bufferedImage.getHeight());
    DocUtil.WriteImage(bufferedImage,new File("out.jpg"));
} catch (Exception e) {
    throw new RuntimeException(e);
}

所以我怀疑这 不是 java的问题,而是 aspose库的问题。

@xinyu391 我使用以下简单代码再次测试了转换:

Document doc = new Document("C:\\Temp\\in.docx");
doc.save("C:\\Temp\\out.pdf");

结果看起来是正确的: out.pdf (38.5 KB)

您能描述一下您出现问题的环境吗? 我们将尝试在我们这边重新创建相同的环境,并为您提供更多信息。

系统环境: ubuntu22.04 openjdk17
下面是可重现的 最小项目包
Aspose-words-demo.zip (66.6 KB)

@xinyu391 正如我所看到的,您正在使用旧的 22.11 版本的 Aspose.Words。 请尝试使用最新的 23.10 版本,并告知我们问题是否仍然存在。

demo 已经改成23.10 问题 仍然存在
系统ubuntu22.04
java: openjdk 17
Aspose-words-demo.zip (65.9 KB)

ps:给你们反馈问题真是麻烦,各种不相信,推诿; 要有其他选择,早就扔掉Aspose了

@xinyu391 所附的 PDF 仍然是使用旧的 22.11 版本的 Aspose.Words 生成的:

我在 Linux 上进行了 teste 转换,输出看起来仍然正确。

另请尝试向您的 pom 添加依赖项:

<dependency>
    <groupId>javax.media.jai</groupId>
    <artifactId>com.springsource.javax.media.jai.core</artifactId>
    <version>1.1.3</version>
</dependency>

Finally, javax.media.jai这个依赖解决了问题
如果不加这个依赖 输出pdf
out-wrong.pdf (39.5 KB) 是错误的。

加了后,就正确了
out-ok.pdf (38.5 KB)

And … Thanks.

1 Like