我使用 pdftk 命令行压缩 PDF 文件,命令如下:
pdftk file1.pdf output file2.pdf compress
我的文件大小减小了,看来它起到了作用。
是否有[选项]可以更改压缩方式???
或者其他压缩文件的解决方案?这是因为一些图形具有许多点而导致文件很重。是否有一种方法可以将这些图形转换为JPG格式,并适应压缩?
我使用 pdftk 命令行压缩 PDF 文件,命令如下:
pdftk file1.pdf output file2.pdf compress
我的文件大小减小了,看来它起到了作用。
是否有[选项]可以更改压缩方式???
或者其他压缩文件的解决方案?这是因为一些图形具有许多点而导致文件很重。是否有一种方法可以将这些图形转换为JPG格式,并适应压缩?
我遇到了同样的问题,并找到了两个不同的解决方案(有关更多详细信息,请参见此线程)。两种方法都显著减小了未压缩PDF的大小。
像素化(有损):
convert input.pdf -compress Zip output.pdf
非像素化(无损,但可能显示略有不同):
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH -dQUIET -sOutputFile=output.pdf input.pdf
编辑:我刚刚发现了另一个选项(用于无损压缩),避免了恶劣的 gs 命令。 qpdf 是一个不错的工具,可以转换 PDF 文件(压缩/解压缩、加密/解密),而且比 gs 命令快得多:
qpdf --linearize input.pdf output.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
- imrissgs
命令并不是完全无损的,因为它会降低嵌入的 JPG 图像的分辨率和质量。但就文本而言,它是无损的,保留为文本,而 convert
命令则将其转换为光栅图形。 - tanius-dPDFSETTINGS=
设置为/ebook
对我来说产生了非常好的输出结果:当然,它被压缩了,一些jpg伪像是可见的,但在一个合理的大小下完全可读。谢谢! - Joël尝试使用tiff2pdf
将400ppi的Tiffs(大部分为8位,少量为24位)使用PackBits压缩,并使用Zip/Deflate进行压缩来压缩PDF。这些方法中我遇到的一个问题是:以上所有方法都没有保留目录(TOC),而我在Acrobat Pro X中手动创建了它。甚至连gs
的推荐ebook
设置也是如此。当然,我可以打开保留目录的原始文件副本并执行Replace pages
,但不幸的是,这些方法起初都做得不够好。要么它们将大小减小得无法接受的像素化质量,要么它们根本没有减小大小,在某些情况下甚至会增加大小,尽管存在质量损失。
pdftk compress
:
no change in size
bookmarks TOC are gone
gs screen
:
takes a ridiculously long time and 100% CPU
errors:
sfopen: gs_parse_file_name failed. ?
| ./base/gsicc_manage.c:1651: gsicc_set_device_profile(): cannot find device profile
74.8MB-->10.2MB hideously pixellated
bookmarks TOC are gone
gs printer
:
takes a ridiculously long time and 100% CPU
no errors
74.8MB-->66.1MB
light blue background on pages 1-4
bookmarks TOC are gone
gs电子书
:
errors:
sfopen: gs_parse_file_name failed.
./base/gsicc_manage.c:1050: gsicc_open_search(): Could not find default_rgb.ic
| ./base/gsicc_manage.c:1651: gsicc_set_device_profile(): cannot find device profile
74.8MB-->32.2MB
badly pixellated
bookmarks TOC are gone
qpdf --linearize
:
very fast, a few seconds
no size change
bookmarks TOC are gone
pdf2ps
:
took very long time
output_pdf2ps.ps 74.8MB-->331.6MB
ps2pdf
:
pretty fast
74.8MB-->79MB
very slightly degraded with sl. bluish background
bookmarks TOC are gone
这个过程运行得相当不错。
pdf2ps large.pdf very_large.ps
ps2pdf very_large.ps small.pdf
试一试吧。
pdf2ps input.pdf tmp.ps
ps2pdf -dPDFSETTINGS=/screen -dDownsampleColorImages=true -dColorImageResolution=200 -dColorImageDownsampleType=/Bicubic tmp.ps output.pdf
调整-dColorImageResolution选项的值以获得符合您需求的结果(该值描述了图像的分辨率,单位为DPI)。如果您的输入文件是灰度的,可以通过将Color替换为Gray或在上述命令中同时使用这两个选项来帮助优化。通过将-dPDFSETTINGS选项更改为/default或/printer也可以进行进一步的微调。有关所有可能选项的说明,请参阅ps2pdf手册。
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH -dQUIET -dDownsampleColorImages=true -dColorImageResolution=200 -dColorImageDownsampleType=/Bicubic -sOutputFile=output.pdf input.pdf
- CeDeROM单行的pdf2ps选项(由Lee提供)实际上增加了pdf文件的大小。然而,使用两步操作效果更好。而且可以使用重定向从&到标准输入/输出和管道结合成一个单一的命令:
pdf2ps large.pdf - | ps2pdf - small.pdf
将由xsane生成的PDF文件从18 Mo降至630 ko!
链接会丢失,但对于当前的例子,这不是问题......并且这也是达到预期结果最简单的方法。
pdf2ps large.pdf small.pdf
就足够了,不需要分成两步
pdf2ps large.pdf very_large.ps
ps2pdf very_large.ps small.pdf
然而,ps2pdf large.pdf small.pdf
是更好的选择。
ps2pdf
更快pdf2ps
有时会产生更大的文件。out.pdf
,但它变成了一个 PS 文件(mimetype out.pdf
显示 out.pdf: application/postscript
)。 - myrddps2pdf
对我来说可以将 pdf 转换为 pdf。你可能把 ps2pdf
和 pdf2ps
搞混了吧? - myrddps2pdf
是否对您有所帮助,那就太好了(可以通过比较哈希值或使用“diffpdf”进行比较)。在我看来,ps2pdf
应该总是有效的,因为它使用pdfwrite
驱动程序,就像得票最高的gs
答案一样。- 我建议您在回答中指出ps2pdf
也可能有效(甚至在更多情况下可能有效)。 (如果您这样做,我会给您+1的;)。) - myrddps2pdf
更好。 - wsdzbm在nullglob建议下,我尝试了gpdf,但发现只需使用cups-pdf打印机即可获得相同的压缩结果(将一个约900mb的文件压缩至约30mb)。如果您已经查看文档并且只需要压缩一两个文档,则这可能更容易/更受欢迎。
在Ubuntu 12.04中,您可以通过以下方式安装:
sudo apt-get install cups-pdf
convert -density 125 original_file.pdf -quality 100 -compress Zip compress_file.pdf
使用以下命令,我的PDF文件压缩比为81%,视觉效果略有下降:
convert -density 100 original_file.pdf -quality 100 -compress Zip compress_file.pdf
在尝试了这里列出的所有答案后,我为具有大量图形的PDF获得的最佳结果是
pdftocairo input.pdf output.pdf -pdf
生成器: cairo 1.16.0 (https://cairographics.org)
我刚刚使用Okular的PDF打印功能,将一个由Keynote生成的140MB PDF文件转换成了2.8MB。虽然文本被转换为光栅图像,过度放大会显示像素,但图片保持相当清晰,适用于消息应用程序。