我有一个使用以下命令创建的 PDFPDF三明治。 PDF 的每一页都包含一个背景图像和一些前景文本。
我想减小背景图像的文件大小(而不是分辨率) - 并保留可选择的文本。
- 使用 ImageMagick 可以
convert
减小尺寸,但会删除文本。 ps2pdf
不会显着减小文件大小。gs -sDEVICE=pdfwrite -dPDFSETTINGS=/screen …
降低分辨率,但似乎没有重新压缩图像。qpdf --compress-streams=y --recompress-flate --optimize-images in.pdf out.pdf
只会产生微小的差异。
如果我提取背景图像并使用pngquant
或类似的图像,文件大小会大大减小。但我无法使用新图像来替换旧图像。
有什么方法可以压缩 PDF 中的图像,同时保持文本完整吗?
正如评论中所建议的,运行pdfimages -list output.pdf
给出:
page num type width height color comp bpc enc interp object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
1 0 image 3483 4800 rgb 3 8 jpeg no 11 0 300 300 1147K 2.3%
2 1 image 3483 4800 rgb 3 8 jpeg no 24 0 300 300 397K 0.8%
3 2 image 3483 4800 rgb 3 8 jpeg no 37 0 300 300 1441K 2.9%
4 3 image 3483 4800 rgb 3 8 jpeg no 50 0 300 300 1880K 3.8%
5 4 image 3483 4800 gray 1 8 jpeg no 63 0 300 300 1050K 6.4%
…
答案1
qpdf
具有重新压缩数据流,尤其是 PDF 中的图像的模式。
所以,像
qpdf --compress-streams=y --recompress-flate --optimize-images in.pdf out.pdf