0
from pdf2image import convert_from_path
images = convert_from_path('path.pdf',poppler_path=r"E:/software/poppler-0.67.0/bin")
for i in range(len(images)):
        images[i].save('image_name'+ str(i) +'.jpg', 'JPEG')

但现在我想将 100 多个 pdf 文件转换为图像。有什么办法吗?提前致谢。

4

2 回答 2

0

您可能需要使用 os 模块。

第一步:

  • 像这样使用 os.listdir 函数
 os.listdir(path to folder containing pdf files)

获取该文件夹中的路径列表。

更具体地说os.isfile(),检查当前路径是文件还是文件夹。

  • 如果路径指向这样的文件,请执行转换。
images = convert_from_path('path.pdf',poppler_path=r"E:/software/poppler-0.67.0/bin")
for i in range(len(images)):
        images[i].save('image_name'+ str(i) +'.jpg', 'JPEG')

否则使用递归进一步遍历文件夹。这是一个 repo 的链接,我在其中递归地调整了文件夹中的图像大小。消化这个想法可能很有用。 链接到给定路径中图像的递归调整大小。

于 2021-09-18T18:39:33.473 回答
0

您可以使用 glob 将文件名“glob”到列表中:Python glob 在这里https://docs.python.org/3/library/glob.html - 但它是在 (* nix) 文件系统 [https://en.wikipedia.org/wiki/Glob_(programming)]。我认为它可以在 Windows 下工作:)

然后,您只需遍历文件。嘿,快!

import glob
from pdf2image import convert_from_path

poppler_path = r"E:/software/poppler-0.67.0/bin"

pdf_filenames = glob.glob('/path/to/image_dir/*.pdf')

for pdf_filename in pdf_filenames:
    images = convert_from_path(pdf_filename, poppler_path=poppler_path)
    for i in range(len(images)):
        images[i].save(f"{pdf_filename}{i}.jpg", 'JPEG')

!TIP:f"{pdf_filename}{i}.jpg"是一个python f-string,它可以让读者更好地了解字符串最终会是什么样子。您可能希望将那里的整数填充为零,因为在某些时候您可能想要“glob”那些或类似的东西。有很多方法可以实现这一点 - 请参阅如何将零填充到字符串?例如。

于 2021-09-18T17:46:39.827 回答