pdftk压缩选项

我使用pdftk使用以下命令行来压缩PDF

pdftk file1.pdf output file2.pdf compress 

它随着我文件的重量减less而起作用。

有[选项]更改压缩?

或者也许其他解决scheme来压缩我的文件? 这是因为一些graphics有很多点很重。 有没有办法将这些graphics转换为JPG格式,并调整压缩?

我有同样的问题,并find两个不同的解决scheme(请参阅此线程的更多细节)。 这大大缩小了我的未压缩PDF的大小。

  • 像素化(有损):

     convert input.pdf -compress Zip output.pdf 
  • Unpixelated(无损,但可能略有不同):

     gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH -dQUIET -sOutputFile=output.pdf input.pdf 

编辑 :我刚刚发现了另一个选项(无损压缩),这避免了讨厌的GS命令。 qpdf是一个整洁的工具,可以转换PDF(压缩/解压缩,encryption/解密),比gs命令快得多:

 qpdf --linearize input.pdf output.pdf 

这个程序工作得很好

 pdf2ps large.pdf very_large.ps ps2pdf very_large.ps small.pdf 

试一试。

尝试压缩我用400ppi tiff制作的PDF,大部分是8位,24位,使用PackBits压缩,使用zip / tiff2pdf压缩tiff2pdf 。 上述每种方法都存在一个问题:上述方法都不能保留我在Acrobat Pro X中手动创build的书签TOC,甚至不推荐使用gs ebook设置。 当然,我可以在TOC完整的情况下打开一份原件的副本,并做一个Replace pages但不幸的是,这些方法都没有做出令人满意的工作。 要么他们缩小了尺寸,以至于质量不可接受地像素化,或者根本没有缩小尺寸,有一种情况实际上增加了质量,尽pipe质量损失了。

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 ebook

 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 

如果文件大小仍然过大,可以帮助使用ps2pdf来缩减生成的pdf文件的分辨率:

 pdf2ps input.pdf tmp.ps ps2pdf -dPDFSETTINGS=/screen -dDownsampleColorImages=true -dColorImageResolution=200 -dColorImageDownsampleType=/Bicubic tmp.ps output.pdf 

调整-dColorImageResolution选项的值以获得符合您需要的结果(该值描述DPI中的图像分辨率)。 如果您的input文件是灰度的,在上面的命令中replace颜色通过灰色或使用这两个选项也可以帮助。 通过将-dPDFSETTINGS选项更改为/ default/ printer,可以进一步进行微调。 有关所有可能的选项的解释,请参阅ps2pdf手册 。

build议使用gpdf后,我发现通过使用cups-pdf打印机,我得到了相同的压缩结果(一个〜900mb文件下降到〜30mb)。 如果您正在查看文档,只需要压缩一个或两个文档,则这可能会更容易/首选。

在Ubuntu 12.04中,你可以通过安装

 sudo apt-get install cups-pdf 

安装完成后,请务必检查系统工具 > pipe理 > 打印 >右键单击“PDF”并将其设置为“启用”

默认情况下,输出保存到主目录中名为PDF的文件夹中。

我没有看到很多使用qpdf的文件大小的减less。 我发现最好的方法是在pdftk完成后使用ghostscript将pdf转换为postscript然后转换回pdf。 在PHP中,你可以使用exec:

 $ps = $save_path.'/psfile.ps'; exec('ps2ps2 ' . $pdf . ' ' . $ps); unlink($pdf); exec('ps2pdf ' .$ps . ' ' . $pdf); unlink($ps); 

我几分钟前用这个来从490k到71k的pdftk输出。

如果你想压缩包含许多可选文本的PDF,在Windows上,你可以使用NicePDF Compressor – select“Flate”选项。 试了一下之后(cpdf,pdftk,gs)终于帮我把我的1360页PDF从500MB压缩到了10MB。

我有同样的问题,我用这个function来压缩单个页面,导致文件大小被压缩的原始大小的三分之一。

 for (int i = 1; i <= theDoc.PageCount; i++) { theDoc.PageNumber = i; theDoc.Flatten(); }