pdftk压缩选项

Roc*_*nce 85 compression pdftk

我使用pdftk使用以下命令行压缩pdf

pdftk file1.pdf output file2.pdf compress
Run Code Online (Sandbox Code Playgroud)

它的工作原理是我文件的重量减少了.

是否有[选项]来改变压缩???

或者也许压缩我的文件的其他解决方案?它很重,因为有些图形有很多要点.有没有办法将这些图转换为例如jpg并调整压缩?

nul*_*lob 114

我有同样的问题,发现了两种不同的解决方案(更多细节请参见此主题).两者都大大减少了我的未压缩PDF的大小.

编辑:我刚刚发现了另一个选项(用于无损压缩),这避免了令人讨厌的gs命令.qpdf是一个简洁的工具,可以转换PDF(压缩/解压缩,加密/解密),并且比gs命令快得多:

qpdf --linearize input.pdf output.pdf
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用"打印机"PDF设置以获得更好的质量:`gs -sDEVICE = pdfwrite -dCompatibilityLevel = 1.5 -dPDFSETTINGS =/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile = output.pdf input.pdf` (26认同)
  • 将选项`-dPDFSETTINGS =`设置为`/ ebook`为我提供了一个非常好的输出:确定,它是压缩的并且一些jpg工件是可见的,但它对于合理的大小是完全可读的.谢谢! (12认同)
  • 要调整质量(以及尺寸),请更改PDFSETTINGS值.见http://ghostscript.com/doc/current/Ps2pdf.htm#Options (10认同)
  • 请注意,答案中的`gs`命令并非完全没有损失,因为它会降低嵌入式JPG的分辨率和质量.但它是无损的.文本,将其保留为文本,而`convert`命令将其转换为光栅图形. (6认同)
  • 真棒.gs为我工作,将4MB文件转换为339K.质量下降,但它充分发挥了我的作用. (3认同)
  • qpdf对我没有任何改变,zip压缩看起来很可怕,但是带有打印机设置的gs效果很好 (2认同)

jor*_*omo 34

这个程序运作得很好

pdf2ps large.pdf very_large.ps

ps2pdf very_large.ps small.pdf
Run Code Online (Sandbox Code Playgroud)

试试看.

  • 这不是一般解决方案.在许多情况下,生成的pdf更大. (7认同)
  • 对我来说,这是所有提到的解决方案中最好的.一些大图像从23MB下降到1.4MB,质量损失最小. (4认同)

hmj*_*jmh 22

尝试压缩我使用400ppi tiffs制作的PDF,大多数是8位,一些24位,使用PackBits压缩,使用tiff2pdfZip/Deflate压缩.我对这些方法中的每一个都遇到了一个问题:上述方法都没有保留我在Acrobat Pro X中手工创建的书签TOC.甚至没有推荐的ebook设置gs.当然,我可以在TOC完整的情况下打开原件的副本并做一个Replace pages但不幸的是,这些方法都没有做到令人满意的工作.要么它们的尺寸减小太多以至于质量无法接受像素化,要么它们根本没有减小尺寸,并且在一种情况下实际上增加了它,尽管质量损失.

pdftk compress:

no change in size
bookmarks TOC are gone
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

qpdf --linearize:

very fast, a few seconds
no size change
bookmarks TOC are gone
Run Code Online (Sandbox Code Playgroud)

pdf2ps:

took very long time
output_pdf2ps.ps 74.8MB-->331.6MB
Run Code Online (Sandbox Code Playgroud)

ps2pdf:

pretty fast
74.8MB-->79MB
very slightly degraded with sl. bluish background
bookmarks TOC are gone
Run Code Online (Sandbox Code Playgroud)

  • 这是非常有价值的研究(谢谢!)但它也不是一个答案,以至于我暂时考虑了否决票。 (2认同)
  • 这不是答案吗? (2认同)

小智 17

如果文件大小仍然太大,可能有助于使用ps2pdf缩小生成的pdf文件的分辨率:

pdf2ps input.pdf tmp.ps
ps2pdf -dPDFSETTINGS=/screen -dDownsampleColorImages=true -dColorImageResolution=200 -dColorImageDownsampleType=/Bicubic tmp.ps output.pdf
Run Code Online (Sandbox Code Playgroud)

调整-dColorImageResolution选项的值以获得符合您需求的结果(该值描述DPI中的图像分辨率).如果您的输入文件是灰度,则通过灰色替换Color或使用上述命令中的两个选项也可能有所帮助.通过将-dPDFSETTINGS选项更改为/ default/ printer,可以进一步微调.有关所有可能选项的说明,请参阅ps2pdf手册.

  • 谢谢。我认为没有适合每个人用例的通用解决方案 - 但我尝试了该线程上的几乎所有解决方案,这是唯一对我有用的解决方案!能够“调整” dColorImageResolution 参数是关键 - 必须使文档大小足够小,以便该政府网站能够接受它,但又足够大以易于阅读。谢谢山姆叔叔,让我又经历了一次痛苦的经历:) (2认同)

小智 7

一行 pdf2ps 选项(由 Lee)实际上增加了 pdf 大小。不过,两步走一步效果更好。并且可以使用从 & 到标准输入/输出和管道的重定向将其组合为一个:

pdf2ps 大.pdf - | ps2pdf - 小.pdf

确实将 xsane 生成的 PDF 从 18 Mo 减少到 630 ko!

链接丢失,但对于本示例而言,这不是问题......并且是实现所需结果的最简单方法。

  • 您可以尝试使用“ps2pdf”,请参阅[我的评论](/sf/ask/370766721/?noredirect=1#comment93590084_50237222)对@Lee的回答。 (2认同)

Lee*_*Lee 6

pdf2ps large.pdf small.pdf 就够了,而不是两步

pdf2ps large.pdf very_large.ps 
ps2pdf very_large.ps small.pdf
Run Code Online (Sandbox Code Playgroud)

不过,ps2pdf large.pdf small.pdf是更好的选择。

  • ps2pdf 快得多
  • 如果没有指定额外的参数,pdf2ps有时会产生更大的文件。