【问题标题】:PDFBox convert PDF to TIFF. Reduce image size in bytesPDFBox 将 PDF 转换为 TIFF。以字节为单位减小图像大小
【发布时间】:2026-02-02 09:05:01
【问题描述】:

我正在尝试将 pdf 转换为 tiff 图像。我用 pdfbox 搞定了,但是图片太大了。

假设我的 PDF 大小是 224kb => 图像大小=1.4Mb

如何在不损失质量的情况下使 tiff 文件变小?

以下是部分代码:

TIFFImageWriterSpi tiffspi = new TIFFImageWriterSpi();
writer = tiffspi.createWriterInstance();
ImageWriteParam param = writer.getDefaultWriteParam();
TIFFImageWriteParam param2 = (TIFFImageWriteParam) writer.getDefaultWriteParam();
param2.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);

param2.setCompressionType("LZW");
param2.setCompressionQuality(1.0f);

writer.setOutput(output);
writer.write(null,new IIOImage(image,null,null),param2);

【问题讨论】:

  • “我怎样才能使 tiff 文件变小而不损失质量?” Magic?
  • 但是是不是可以通过一些设置使它变小,或者当 pdf 很小时,这个 tiff 文件有那么大是正常的吗?
  • 直接图像(99% 的时间)将大于等效的 PDF。问题是,您在 PDF 中看到的大部分内容都是由一些具有相关样式、字体和定位参数(通常也以文本表示)的文本生成的。当涉及到 OTOH 图像时,所有文本都已呈现为字形(可能是抗锯齿的 - 这进一步推高了文件大小)。无论如何,将“文本可搜索”PDF 缩减为普通旧图像的目的是什么? 尽管我很鄙视 PDF 格式,但我看不到将 PDF 转换为静态图像的意义。
  • 图片是什么格式,为什么不直接从PDF中提取呢?
  • 我尝试转换的 pdf 是一个 pdf 页面,其中包含一个图像,我从扫描合作伙伴处获得。打印合作伙伴要求打印 tiff,所以我需要将 pdf 转换为 tiff。

标签: java image pdf tiff pdfbox


【解决方案1】:

以下是一些准则:

  • 将颜色与您的输出相匹配。如果您正在渲染黑色和 白色使用双值输出,即每像素一位。如果 你的颜色很少,没有太多的阴影或混合,比如 突出着色或卡通风格的图形,使用 256 种颜色。仅有的 如果您的 PDF 中有照片,请使用全彩色。如果你必须 产生全彩,你对小巧的追求是注定的。
  • 使您的压缩与您的颜色深度相匹配。单色使用 CCITT T.4 或 CCITT T.6,对于 位序列。 LZW 最适用于 256 色等字节序列。 如果你必须制作全彩,你唯一的希望是体面 压缩是 jpeg,但这会使您的文本和线条模糊。

【讨论】:

    最近更新 更多