初学者在这里:
当我仅将其用于一个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
答案 0 :(得分:1)
为我工作:
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)