使用ImageMagick和/或GhostScript将多页PDF转换为多个JPG
我正在尝试将一个多页的PDF文件转换成一组JPEG,PDF中的每一页对应一个。我花了好几个小时寻找如何做到这一点,最终我发现我需要安装Ghostscript。所以我这样做了(从这个网站上:我使用了2012年2月8日最新的链接“ghostscript-9.05.tar.gz”) 然而,即使安装/下载了此文件,我仍然无法完成我想要的任务。我应该把它保存在某个特别的地方,比如和ImageMagick放在同一个文件夹中吗 到目前为止,我发现的是:使用ImageMagick和/或GhostScript将多页PDF转换为多个JPG,pdf,imagemagick,jpeg,ghostscript,Pdf,Imagemagick,Jpeg,Ghostscript,我正在尝试将一个多页的PDF文件转换成一组JPEG,PDF中的每一页对应一个。我花了好几个小时寻找如何做到这一点,最终我发现我需要安装Ghostscript。所以我这样做了(从这个网站上:我使用了2012年2月8日最新的链接“ghostscript-9.05.tar.gz”) 然而,即使安装/下载了此文件,我仍然无法完成我想要的任务。我应该把它保存在某个特别的地方,比如和ImageMagick放在同一个文件夹中吗 到目前为止,我发现的是: 在命令提示符下,我将工作目录更改为ImageMagic
- 在命令提示符下,我将工作目录更改为ImageMagick文件夹,并将其保存在该文件夹中
- 然后我打字
接着是一些不可读的数字和大写字母。最后是:convert "<full file path to pdf>" "<full file path to jpg>"
不用说,经过数小时的深思熟虑,我认为我再也无法完成将PDF转换成JPG这一看似简单的任务了 我想要的是一些关于如何使这项工作一步一步的指示。不要漏掉任何东西,不管它看起来多么“明显”(尤其是任何涉及鬼魂脚本的东西)。这几个月来一直困扰着我和我的主管 为了进一步澄清,我们使用的是Windows XP操作系统。最终目的是用统计语言R调用这些命令行,并在脚本中运行。此外,我已经能够成功地将JPGs转换为PNG格式,反之亦然,但PDF就是不起作用While reading gs_lev2.ps: %%[ Error: invalidaccess; OffendingCommand: put ]%%
救命啊 这不需要ImageMagick,Ghostscript可以单独完成。(如果使用ImageMagick,它本身无法进行转换,它必须使用Ghostscript作为其“委托”。) 请尝试直接使用Ghostscript:
这将为每个页面创建一个新的JPEG,文件名将增加为page_001.jpg,page_002.jpg 注意,这也将创建使用c:\path\to\gswin32c.exe ^ -o page_%03d.jpg ^ -sDEVICE=jpeg ^ d:/path/to/input.pdf
设备的所有默认设置的jpeg(最重要的设置之一是分辨率为72dpi) 如果需要更高(或更低)的图像分辨率,可以添加其他选项:jpeg
gswin32c.exe ^ -o page_%03d.jpg ^ -sDEVICE=jpeg ^ -r300 ^ -dJPEGQ=100 ^ d:/path/to/input.pdf
将分辨率设置为300dpi,-r300
设置最高JPEG质量级别(Ghostscript的默认值为75) 另请注意:JPEG不太适合以高质量表示具有锐利边缘和高对比度的形状(如您通常在带有小字符的白色文本页面上看到的黑色)。 (有损)JPEG压缩方法针对连续色调图片+照片进行了优化,而不是线条图形。因此,对于主要包含文本的PostScript或PDF输入页面来说,它是次优的。这里,JPEG格式的有损压缩将导致输出质量较差,即使输入非常好。有关此主题的更多详细信息,请参见 通过选择PNG作为输出格式,您可以获得更好的图像输出(PNG使用无损压缩):-dJPEGQ=100
png16m设备产生24位RGB颜色。您可以将其交换为
(用于纯灰度输出)、pnggray
(用于8位颜色)、png256
(4位颜色)、png16
(仅黑白)或pngmono
(可选黑白模块)。也有许多SaaS服务可以为您提供此功能。我想到了海波和闪电线 (删除了R标记;您甚至还不能在命令行中执行。)您的路径上是否有pngmonod
可执行文件?我查阅了GS文档,发现了关于如何使用它进行转换的完全不同的说明。它适用于单页PDF吗?如果安装pdftk,可以键入convert
来创建pdftk input.pdf burst
,input_0001.pdf
,等等。然后,您可以尝试为每个页面调用input_0002.pdf
。这仍然给出相同的错误信息吗?这个答案正确吗?DWin,我有一个convert可执行文件。它在我的ImageMagick文件夹中。使用它,我可以在JPG/PNG之间进行转换。但我根本不能从PDF进行任何转换(甚至连一个页面都不能,但我可以从JPG转换为PDF,只是不能从PDF)。从我读过的其他地方来看,我觉得我应该使用GhostScript,但我不知道如何实现它。我先安装GS,然后Imagemagick在测试前重新启动电脑,它就工作了。你能用Imagemagick做其他事情来证明它是有效的吗?谢谢你的回复!当我尝试键入您给我的命令提示符时,它会显示“gswin32.exe-o不被识别为内部或外部命令、可操作或批处理文件”。我是否应该在命令提示符中键入?或者我应该有一个不同的目录吗?您似乎缺少一个空格:convert input_0001.pdf input_0001.jpg
,而不是gswin32.exe-o…
@Stephan Robert Kuban:不,您没有键入我给您的内容。我的示例在.exe-o
之后,在.exe
之前有一个空格--此外,每行末尾的-o
意味着您可以将所有行(包括^
)作为一个块复制到命令提示符中并执行它。它是“DOS提示符”和批处理文件的行延续符号。或者,您可以在一行中键入所有内容(但请跳过所有^
字符!)。当然,我假设您知道如何从命令提示符运行命令并正确设置PATH环境变量(您的PATH中安装了^
)。否则,只需使用如下完整路径:gswin32c.exe
…非常感谢。我终于让它工作了。我真的很感谢你的帮助。非常感谢你。e:\path\to\gswin32c.exe
gswin32c.exe ^ -o page_%03d.jpg ^ -sDEVICE=jpeg ^ -r300 ^ -dJPEGQ=100 ^ d:/path/to/input.pdf
gswin32c.exe ^ -o page_%03d.png ^ -sDEVICE=png16m ^ -r150 ^ d:/path/to/input.pdf