嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
针对部分扫描仪,有送纸器,可多页扫描但无正反面扫描功能,可以分别进行正、反面扫描,然后利用本软件进行PDF文件快速自动合并。
import PyPDF2
import tkinter as tk
from tkinter import filedialog
from tkinter.messagebox import *
def browse_files():
# 打开文件浏览对话框
global source_pdf1,label1
source_pdf1 = filedialog.askopenfilename(filetypes=[("PDF文件", "*.pdf")])
label1.config(text=source_pdf1)
def browse_files2():
# 打开文件浏览对话框
global source_pdf2
source_pdf2 = filedialog.askopenfilename(filetypes=[("PDF文件", "*.pdf")])
label2.config(text=source_pdf2)
def browse_files3():
# 创建一个隐藏的顶级窗口,防止tkinter报错(在没有主窗口时调用filedialog)
#root = tk.Tk()
#root.withdraw()
# 打开文件浏览对话框
global target_pdf
target_pdf = filedialog.asksaveasfilename(initialfile="合并PDF文件.pdf",filetypes=[("PDF文件", "*.pdf")])
if target_pdf and target_pdf.lower()[-4:]!=".pdf":
target_pdf=target_pdf ".pdf"
label3.config(text=target_pdf)
def insert_pages_from_pdf_to_pdf():
if not target_pdf or not source_pdf2 or not source_pdf1:
showinfo(title = "错误提示", message = "请选择正面PDF文件、反面PDF文件,并设置文件名称。")
return
"""
Insert pages from one PDF to another.
sort2:0反面正序;1反面逆序
:param source_pdf_path: Path to the source PDF file. :param
target_pdf_path: Path to the target PDF file where pages will be
inserted. :param start_page: The starting page number (0-based
index) to insert from the source PDF. :param end_page: The end page
number (0-based index) to insert from the source PDF. :param
insert_position: The position (0-based index) in the target PDF
where the pages will be inserted. """
target_pdf_writer=PyPDF2.PdfWriter()
# Open the source PDF file1
with open(source_pdf1, 'rb') as source_file1:
source_pdf_reader1 = PyPDF2.PdfReader(source_file1)
# Open the source PDF file2
with open(source_pdf2, 'rb') as source_file2:
source_pdf_reader2 = PyPDF2.PdfReader(source_file2)
if(len(source_pdf_reader1.pages)!=len(source_pdf_reader2.pages)):
return
n=len(source_pdf_reader1.pages)
for i in range(0,n):
target_pdf_writer.add_page(source_pdf_reader1.pages[i])
target_pdf_writer.add_page(source_pdf_reader2.pages[(n-1)*sort2-2*sort2*i i])
# Write the new PDF content back to the file
with open(target_pdf, 'wb') as target_file:
target_pdf_writer.write(target_file)
# Truncate the file to the correct size
target_file.truncate()
showinfo(title = "合并完成提示", message = "已按要求完成合并,请到相应文件夹查看合并文件!")
root = tk.Tk()
root.title("正反面PDF文件合并")
# root.geometry("800x300 600 300")
label0=tk.Label(root,text="正反面PDF文件合并",font=("黑体", 16))
label0.grid(row=0,column=0,columnspan=2)
browse_button1 = tk.Button(root, text="选择正面文件(1,3...n-1)", command=browse_files)
browse_button1.grid(row=1,column=0)
label1=tk.Label(root,text="")
label1.grid(row=1,column=1)
browse_button2 = tk.Button(root, text="选择反面文件(n...6,4,2)", command=browse_files2)
browse_button2.grid(row=2,column=0)
label2=tk.Label(root,text="")
label2.grid(row=2,column=1)
browse_button3 = tk.Button(root, text="设置合并文件名称(1,2...n)", command=browse_files3)
browse_button3.grid(row=3,column=0)
label3=tk.Label(root,text="")
label3.grid(row=3,column=1)
label4=tk.Label(root,text="")
label4.grid(row=5,column=0,columnspan=2,padx=300)
# Example usage
source_pdf1 = '' # Path to the source PDF file 1
source_pdf2 = '' # Path to the source PDF file 2
target_pdf = '' # Path to the target PDF file
sort2=1
browse_button3 = tk.Button(root, text="开始合并PDF文件", command=insert_pages_from_pdf_to_pdf)
browse_button3.grid(row=4,column=0,columnspan=2)
root.mainloop()