需要基于Java的解决方案,或者最糟糕的是,需要Linux的命令行。
我尝试使用Ghostscript:
gs -sDEVICE=pdfwrite -dPDFA -dBATCH -dNOPAUSE -dUseCIEColor \
-sProcessColorModel=DeviceCMYK -sPDFACompatibilityPolicy=1 \
-sOutputFile=downgraded.pdf leon_range_my12_w22_brochure.pdf
但是我犯了很多错误......
答案 0 :(得分:38)
以下是如何使用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
<强>更新强>
*ImageDownsampleThreshold=1.0
参数强制执行 所有 分辨率高于目标分辨率72 dpi的图像将被下采样。如果未给出此参数(或设置为其他值),则将使用默认值:*ImageDownsampleThreshold=1.5
。此默认值仅对具有108 dpi(或更高)值的图像进行下采样,并保持其他图像不受影响。
答案 1 :(得分:14)
这就是我正在使用的:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=OUTPUT.pdf INPUT.pdf
供您参考:
-dPDFSETTINGS = / screen(仅限屏幕视图质量,72 dpi图像)
-dPDFSETTINGS = / ebook(低质量,150 dpi图像)
-dPDFSETTINGS = / printer(高质量,300 dpi图像)
-dPDFSETTINGS = /印前(高品质,保色,300 dpi imgs)
-dPDFSETTINGS = / default(几乎与/ screen相同)
答案 2 :(得分:3)
尝试moonshiner,一个ghostscript的GUI。
答案 3 :(得分:2)
对于每个页面都是全彩色图像的扫描文档,我使用了上面的命令行和我在另一个站点上找到的另一个命令行的组合,
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true \
-dColorImageResolution=150 -dNOPAUSE -dBATCH -sOutputFile=output.pdf input.pdf
我的每个页面都是文档的彩色扫描。此命令行将页面的分辨率降低到150dpi,将文件大小减半,而不会显着降低分辨率。它看起来仍然很好,而且我的Nexus 7上的文字可以轻松阅读。