我使用pdftk使用以下命令行压缩pdf
pdftk file1.pdf output file2.pdf compress
它随着我文件重量的减少而起作用。
是否有[选项]来更改压缩率???
或者也许其他解决方案来压缩我的文件?这很重,因为某些图形有很多要点。有没有一种方法可以将这些图形转换为例如jpg并调整压缩率?
Answers:
我遇到了同样的问题,找到了两个不同的解决方案(有关更多详细信息,请参见此线程)。两者都大大减少了我未压缩的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
gs
答案中的命令并非完全无损,因为它会降低嵌入式JPG的分辨率和质量。但这是无损的。文本,将其保留为文本,而convert
命令将其转换为光栅图形。
-dPDFSETTINGS=
,以/ebook
给人一种很不错的输出,我:当然,它的压缩和一些JPG文物是可见的,但它是一个合理的规模完全可读。谢谢!
这个程序运作良好
pdf2ps large.pdf very_large.ps
ps2pdf very_large.ps small.pdf
试试看。
尝试使用tiff2pdf
Zip / Deflate压缩来压缩我用400ppi的tiff(大多数为8位,少数24位)和PackBits压缩制成的PDF 。这些方法中的每一种都存在一个问题:以上方法都没有保留我在Acrobat Pro X中精心创建的书签TOC。甚至没有推荐的ebook
设置gs
。当然,我可以打开原样并保持原样的副本,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 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中的图像分辨率)。如果您的输入文件是灰度的,则通过灰色替换颜色或使用上述命令中的两个选项也可能会有所帮助。通过将-dPDFSETTINGS选项更改为/ default或/ printer,可以进行进一步的微调。有关所有可能选项的说明,请参考ps2pdf手册。
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
)。
mimetype small.pdf
吗?
mimetype small.pdf
是small.pdf: application/pdf
。我认为程序可以根据后缀自动确定文件类型。
ps2pdf
更好。
使用qpdf时,文件大小没有减少很多。我发现的最好方法是在完成pdftk之后,使用ghostscript将pdf转换为postscript,然后再转换回pdf。在PHP中,您将使用exec:
$ps = $save_path.'/psfile.ps';
exec('ps2ps2 ' . $pdf . ' ' . $ps);
unlink($pdf);
exec('ps2pdf ' .$ps . ' ' . $pdf);
unlink($ps);
几分钟前,我用它来将pdftk输出从490k提升到71k。
我遇到了同样的问题,并且使用此功能压缩了单个页面,这导致文件大小最多被压缩为原始大小的1/3。
for (int i = 1; i <= theDoc.PageCount; i++)
{
theDoc.PageNumber = i;
theDoc.Flatten();
}
如果要压缩包含大量可选文本的PDF,则在Windows上可以使用NicePDF Compressor-选择“ Flate”选项。在尝试了所有内容(cpdf,pdftk,gs)之后,它最终帮助我将我的1360页PDF从500 MB压缩到10 MB。