我正在使用pdf2image将大约1600个文件夹中的PDF更改为JPG。我环顾四周,根据许多答案改编了代码,但这一部分似乎在某些文件夹中过度生成了JPG(很难说是哪一个)
在一个特定的例子中,使用AdobeAcrobat工具制作pdf可以创建447个JPG(正确的数量),但我的脚本可以创建1059个。我仔细查看,发现一些pdf页面多次保存为JPG,并插入到其他pdf文件的页面序列中
例如: PDF A有1个页面,并创建PDFA_page_1.jpg。 PDF B有44页,创建PDFB_page_1.jpg到…page_45.jpg,因为PDF A再次显示为page_10.jpg。如果这令人困惑,请告诉我
我尝试过混淆循环的索引部分(具体地说,使用页面而不是页面,将命名约定作为变量,而不是直接放入.save和.move函数中)
我还尝试在pdf2image.py中使用fmt='jpg'参数,但无法生成正确的命名方案,因为我不确定如何在没有for page in pages循环的情况下迭代页码
for pdf_file in os.listdir(pdf_dir):
if pdf_file.endswith(".pdf") and pdf_file.startswith("602024"):
#Convert function from pdf2image
pages = convert_from_path(pdf_file, 72, output_folder=final_directory)
print(pages)
pdf_file = pdf_file[:-4]
for page in pages:
#save with designated naming scheme <pdf file name> + page index
jpg_name = "%s-page_%d.jpg" % (pdf_file,pages.index(page)+1)
page.save(jpg_name, "JPEG")
#Moves jpg to the mini_jpg folder
shutil.move(jpg_name, 'mini_jpg')
#no_Converted += 1
# Delete ppm files
dir_name = final_directory
ppm_remove_list = os.listdir(dir_name)
for ppm_file in ppm_remove_list:
if ppm_file.endswith(".ppm"):
os.remove(os.path.join(dir_name, ppm_file))
没有错误消息,只是在某些情况下,JPG的数量是我预期的2-3倍。包含多个单页pdf的文件夹不会遇到此问题,包含单个多页pdf的文件夹也不会遇到此问题。一些包含多页PDF的文件夹也可以正常工作
如果您可以创建一个可复制的示例,请随意在官方存储库上打开一个问题,我不确定我是否理解这是如何发生的:https://github.com/Belval/pdf2image
请务必提供PDF示例,否则我无法测试
另外,使用
for i, page in enumerate(pages)
代替pages.index
,页码将为i + 1
相关问题 更多 >
编程相关推荐