将pdf文件页面转换为图像-魔杖

初学者在这里:

当我仅将其用于一个pdf时,我的代码运行良好,但是一旦添加for循环,代码仍会运行,但是它只是将pdf的第一页转换为多页pdf,而不是全部。

例如,如果我的pdf是2页的xyz.pdf,它将把两个页面都转换为jpg并分别输出。但是,只要我同时为pdf xyz和abc运行代码,它就会转换两个pdf的首页。

我在这里想念什么?

from wand.image import Image as wi

for pdf_file in os.listdir(pdf_dir):                               
  if pdf_file.endswith(".pdf"):
   pdf = wi(filename= os.path.join(pdf_dir, pdf_file), resolution=300)
   pdfimage = pdf.convert("jpeg")
   i=1
   for img in pdfimage.sequence:
     page = wi(image=img)
     page.save(filename=os.path.join(pdf_dir, str(pdf_file[:-4] +".jpg")))
     i +=1
评论
qporro
qporro

为我工作:

def convert_pdf(filename, output_path, resolution=150):
    all_pages = wi(filename=filename, resolution=resolution)
    for i, page in enumerate(all_pages.sequence):
        with wi(page) as img:
            image_filename = os.path.splitext(os.path.basename(filename))[0]
            image_filename = '{}-{}.jpg'.format(image_filename, i)
            image_filename = os.path.join(output_path, image_filename)

            img.save(filename=image_filename)


for pdf_file in os.listdir(pdf_dir):
    if pdf_file.endswith(".pdf"):
        convert_pdf(os.path.join(pdf_dir, pdf_file), pdf_dir)

点赞
评论