如何在 Python 中将多页 PDF 转换为每个 pdf 页面的 PNG 图像

How do I convert a multiple paged PDF into a PNG image per pdf page in Python

业余 Python 开发人员。我正在做一个项目,我使用多个 PDf,每个都有不同数量的页面(1-20ish),然后将它们转换为 PNG 文件以便稍后与 pytesseract 一起使用。

我在一个有 3 页的测试 pdf 上使用 pdf2image 和 poppler。问题是它只将 PDF 的最后一页转换为 PNG。我想“也许程序正在为每个 pdf 页面创建相同的文件名,并且每次迭代都会重写文件,直到只剩下最后一个 pdf 页面”所以我尝试编写程序,以便它会在每次迭代时更改文件名.这是代码。

from pdf2image import convert_from_path
images = convert_from_path('/Users/jacobpatty/vscode_projects/badger_colors/test_ai/10254_Craigs_Plumbing.pdf', 200)

file_name = 'ping_from_ai_test.png'
file_number = 0
for image in images:
    file_number =+ 1
    file_name = 'ping_from_ai_test' + str(file_number) + '.png'
    image.save(file_name)

这在两个方面都失败了。它只制作了 2 个 png 文件('ping_from_ai_test.png' 和 'ping_from_ai_test1.png'),而不是 3 个,当我点击 png 文件时,它们都只是最后一个 pdf 页面。我现在不知道该怎么办,有什么想法吗?

据我所知,您的代码只输出一个文件。问题是你的代码有错别字。

file_number =+ 1

实际上是一个赋值:

file_number = (+1)

这应该是

file_number += 1

试试这个而不是为图像中的图像做:

for n in range(len(images)):
    images[n].save('test' + str(n) + '.png')

这样行吗?