import os
import PyPDF2
from tkinter import filedialog, Tk
def merge_pdfs(pdfs, output_file):
merger = PyPDF2.PdfFileMerger()
for pdf in pdfs:
merger.append(pdf)
merger.write(output_file)
merger.close()
return output_file
if __name__ == "__main__":
root = Tk()
root.withdraw()
pdfs = filedialog.askopenfilenames(title="Select PDF files to merge", filetypes=[("PDF Files", "*.pdf")])
if pdfs:
output_file = filedialog.asksaveasfilename(title="Save merged PDF as", defaultextension=".pdf", filetypes=[("PDF Files", "*.pdf")])
if output_file:
result_file = merge_pdfs(pdfs, output_file)
print(f"PDF files merged successfully into {os.path.basename(result_file)}")
这段代码做了以下几个改动:
使用正确的库名PyPDF2。
将PDF合并逻辑封装到了一个函数merge_pdfs程序中,以提高代码的可读性和模块性。
将主要的代码逻辑放入了if __name__ == "__main__":块中,以确保代码只在直接运行时执行,而不会在被导入为模块时执行。