使用 gs 更改 pdf 图像 dpi

Posted

技术标签:

【中文标题】使用 gs 更改 pdf 图像 dpi【英文标题】:Changing pdf image dpi using gs 【发布时间】:2012-03-08 22:20:16 【问题描述】:

我正在尝试在 Linux/Ubuntu 11.10 中使用 gs 更改 .pdf 图像 (myPic.pdf) 的 dpi

这是我的做法,但我得到了错误:

 gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/printer \
    -sOutputFile=fileout.pdf \
     myPic.pdf`

在这里,我正在尝试根据this将 dpi 更改为 300

我尝试上述命令时收到的错误是:

**** Unable to open the initial device, quitting.

什么给了?

可能的解决方案:

签出this。

【问题讨论】:

【参考方案1】:

您的初始 Ghostscript 命令应该可以工作。

但是,如果您所在的目录对于运行该命令的用户而言是不可写的,您将收到类似的消息!

mbp:/$密码 / mbp:/$ ls -ld 。 drwxr-xr-x 38 根轮 1360 Mar 10 16:20 . mbp:/$ whoami 皮皮塔 mbp:/$ gs -o a.pdf -sDEVICE=pdfwrite -c 显示页 GPL Ghostscript 9.05 (2012-02-08) 版权所有 (C) 2010 Artifex Software, Inc. 保留所有权利。 此软件不提供任何担保:有关详细信息,请参阅文件 PUBLIC。 GPL Ghostscript 9.05:**** 无法打开文件 a.pdf。 **** 无法打开初始设备,退出。 mbp:/$ cd ~ mbp:/$密码 /用户/pipitas mbp:~$ ls -ld 。 drwxr-xr-x+ 3010 pipitas 员工 102340 Mar 13 22:01 。 mbp:~$ gs -o a.pdf -sDEVICE=pdfwrite -c showpage GPL Ghostscript 9.05 (2012-02-08) 版权所有 (C) 2010 Artifex Software, Inc. 保留所有权利。 此软件不提供任何担保:有关详细信息,请参阅文件 PUBLIC。

【讨论】:

我在一个读/写目录中。所以它不起作用是相当奇怪的。我会再次检查。谢谢! 这张支票的结果是什么?! 很遗憾我不太记得了。对不起。【参考方案2】:

成功了!

convert -units PixelsPerInch myPic.pdf -density 300 fileout.pdf

【讨论】:

Ummm...然而,这会给出一个看起来很粗糙的图像文件。 convert 来自 ImageMagick。它不会原生处理 PDF,而是保留其可能的矢量图形内容。它仅本地处理像素图像。为了“阅读”PDF,它使用 Ghostscript 作为 delegate,将(矢量)PDF 的页面转换为(像素)图像。一旦它是像素图像,地狱中的 ImageMagick 就无法返回基于矢量的 PDF。 (这就像你不能逆转牛排->肉末的过程。你不能从汉堡回到炸肉排,对吗?)。这就是为什么 ImageMagick 生成的 PDF 只是嵌入到薄 PDF 结构中的全页图像...... -- 最后,PDF 本身没有“分辨率”。只有嵌入在 PDF 页面中的像素图像才具有“分辨率”。因此,您的命令convert -units PixelsPerInch myPic.pdf -density 300 fileout.pdf 告诉 ImageMagick:'获取我的 PDF 文件并将其中包含的所有内容(无论是像素图像还是矢量对象)转换为一个 300dpi 图像并将该图像放回 PDF 页面! ' 您需要将-density 200放在输入文件名之前。

以上是关于使用 gs 更改 pdf 图像 dpi的主要内容,如果未能解决你的问题,请参考以下文章

适用于 iPad 的 PDF 页面大小 (dpi) 是多少?

Cocos2d 2.x:我似乎无法更改 3GS 的启动图像!它仍然显示 Cocos2d 橙色默认图像

使用 Photoshop 操作更改文件名

如何在不更改 C#.Net 中的分辨率的情况下裁剪图像?

如何像使用 Dpi 一样在 pyqtgraph 中保存高质量的图形图像?

将PDF转换为图像时,ImageMagick会更改颜色