使用ghostscript 9.21将文字转为轮廓,如何保持图片的分辨率

Use gostscript 9.21 to convert text to outlines, and how to keep the resolution of the picture

我使用 gostscript 通过以下代码将文本转换为轮廓:gswin32c.exe -sDEVICE=pdfwrite -sOutputFile=output.pdf -dQUIET -dNOPAUSE -dBATCH -dNoOutputFonts -f test_new.pdf,它 works.But 我得到了一个非常小的输出文件,从 2.5M 到 70kb.Then 我找到了图片在 pdf 中变得模糊。

添加-dPDFSETTINGS=/default,结果相同

我最好用-dPDFSETTINGS=/printer or -dPDFSETTINGS=/prepress,但300dpi对我(或我老板)来说不够。

有什么办法可以保持图片的原始分辨率

或者如何为输出 pdf 中的图像设置更高的 dpi。

测试文件是here。 提前致谢。

您的问题的答案是 'yes'(但请稍后查看)。不要使用 PDFSETTINGS,它会一次性设置 lots 的东西。如果你想要控制,那么你需要单独指定每个设置。

您无需使用这种散弹枪方法,而是需要阅读文档,确定哪些控件会影响您想要更改的区域,然后仅更改这些控件。

但是,图像下采样不是您的问题。如果您不使用 -dPDFSETTINGS,则由 Ghostscript 编写的 PDF 文件包含与原始文件中的图像分辨率完全相同的图像。

你的问题是图像是用 JPEG 压缩写入的,而 JPEG 是一种有损压缩,所以你失去了保真度。请注意,在原始文件中,图像是未压缩的,这就是它如此之大的原因。

看起来原始图像是 JPEG,您使用的免费 PDF 编辑器已经意识到这一点,所以它保存了未压缩的图像(我可能在这里给予它太多的信任,它可能会保存所有未压缩的图像) .将 JPEG 应用于已经量化的图像只会放大伪像。

相反,您需要指定要使用 Flate 压缩图像,这是一种无损压缩。可以找到 pdfwrite 控件的文档 here,您需要更改 AutoFilterColorImages 和 ColorImageFilter。

请注意,由于不应用 JPEG 量化(第二次)和 DCT 编码,压缩比您第一次体验的要少。对我来说,输出文件刚好超过 600Kb(保留字体和文本文本,会小几 Kb)。然而,正如预期的那样,图像是相同的。

由于您显然是在商业环境中使用 Ghostscript,我能否仅向您指出许可证并要求您检查您的使用是否与 AGPL 兼容,请记住这涵盖了软件即服务的使用嗯