ImageMagick只转换了PDF的第一页

27

我在使用ImageMagick时遇到了一些问题。

我已经在Windows 7 - 32位上安装了GhostScript v9.00和ImageMagick-6.6.7-1-Q16。

当我在cmd中运行以下命令:

convert D:\test\sample.pdf D:\test\pages\page.jpg

只有pdf的第一页被转换成pdf格式。我也尝试了以下命令:

convert D:\test\sample.pdf D:\test\pages\page-%d.jpg

这会创建第一个jpg文件名为page-0.jpg,但其他文件并没有创建。

如果有人能帮我解决这个问题,我将不胜感激。谢谢。

更新:

我使用了-debug "All"命令。

其中一行输出的结果是:

2011-01-26T22:41:49+01:00 0:00.727 0.109u 6.6.7 Configure Magick[5800]: nt-base.c/NTGhostscriptGetString/1008/Configure
registry: "HKEY_CURRENT_USER\SOFTWARE\GPL Ghostscript\9.00\GS_DLL" (failed)

这可能与GhostScript有关吗?


那个最后的命令是正确的,PDF 文件有多页吗?你能直接访问它们吗? - Orbling
是的,当我执行这个命令 convert .\test\sample.pdf[2] .\test\pages\page.jpg 时,它确实转换了第二页。 - Gabriel Spiteri
@ElGabbu:但是[2]是用于第三页。[0]是第一页(计数从零开始...) - Kurt Pfeifle
5个回答

41

你可以在文件名后面加上[]并指定一个数字来确定要转换的页面:

convert D:\test\sample.pdf[7] D:\test\pages\page-7.jpg

然而,使用您的命令后,它应该已经将所有页面转换为单独的图像。


可能是这样。我的理解是,除非您使用[]符号明确限制为单个页面,否则“convert”将处理PDF的所有页面。因此... 要么您的版本很奇怪,要么其他地方有问题。 - Marc B
结果发现PDF文件有问题:S...尝试使用其他PDF文件进行测试...并成功转换了一个129页的PDF。我现在会进行更多的测试,看看情况如何。再次感谢您的关注。我会将您的答案标记为正确,以表达我的感激之情。 - Gabriel Spiteri
1
添加[xx]后在Windows下出现“无法打开图像”、“没有此文件或目录”的错误!? - Stef
6
7 页将是第八页。第 0 页是第一页。计数从零开始。 - Kurt Pfeifle
@KurtPfeifle 我会说计数通常使用自然数并从1开始。然而,索引通常是基于零的,并且这里发生的事情就是我所指的。 - Erik
显示剩余2条评论

18

顺便说一下,如果您需要转换第一页和第二页,请以逗号分隔的数组形式提供

convert D:\test\sample.pdf[0,1] D:\test\pages\page.jpg

生成的JPEG文件将被命名为:

  • 第一页: page-0.jpg
  • 第二页: page-1.jpg

您还可以执行其他操作。

convert D:\test\sample.pdf[10,15,20-22,50] D:\test\pages\page.jpg

生成的 JPEG 文件将被命名为:

  • 第 11 页: page-10.jpg
  • 第 16 页: page-15.jpg
  • 第 21 页: page-20.jpg
  • 第 22 页: page-21.jpg
  • 第 23 页: page-22.jpg
  • 第 51 页: page-50.jpg

希望对某些人有所帮助。


6
根据ImageMagick论坛的管理员所说:
当ImageMagick发现Adobe Illustrator PDF时,它使用pngalpha设备。其中许多是单页的。理想情况下,Ghostscript将支持一个允许带有透明度的多个PDF页面的设备,但它没有...
解决方法很简单。编辑delegates.xml并将pngalpha更改为pnmraw。
这对我起作用了。但我不知道它是否会引入其他问题。
请参见他们论坛上此贴

5
我找到了一个解决方案,可以将pdf中的所有页面转换为一张jpg图片:
montage input.pdf -mode Concatenate -tile 1x output.jpg

Montage是 ImageMagick 中的一个功能模块。

该模块在 Ubuntu 13.04 上测试通过,ImageMagick 版本为 6.7.7-10。


有人能帮我吗?我应该在哪里写这个命令,以将PDF的所有页面转换为单个图像。我已经在我的系统中安装了Imagemagick。 - Rahul Sinha
@RahulSinha 打开控制台窗口并导航到您的 PDF 文件所在位置。如果“montage”可执行文件不在路径中,则应首先找到它。然后在该位置执行命令。 - Frank Sebastià
感谢您的帮助。 - Rahul Sinha

0

我在使用GhostScript时遇到了类似的问题。可以通过在输出文件名中使用%03d迭代器来解决这个问题。以下是示例:

gs -r300 -dNOPAUSE -dBATCH -sDEVICE#pngalpha -sOutputFile=output-%03d.png input.pdf

这里是包含详细信息的参考链接:https://ghostscript.com/doc/current/Devices.htm

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