From 7291dc1dbba17be5c9095473581deed5c9d43a15 Mon Sep 17 00:00:00 2001 From: Dawn_Ocean <1785590531@qq.com> Date: Sun, 22 Oct 2023 23:59:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E4=B8=80=E9=A1=B5?= =?UTF-8?q?=E4=BB=85=E4=B8=A4=E5=BC=A0=E5=9B=BE=E7=89=87=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=96=87=E6=A1=A3=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 | 84 ++++++++++++++++++++++++--------------------------- 报销程序.exe | Bin 66767720 -> 66767775 bytes 2 files changed, 40 insertions(+), 44 deletions(-) diff --git a/main.py b/main.py index 1b07a04..14a564d 100644 --- a/main.py +++ b/main.py @@ -9,35 +9,30 @@ import fitz from docx2pdf import convert +from sys import exit + import os -def done(): +def done(exit_code = 0): print("正在移除多余生成文件...") for gen in gened_list: os.remove(gen) print("移除完毕!") - input("按任意键退出...") - exit() - - -def deal_file_loss(path, dir_name): - print(f" {dir_name} 文件夹中文件个数不符,请检查!") - done() + input("按回车键退出...") + exit(exit_code) def convert_all(path = os.path.abspath('.')): print("正在扫描并处理文件中...") items = os.listdir(path) for item in items: if os.path.isdir(item): - if len(os.listdir(path + '\\' + item)) < 3: - deal_file_loss(path, item) result = convert_img(item, path + '\\' + item) if result == 1: print("PDF 转换失败!") - done() + done(1) elif result == 2: print("JPG/JPEG 转换失败!") - done() + done(1) print("转换完毕!") """传入绝对路径""" @@ -89,16 +84,18 @@ def gen_filelist(path = os.path.abspath('.')): for dir in dir_list: file_list[dir] = os.listdir(path + '\\' + dir) for dir, dir_file in file_list.items(): - png_count = 0 dir_file_copy = copy(dir_file) for file in dir_file_copy: - if ".png" in file.lower(): - png_count += 1 - else: + if ".png" not in file.lower(): dir_file.remove(file) - if png_count != 3: + if len(dir_file) != 3: print(f"在{dir}文件夹发现错误:png文件个数不符") - done() + for file in dir_file: + print('- ' + file) + if len(dir_file) == 2: # 说明有两个文件 + option = input("文件夹仅有两个文件,仍继续生成?(y/N)").lower() + if option != 'y': + done(1) print("创建完毕!将要加入文档的文件如下:") for dir, dir_file in file_list.items(): print('- ' + dir) @@ -110,32 +107,31 @@ def gen_filelist(path = os.path.abspath('.')): return file_list def gen_docx(path = os.path.abspath('.')): - while True: - doc = Document() - file_list = gen_filelist() - input("按回车键确认...") - print("生成 .docx 文档中...") - if len(file_list) != 0: - for dir, dir_file in file_list.items(): - parent_path = path + '\\' + dir + '\\' - for file in dir_file: - 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)) - table = doc.add_table(rows = 1, cols = 2) - cell1 = table.cell(0, 0) - cell1.paragraphs[0].add_run().add_picture(parent_path + dir_file[1], height = Inches(5.0)) - cell2 = table.cell(0, 1) + doc = Document() + file_list = gen_filelist() + input("按回车键确认...") + print("生成 .docx 文档中...") + if len(file_list) != 0: + for dir, dir_file in file_list.items(): + parent_path = path + '\\' + dir + '\\' + for file in dir_file: + 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)) + table = doc.add_table(rows = 1, cols = 2) + cell1 = table.cell(0, 0) + cell1.paragraphs[0].add_run().add_picture(parent_path + dir_file[1], height = Inches(5.0)) + cell2 = table.cell(0, 1) + if len(dir_file) == 3: cell2.paragraphs[0].add_run().add_picture(parent_path + dir_file[2], height = Inches(5.0)) - if (dir, dir_file) != list(file_list.items())[-1]: # dict.items() 返回值需先转换为列表,才能索引 - doc.add_page_break() - else: - print("请检查文件命名是否正确!") - continue - doc.save("output.docx") - print("生成完毕!") - break + if (dir, dir_file) != list(file_list.items())[-1]: # dict.items() 返回值需先转换为列表,才能索引 + doc.add_page_break() + else: + print("请检查文件结构是否正确!") + done(1) + doc.save("output.docx") + print("生成完毕!") def pdf2img(pdf_path, pdf_name, zoom_x = 3, zoom_y = 3): doc = fitz.open(pdf_path + "\\" + pdf_name) # 打开文档 @@ -159,7 +155,7 @@ if __name__ == "__main__": print("生成 .pdf 文件中...") convert("output.docx", "output.pdf") print("生成完毕!") - done() + done(0) \ No newline at end of file diff --git a/报销程序.exe b/报销程序.exe index f1a67eb36ea56a8644382da7ad1eee0ff80da526..129b46d7cc1df29083a42182d37b81b5ef92d72a 100644 GIT binary patch delta 21264 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 delta 16681 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