从 pdf 中提取页面作为 jpeg

新手上路,请多包涵

在python代码中,如何高效地将pdf中的某个页面保存为jpeg文件? (用例:我有一个 python flask Web 服务器,其中将上传 pdf-s 并存储与每个页面对应的 jpeg-s。)

这个解决方案 很接近,但问题是它不会将整个页面转换为 jpeg。

原文由 vishvAs vAsuki 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 519
2 个回答

可以使用 pdf2image 库。

您可以简单地使用安装它,

 pip install pdf2image

安装后,您可以使用以下代码获取图像。

 from pdf2image import convert_from_path
pages = convert_from_path('pdf_file', 500)

以 jpeg 格式保存页面

for page in pages:
    page.save('out.jpg', 'JPEG')


编辑:Github repo pdf2image 还提到它使用 pdftoppm 并且它需要其他安装:

pdftopm 是一款真正具有魔力的软件。它作为名为 poppler 的更大包的一部分分发。 Windows 用户必须安装 适用于 Windows 的 poppler 。 Mac 用户必须安装 poppler for Mac 。 Linux 用户将预装 pdftopm 发行版(在 Ubuntu 和 Archlinux 上测试),如果没有,请运行 sudo apt install poppler-utils

您可以通过以下方式使用 anaconda 在 Windows 下安装最新版本:

 conda install -c conda-forge poppler

注意:Windows 版本高达 0.67 可在 http://blog.alivate.com.au/poppler-windows/ 上获得,但请注意 0.68 于 2018 年 8 月发布, 因此您不会获得最新的功能或错误修复。

原文由 Keval Dave 发布,翻译遵循 CC BY-SA 4.0 许可协议

我发现这个简单的解决方案 PyMuPDF 输出到 png 文件。请注意,该库被导入为“fitz”,这是它使用的渲染引擎的历史名称。

 import fitz

pdffile = "infile.pdf"
doc = fitz.open(pdffile)
page = doc.load_page(0)  # number of page
pix = page.get_pixmap()
output = "outfile.png"
pix.save(output)

注意:库从使用“camelCase”更改为“snake_cased”。如果您遇到函数不存在的错误,请查看 已弃用的名称。上面示例中的函数已相应更新。

原文由 JJPty 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题