From 5d7f8c07720d4fe3177c51ec3ba247352f396212 Mon Sep 17 00:00:00 2001 From: Dawn_Ocean <1785590531@qq.com> Date: Sun, 22 Oct 2023 21:42:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=B9=E4=B8=AD=E5=AD=98=E5=9C=A8=E5=A4=9A=E4=B8=AA=20.pdf?= =?UTF-8?q?=20=E6=96=87=E4=BB=B6=EF=BC=8C=E9=80=89=E6=8B=A9=E5=8F=91?= =?UTF-8?q?=E7=A5=A8=E6=96=87=E4=BB=B6=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 29 ++++++++++++++++++++++++----- 报销程序.exe | Bin 66766519 -> 66767214 bytes 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/main.py b/main.py index 0d750b1..2ee1611 100644 --- a/main.py +++ b/main.py @@ -16,7 +16,7 @@ def convert_all(path = os.path.abspath('.')): items = os.listdir(path) for item in items: if os.path.isdir(item): - result = convert_img(path + '\\' + item) + result = convert_img(item, path + '\\' + item) if result == 1: print("PDF 转换失败!") return @@ -26,19 +26,38 @@ def convert_all(path = os.path.abspath('.')): print("转换完毕!") """传入绝对路径""" -def convert_img(path = os.path.abspath('.')): +def convert_img(dir_name, path = os.path.abspath('.')): files = os.listdir(path) + pdf_list = [] for file in files: file = file.lower() # 排除 .PNG 等带来的问题 if file.endswith('.pdf'): result = pdf2img(path, file) if result: # 1 -> Error return 1 + pdf_list.append(file) elif file.endswith('.jpg') or file.endswith('.jpeg'): img = Image.open(path + '\\' + file) 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('.')): print("创建文件夹列表中...") @@ -81,7 +100,7 @@ def gen_docx(path = os.path.abspath('.')): for dir, dir_file in file_list.items(): parent_path = path + '\\' + dir + '\\' for file in dir_file: - if file[0:3] == "pdf": + if file[0:3] == "Pdf": dir_file.remove(file) dir_file.insert(0, file) doc.add_picture(parent_path + dir_file[0], height = Inches(2.5)) diff --git a/报销程序.exe b/报销程序.exe index 6b0dd8816c46e470acbcf97e1d85726463d10859..48821d182ec042bb8876c689669fb1fb893c4f57 100644 GIT binary patch delta 18794 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 delta 16107 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 J>qYk7{|A+T<*on#