从pdf中提取一页作为jpeg文件

18 浏览
0 Comments

从pdf中提取一页作为jpeg文件

在Python代码中,如何高效地将PDF的某一页保存为JPEG文件?

使用情况:我有一个Python Flask Web服务器,PDF将被上传并存储对应每个页面的JPEG。

这个解决方案很接近,但问题在于它没有将整个页面转换为JPEG。

admin 更改状态以发布 2023年5月23日
0
0 Comments

我发现了这个简单的解决方案,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)
doc.close()

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

fitz.Document类支持上下文管理器初始化:

with fitz.open(pdffile) as doc:
   ...

0
0 Comments

pdf2image库可以用于转换PDF为图片。

你可以通过简单的安装实现:

pip install pdf2image

安装完成后,你可以使用以下代码获取图片:

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

将页面以JPEG格式保存

for count, page in enumerate(pages):
    page.save(f'out{count}.jpg', 'JPEG')


编辑:Github代码库pdf2image还提到它使用了pdftoppm并且需要安装其他软件:

pdftoppm是完成转换的软件实体,它是作为更大的软件包poppler的一部分分发的。
Windows用户需要安装Windows版poppler
Mac用户需要安装Mac版poppler
Linux用户如果未预装pdftoppm,则可以通过运行sudo apt install poppler-utils来完成安装(在Ubuntu和Archlinux上已测试)。

你可以通过anaconda在Windows上安装最新版本:

conda install -c conda-forge poppler

注意:可在此处获取最高0.67版本的Windows版,但请注意,0.68于2018年8月发布,所以您将无法获取最新功能或错误修复。

0