dea*_*arN 12 pdf size resolution ghostscript image-resizing
我有大约50-60个pdf文件(图像),每个文件大1.5MB.现在我不想在我的论文中有如此大的pdf文件,因为这会使下载,阅读和打印成为后方的痛苦.所以我尝试使用ghostscript执行以下操作:
gs \
-dNOPAUSE -dBATCH \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.4 \
-dPDFSETTINGS="/screen" \
-sOutputFile=output.pdf \
L_2lambda_max_1wl_E0_1_zg.pdf
Run Code Online (Sandbox Code Playgroud)
但是,现在我的1.4MB pdf是1.5MB大.
我做错了什么?有什么办法可以检查pdf文件的分辨率吗?我只需要300dpi的图像,所以有人会建议使用convert更改分辨率,或者有一些我可以改变图像分辨率(减少它)gs,因为我使用时图像非常粗糙convert
我如何使用转换:
convert \
-units PixelsPerInch \
~/Desktop/L_2lambda_max_1wl_E0_1_zg.pdf \
-density 600 \
~/Desktop/output.pdf
Run Code Online (Sandbox Code Playgroud)
http://dl.dropbox.com/u/13223318/L_2lambda_max_1wl_E0_1_zg.pdf
Kur*_*fle 16
如果你运行Ghostscript,-dPDFSETTINGS=/screen这只是一种捷径.实际上,您将(隐式地)获得一大堆使用的设置,您可以使用以下命令进行查询:
gs \
-dNODISPLAY \
-c ".distillersettings {exch ==only ( ) print ===} forall quit" \
| grep '/screen'
Run Code Online (Sandbox Code Playgroud)
在我的Ghostscript(v9.06prerelease)上,我得到以下输出(稍加编辑以提高可读性):
/screen
<< /DoThumbnails false
/MonoImageResolution 300
/ColorImageDownsampleType /Average
/PreserveEPSInfo false
/ColorConversionStrategy /sRGB
/GrayImageDownsampleType /Average
/EmbedAllFonts true
/CannotEmbedFontPolicy /Warning
/PreserveOPIComments false
/GrayImageResolution 72
/GrayACSImageDict <<
/ColorTransform 1
/QFactor 0.76
/Blend 1
/HSamples [2 1 1 2]
/VSamples [2 1 1 2]
>>
/ColorImageResolution 72
/PreserveOverprintSettings false
/CreateJobTicket false
/AutoRotatePages /PageByPage
/MonoImageDownsampleType /Average
/NeverEmbed [/Courier
/Courier-Bold
/Courier-Oblique
/Courier-BoldOblique
/Helvetica
/Helvetica-Bold
/Helvetica-Oblique
/Helvetica-BoldOblique
/Times-Roman
/Times-Bold
/Times-Italic
/Times-BoldItalic
/Symbol
/ZapfDingbats]
/ColorACSImageDict <<
/ColorTransform 1
/QFactor 0.76
/Blend 1
/HSamples [2 1 1 2]
/VSamples [2 1 1 2] >>
/CompatibilityLevel 1.3
/UCRandBGInfo /Remove
>>
Run Code Online (Sandbox Code Playgroud)
我想知道你的PDF是否是图像密集的,如果这种转换不受欢迎的事情(重新采样带有"错误"参数的图像)会增加文件大小...
如果是这种情况(图像密集的PDF),请告诉我们,我将用一些建议更新这个答案....
我看了一下DNA提供的样本文件.有趣...
不,它不包含任何图像.
相反,它包含一个/FlateDecode大流(使用压缩),其中包含大约700.000+(!!)操作,主要是PDF语言中的单向量操作,例如:
m(moveto),
l(lineto),
d(setdash),
w(setlinewidth),
S(中风),
s(closepath和中风),
W*(eoclip),
rg和RG(setrgbcolor)
和更少数.
(那段PDF代码编写的AFAICS效率非常低(但确实如此),因为它确实连接了许多短笔画而不是"长"笔画,并且几乎每个笔画都会再次定义颜色(即使它与以前相同),并具有所有其他开销(开始笔划,结束笔划......).
Ghostscript 在这里-dPDFSETTINGS=/screen没有任何影响(例如,没有图像可以下采样).增加的文件大小(准确地说是+48 kByte)可能是由于Ghostscript在解释文件时将一些内部描边等命令重新组织为不同的顺序.
所以关于PDF文件大小,你无能为力 ......
gs \
-o out72.png \
-sDEVICE=pngalpha \
L_2lambda_max_1wl_E0_1_zg.pdf
(I所使用的pngalpha输出以获得透明背景.)所述的图像尺寸"out.png"是259x213px,文件大小是现在70 k字节.但我相信你不会喜欢这个品质:-)
输出质量"不好",因为Ghostscript使用72 dpi的默认分辨率.
既然你说你想拥有300dpi,那么命令就变成了:
gs \
-o out300.png \
-sDEVICE=pngalpha \
-r300 \
L_2lambda_max_1wl_E0_1_zg.pdf
Run Code Online (Sandbox Code Playgroud)
文件大小现在是750 kByte,图像尺寸是1080x889像素.
由于Curiosity现在很流行...... :-) ...我试图在Mac上使用Adobe Acrobat X Pro帮助降低文件大小.
你想知道结果吗?
执行"另存为...(缩小文件大小的PDF)" - 这对我来说过去总能产生非常好的结果! - 创建了一个1,8 ++ MByte文件(+ 29%).我想这肯定会把Ghostscript的性能(文件大小增加+ 3%)变成现实的视角!
| 归档时间: |
|
| 查看次数: |
19894 次 |
| 最近记录: |