【问题标题】:itext modifies TIFF images when creating PDF.itext 在创建 PDF 时修改 TIFF 图像。
【发布时间】:2015-02-19 16:51:24
【问题描述】:

我知道如何从 TIFF 创建 PDF。我的问题是: itext 如何在不修改原始 TIFF 的情况下仅嵌入它们?

我使用 document.add(img)(其中 img 是 TIFF)来创建 PDF。然而,TIFF 被修改为更小的尺寸。在这种情况下,我的原始未压缩黑白 TIFF 文件大小为 2.8 MB,被压缩为 CCITT Group 4 TIFF。

itext 有办法不修改 TIFF 吗?

【问题讨论】:

  • Jar 版本是 itext-5.5.4
  • 如果您想嵌入原始 TIFF 而不修改它们,请使用制作附件。
  • 另一种方法是在PDF/A-3中嵌入任意文件。当然,除非你有办法告诉,否则其他人不会知道任意文件是什么。 Bruno,iText 是否支持 PDF/A 标准(PDF/A-1?A-2?A-3?)
  • PDF/A-3 也使用文件附件嵌入任意文件。

标签: itext tiff


【解决方案1】:

请查阅 ISO-32000-1。如果您仔细阅读此标准,您会在 LZW 和 Flate 过滤器的上下文中找到对 TIFF 的引用,但您会发现 TIFF 不是 PDF 中可用的过滤器之一。表 6 显示了选项:

由于 PDF 不支持 TIFF,iText 没有其他选择,只能将其转换为可接受的格式。在你的情况下CCITTFaxDecode

如果您真的想保持 TIFF 原样,则需要将其添加为附件。这在我对这个问题的回答中得到了解释:Attaching files to a PDF

【讨论】:

  • 谢谢。这就是我的想法。所以输出是PNG文件。有没有办法输出为JPEG2000文件?
  • PDF 也不支持 PNG,所以我不明白您为什么说输出是 PNG 文件。 “有没有办法输出为JPEG2000”到底是什么意思?如果要将 TIFF 存储为 JPEG2000,则应先将 TIFF 转换为 JPEG2000 文件。 iText 查看 TIFF,并根据设计根据 TIFF 的性质做出选择。一些 TIFF 被转换以便使用 /CCITTFaxDecode 过滤器,其他的最终可以使用 /FlateDecode 甚至 /DCTDecode 过滤器。这完全取决于 TIFF。
  • 嗨,Bruno,当我运行“pdfReader”和“PdfReaderContentParser”处理图像时,输出格式为“png”。你的 iText 库也是这样做的吗?
  • 这是一个设计选择。当图像存储为压缩位图时,iText 将选择以 PNG 格式提供图像。但是,PdfImageObject 还允许您将图像作为BufferedImage 获取,因此您可以以 JVM 支持的任何格式输出图像。
猜你喜欢
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
  • 2012-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多