python处理pdf文件-合并pdf

from tkinter import scrolledtext

import PyPDF2
import tkinter as tk
import ttkbootstrap as ttk
from tkinter import filedialog


def pdf_merge(pdf_merge_list):
    """pdf合并"""
    pdf_file_merge = PyPDF2.PdfFileWriter()
    for pdf_page in pdf_merge_list:
        print(pdf_page)
        pdf_file_reader = PyPDF2.PdfFileReader(pdf_page)
        # 遍历每个pdf的每一页
        for page in range(pdf_file_reader.getNumPages()):
            print(page)
            # 写入实例化对象中
            pdf_file_merge.addPage(pdf_file_reader.getPage(page))

    with open(r"合并1.pdf", 'wb') as pdf_merge_file:
        pdf_file_merge.write(pdf_merge_file)


pdf_merge_list = []


# 设置
def get_install_path():
    """选中pdf文件路径"""
    ts.delete(1.0, 'end')
    install_path = tk.filedialog.askopenfilenames()
    print(install_path)
    for filename in iter(install_path):
        houzhui = str(filename).split('/')[-1].split('.')[-1]
        if houzhui == 'pdf':
            ts.insert('end', filename + '\n')


def merge_pdf():
    pdf_lj = ts.get(1.0, 'end')
    pdf_lj_list=str(pdf_lj).split('\n')
    for pdf_name in pdf_lj_list:
        if pdf_name:
            pdf_merge_list.append(pdf_name)
    print(pdf_merge_list)
    pdf_merge(pdf_merge_list)

# 创建GUI对象窗口
root = ttk.Window(themename="superhero")
root.title('PDF处理')
root.geometry('370x350')

frame3 = ttk.Labelframe(root, bootstyle="info", text='程序执行信息')
ts = scrolledtext.ScrolledText(frame3, width=45, height=15)

frame3.grid(row=0, column=0)

ttk.Button(master=root, bootstyle="success", text='选择pdf文件路径', command=get_install_path).grid(row=1, column=0,
                                                                                              sticky='W')
ttk.Button(master=root, bootstyle="success", text='确定合并', command=merge_pdf).grid(row=1, column=0, sticky='E')

ts.pack()

root.mainloop()

实现效果如图:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值