增加了文件夹中存在多个 .pdf 文件,选择发票文件的功能

dev
Dawn_Ocean 2023-10-22 21:42:57 +08:00
parent bd63d92c50
commit 5d7f8c0772
2 changed files with 24 additions and 5 deletions

29
main.py
View File

@ -16,7 +16,7 @@ def convert_all(path = os.path.abspath('.')):
items = os.listdir(path) items = os.listdir(path)
for item in items: for item in items:
if os.path.isdir(item): if os.path.isdir(item):
result = convert_img(path + '\\' + item) result = convert_img(item, path + '\\' + item)
if result == 1: if result == 1:
print("PDF 转换失败!") print("PDF 转换失败!")
return return
@ -26,19 +26,38 @@ def convert_all(path = os.path.abspath('.')):
print("转换完毕!") print("转换完毕!")
"""传入绝对路径""" """传入绝对路径"""
def convert_img(path = os.path.abspath('.')): def convert_img(dir_name, path = os.path.abspath('.')):
files = os.listdir(path) files = os.listdir(path)
pdf_list = []
for file in files: for file in files:
file = file.lower() # 排除 .PNG 等带来的问题 file = file.lower() # 排除 .PNG 等带来的问题
if file.endswith('.pdf'): if file.endswith('.pdf'):
result = pdf2img(path, file) result = pdf2img(path, file)
if result: # 1 -> Error if result: # 1 -> Error
return 1 return 1
pdf_list.append(file)
elif file.endswith('.jpg') or file.endswith('.jpeg'): elif file.endswith('.jpg') or file.endswith('.jpeg'):
img = Image.open(path + '\\' + file) img = Image.open(path + '\\' + file)
dot_index = file.rfind('.') dot_index = file.rfind('.')
img.save(path + '\\' + file[dot_index:] + ".png", "PNG") img.save(path + '\\' + file[:dot_index] + ".png", "PNG")
if len(pdf_list) > 1:
print(f"注意到文件夹 {dir_name} 中有多个 .pdf 文件:")
for i in range(len(pdf_list)): # 打印 pdf 文件和选项
print(f"{i + 1} - {pdf_list[i]}") # 索引从 0 改为 1
while True:
invoice_index = input("请选择发票文件(输入选项前的阿拉伯数字):")
if not invoice_index.isdigit():
print("请输入数字!")
continue
else:
invoice_int = int(invoice_index) - 1 # 索引从 1 改为 0
if invoice_int < len(pdf_list) and invoice_int >= 0:
invoice_path = path + '\\' + "pdf" + pdf_list[invoice_int][:-4] + ".png"
invoice_renamed = path + '\\' + 'Pdf' + pdf_list[invoice_int][:-4] + ".png"
os.rename(invoice_path, invoice_renamed) # 将 "pdf" 标签变为 "Pdf"
break
else:
print("请选择正确的序号!")
def gen_filelist(path = os.path.abspath('.')): def gen_filelist(path = os.path.abspath('.')):
print("创建文件夹列表中...") print("创建文件夹列表中...")
@ -81,7 +100,7 @@ def gen_docx(path = os.path.abspath('.')):
for dir, dir_file in file_list.items(): for dir, dir_file in file_list.items():
parent_path = path + '\\' + dir + '\\' parent_path = path + '\\' + dir + '\\'
for file in dir_file: for file in dir_file:
if file[0:3] == "pdf": if file[0:3] == "Pdf":
dir_file.remove(file) dir_file.remove(file)
dir_file.insert(0, file) dir_file.insert(0, file)
doc.add_picture(parent_path + dir_file[0], height = Inches(2.5)) doc.add_picture(parent_path + dir_file[0], height = Inches(2.5))

Binary file not shown.