使用gs改变pdf图像dpi

3

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

以下是我的操作步骤,但是我遇到了错误:

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

这里我试图按照这个链接将dpi更改为300。

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

**** 无法打开初始设备,退出。

怎么回事?

可能的解决方案:

请查看此处

2个回答

2

你最初的Ghostscript命令应该可以运行。

然而,如果你所在的目录对于运行该命令的用户不可写入,你将会收到类似以下的消息!

mbp:/$ pwd
 /
mbp:/$ ls -ld . drwxr-xr-x 38 root wheel 1360 Mar 10 16:20 .
mbp:/$ whoami pipitas
mbp:/$ gs -o a.pdf -sDEVICE=pdfwrite -c showpage GPL Ghostscript 9.05 (2012-02-08) Copyright (C) 2010 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. GPL Ghostscript 9.05: **** Could not open the file a.pdf . **** Unable to open the initial device, quitting.
mbp:/$ cd ~
mbp:/$ pwd /Users/pipitas
mbp:~$ ls -ld . drwxr-xr-x+ 3010 pipitas staff 102340 Mar 13 22:01 .
mbp:~$ gs -o a.pdf -sDEVICE=pdfwrite -c showpage GPL Ghostscript 9.05 (2012-02-08) Copyright (C) 2010 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details.

我在一个可读/可写的目录中。所以它没能工作是相当奇怪的。不过我会再次检查。谢谢! - dearN
这个检查的结果是什么?! - Kurt Pfeifle
很遗憾,我不太记得了。抱歉。 - dearN

0

这个可行!

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


1
嗯...这会生成一个非常粗糙的图像文件。 - dearN
2
convert 来自 ImageMagick。它不能原生地处理 PDF,以保留其可能的矢量图形内容。它只能原生地处理像素图像。为了“读取”PDF,它使用 Ghostscript 作为代理,将(矢量)PDF 的页面转换为(像素)图像。一旦成为像素图像,ImageMagick 就无法返回到基于矢量的 PDF。 (这就像你无法将牛排->绞肉的过程反转。你不能从汉堡包回到鸡扒,对吧?)。这就是为什么 ImageMagick 生成的 PDF 只是嵌入到薄薄的 PDF 结构中的所有页面图像。 - Kurt Pfeifle
4
最后,PDF本身没有“分辨率”。只有嵌入PDF页面中的像素图像具有“分辨率”。因此,您的命令 convert -units PixelsPerInch myPic.pdf -density 300 fileout.pdf 告诉ImageMagick:“将我的PDF文件中包含的所有内容(无论是像素图像还是矢量对象)转换为一个单一的300dpi图像,并将该图像放回到PDF页面!” - Kurt Pfeifle
你需要在输入文件名之前加上 -density 200 - Andrea Lazzarotto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接