【问题标题】:Converting a PDF to a series of images with Python使用 Python 将 PDF 转换为一系列图像
【发布时间】:2010-09-24 19:39:50
【问题描述】:

我正在尝试使用 Python 将多页 PDF 转换为一系列 JPEG。我可以使用可用工具轻松地将 PDF 拆分为单独的页面,但我找不到任何可以将 PDF 转换为图像的内容。

PIL 不起作用,因为它无法读取 PDF。我发现的两个选项是通过 shell 使用 GhostScript 或 ImageMagick。这对我来说不是一个可行的选择,因为这个程序需要是跨平台的,而且我不能确定这些程序中的任何一个都可以在将要安装和使用它的机器上使用。

是否有任何 Python 库可以做到这一点?

【问题讨论】:

标签: python pdf imagemagick jpeg python-imaging-library


【解决方案1】:

【讨论】:

  • 我想加入,是的,您可以将 ImageMagick 库包含在您的项目中 - 只需确保您查看许可条款,以便将适当的内容放入自述文件中跨度>
  • 想详细说明哪些绑定可能有用?
【解决方案2】:

以下是使用 python ghostscript 模块(由 '$ pip install ghostscript' 安装)对我有用的东西:

import ghostscript

def pdf2jpeg(pdf_input_path, jpeg_output_path):
    args = ["pdf2jpeg", # actual value doesn't matter
            "-dNOPAUSE",
            "-sDEVICE=jpeg",
            "-r144",
            "-sOutputFile=" + jpeg_output_path,
            pdf_input_path]
    ghostscript.Ghostscript(*args)

我还在我的电脑上安装了 Ghostscript 9.18,否则它可能无法正常工作。

【讨论】:

  • 这似乎创建了新图像,我可以看到 pdf 缩略图,但由于某种原因它不会关闭创建的新 jpeg 文件。我从 python ##### 246643328 c_void_p(246643328L) 得到这个输出有什么想法吗?
  • 你能帮我解决这个案子的问题吗? stackoverflow.com/questions/44448552/…
  • ghostscript 似乎不支持python3
  • @Idan Yacobi,谢谢!这是我的 python27 的最佳解决方案。
【解决方案3】:

【讨论】:

  • 如果相关,请在您的答案中提供相关部分
【解决方案4】:

如果您使用的是 linux,则某些版本会附带一个名为“pdftopbm”的命令行实用程序。查看netpbm

【讨论】:

    【解决方案5】:

    你无法避免 Ghostscript 依赖。甚至 Imagemagick 的 PDF 阅读功能也依赖 Ghostscript。其原因在于 PDF 格式的复杂性:PDF 不仅包含位图信息,而且主要包含矢量形状、透明度等。 此外,要弄清楚这些对象中的哪些出现在哪个页面上是相当复杂的。

    因此,PDF 页面的正确呈现显然超出了纯 Python 库的范围。

    好消息是 Ghostscript 已预装在许多 Windows 和 Linux 系统上,因为所有那些 PDF 打印机(Adobe Acrobat 除外)也需要它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-27
      • 2020-05-22
      • 1970-01-01
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 2017-04-15
      相关资源
      最近更新 更多