我使用gostscript将文本转换为轮廓,使用以下代码:gswin32c.exe -sDEVICE=pdfwrite -sOutputFile=output.pdf -dQUIET -dNOPAUSE -dBATCH -dNoOutputFonts -f test_new.pdf
,它可以工作。但我得到一个非常小的输出文件,从2.5M到70kb。然后我发现图片在pdf中变得模糊。< / p>
添加-dPDFSETTINGS=/default
,结果会相同。
我最好使用-dPDFSETTINGS=/printer or -dPDFSETTINGS=/prepress
,但300dpi对我(或我的老板)来说还不够。
有没有办法保持图片的原始分辨率。
或者如何在输出pdf中为图像设置更高的dpi。
测试文件为here。 提前致谢。
答案 0 :(得分:0)
您的问题的答案是“是”&#39; (但见后文)。不要使用PDFSETTINGS
,一次性设置很多的东西。如果您想要控制,则需要单独指定每个设置。
您需要阅读文档,确定哪些控件会影响您想要更改的区域,而不是仅使用此霰弹枪方法。
然而,图像下采样不是您的问题。如果您不使用-dPDFSETTINGS
,则Ghostscript编写的PDF文件包含的图像与原始文件中的图像完全相同。
您的问题是图像是使用JPEG压缩编写的,JPEG是有损压缩,因此您失去了保真度。请注意,在原始文件中,图像是未压缩的,这就是它如此之大的原因。
看起来原始图像是JPEG,并且您正在使用的免费PDF编辑器已经意识到它保存了未压缩的图像(我可能在这里给它太多的功劳,它可以保存所有未压缩的图像)。将JPEG应用于已经量化的图像只会放大人工制品。
相反,您需要指定您希望使用Flate压缩的图像,这是一种无损压缩。可以找到pdfwrite控件的文档here,您需要更改AutoFilterColorImages和ColorImageFilter。
请注意,通过不应用JPEG量化(第二次)和DCT编码,压缩率低于您的第一次体验。对我来说,输出文件只有600Kb以上(将字体保留在原位,文本作为文本,将减少几个Kb)。然而,正如预期的那样,图像是相同的。
由于您在商业环境中明显使用Ghostscript,我是否可以指向您的许可证并要求您检查您的使用是否与AGPL兼容,请记住这也包括软件作为服务使用。