将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)