如何对PDF文件中的图像进行缩减像素采样?

2022-09-01 10:19:37

需要一个基于 Java 的解决方案,或者最坏的情况是 Linux 的命令行。

我试图使用Ghostscript:

gs -sDEVICE=pdfwrite -dPDFA -dBATCH -dNOPAUSE -dUseCIEColor \
   -sProcessColorModel=DeviceCMYK -sPDFACompatibilityPolicy=1 \
   -sOutputFile=downgraded.pdf leon_range_my12_w22_brochure.pdf

但我有很多错误...


答案 1

下面是一个示例,说明如何使用 Ghostscript 命令行将所有(彩色、灰色和单声道)图像的像素下采样到 72dpi:

gs \
  -o downsampled.pdf \
  -sDEVICE=pdfwrite \
  -dDownsampleColorImages=true \
  -dDownsampleGrayImages=true \
  -dDownsampleMonoImages=true \
  -dColorImageResolution=72 \
  -dGrayImageResolution=72 \
  -dMonoImageResolution=72 \
  -dColorImageDownsampleThreshold=1.0 \
  -dGrayImageDownsampleThreshold=1.0 \
  -dMonoImageDownsampleThreshold=1.0 \
   input.pdf

更新:
这些参数强制要求分辨率高于目标分辨率 72 dpi 的所有图像进行缩减采样。如果未给定此参数(或将其设置为其他值),则将使用默认值:。此默认值将仅对值为 108 dpi(或更高)的图像进行缩减采样,而保留其他图像不变。*ImageDownsampleThreshold=1.0*ImageDownsampleThreshold=1.5


答案 2

这就是我正在使用的内容:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=OUTPUT.pdf INPUT.pdf

供您参考:

-dPDFSETTINGS=/屏幕(仅屏幕查看质量,72 dpi 图像)

-dPDFSETTINGS=/电子书(低质量,150 dpi 图像)

-dPDFSETTINGS=/打印机(高质量,300 dpi 图像)

-dPDFSETTINGS=/印前(高质量,保色,300 dpi imgs)

-dPDFSETTINGS=/default(几乎与 /screen 相同)


推荐