【问题标题】:Converting a multi page pdf to multiple pages using a single command使用单个命令将多页 pdf 转换为多页
【发布时间】:2013-06-06 04:55:34
【问题描述】:

我想有效地将​​多页 pdf 转换为单页图像。

我已经知道如何使用 imagemagick 一次完成这一页。例如,

convert x.pdf[2] x3.jpg

会给我 pdf 的第 3 页作为图像。因此,如果我使用 identify 计算出 pdf 中有多少页,那么我可以遍历并将 pdf 中的所有页面转换为图像。但是,此方法可能需要一段时间。例如,一份 15 页的 pdf 可能需要 15-30 秒。

根据我在其他地方(也在 imagemagick 论坛上)看到的答案,以下 imagemagick 命令应该将 pdf 拆分为多个图像。

convert x.pdf x-%0d.jpg

但所有这些最终都会创建名为 x-0.jpg

的第一个页面

作为替代方案,我尝试使用具有突发功能的 pdftk。我在那里遇到的问题是,burst 并非在所有情况下都有效。它适用于某些 pdf,但不适用于其他一些。

任何关于如何改进的建议都会有所帮助。

我的操作系统是 Mac OSX Lion,但我确实需要在 CentOS 6 上使用它。

【问题讨论】:

  • 当我直接使用 ghostscript - stackoverflow.com/questions/11002982/… 时,这个答案非常有效,那么为什么 imagemagick 不起作用?
  • ImageMagick convert 在 CentOS 上按预期工作。目前这似乎是 Mac 上的一个问题。
  • 这似乎只输出pdf的第一页,我在mac上
  • 该命令在我的 Mac 上运行良好(假设您确实有一个多页 PDF)并且您包含所需的零数,例如 %02d 或仅 %d 没有任何零。另一个问题可能是您没有在 ImageMagick 委托中安装 Ghostscript,或者您需要将 Ghostscript 作为委托升级到 ImageMagick。你的 ImageMagick 版本convert -version 是什么,它列出了 gs 还是 gslib? Ghostscript gs --version是什么版本。

标签: imagemagick ghostscript imagemagick-convert


【解决方案1】:

当我尝试转换我的多页 pdf 时,尽管 pdf 具有白色背景,但生成的图像文件具有灰色背景。 (@John P 对已接受的答案发表了评论,但我无法让他的评论直接为我工作。)

以下是使背景变白的方法:

convert -authenticate yourpassword -background white -alpha remove -alpha off -density 300 -quality 80 -verbose "Your file.pdf" "Your file.png"

我的 pdf 有一个密码,因此可以通过身份验证。 您可以在此处查看选项摘要:

-使用此密码验证值解密图像

-背景色背景色

-alpha on、activate、off、deactivate、set、opaque、copy"、透明、提取、背景或调整 alpha 通道

-密度几何图像的水平和垂直密度

-质量值 JPEG/MIFF/PNG 压缩级别

-verbose 打印图像的详细信息

更多详情:https://imagemagick.org/script/convert.php

还有 alpha 删除选项:http://www.imagemagick.org/Usage/masking/#alpha_remove

【讨论】:

    【解决方案2】:

    如果您在 Debian 上使用 Graphicsmagick 或在 macOS 上使用 ImageMagick,您可能必须将 ADJOIN 添加到您的命令中。 所以它应该看起来像

    convert x.pdf +adjoin x-%04d.jpg
    

    【讨论】:

    • “我的操作系统是 Mac OSX Lion,但我也需要在 CentOS 6 上使用它。”所以我担心他不在 Debian 上工作:-)
    【解决方案3】:

    您缺少数字的数量。使用:

    convert x.pdf x-%04d.jpg
    

    4 表示页数将显示 4 位数字。

    【讨论】:

    • 使用-flatten时,参数被展开,但只生成一张图片,N页,1/N不透明度——对PDF没用,分页是有原因的,但也许有意义在其他情况下。 -flatten 似乎是必要的,因为它默认填充灰色(为什么不是黑色或白色?显然是“妥协”。)并且不会接受 -transparency {black,...,white} 所建议的 zsh 完成,无论出于何种原因,这使用了不同的展平时的背景颜色。无论如何,你的方法是正确的,如果这是一个问题,只需使用-transparent-color
    【解决方案4】:

    遇到了同样的问题。重新安装 Imagemagick 以在 Mountain Lion 中工作。如果你简单地使用 brew

      $brew unlink imagemagick
      $brew install imagemagick
    

    【讨论】:

      猜你喜欢
      • 2016-03-11
      • 2010-10-15
      • 2015-04-18
      • 2013-12-27
      • 1970-01-01
      • 1970-01-01
      • 2014-09-23
      • 2023-03-11
      相关资源
      最近更新 更多