Python办公自动化之PDF(一)




1、Python操作PDF概述


Python操作PDF主要有两个库:PyPDF2和PDFPlumber

安装:

pip install PyPDF2
pip install pdfplumber

常用操作主要包括:拆分、合并、文字与表格提取、图片提取、添加水印、加密与解密等

2、批量拆分


操作步骤:

  • 读取PDF的整体内容
  • 遍历每一页,以step为间隔将PDF存成小文件块
  • 将小文件块重新保存为新的PDF文件
import os
from PyPDF2 import PdfReader, PdfWriter

# filepath:读取文件路径  filename:保存文件的统一命名  dirpath:保存文件路径  step:每隔多少页生成一个文件
def split_pdf(filepath, dirpath, filename, step):
    # 创建保存目录
    if not os.path.exists(dirpath):
        os.mkdir(dirpath)
    pdf_reader = PdfReader(filepath)
    # 读取每一页的数据
    page_list = pdf_reader.pages
    pages = len(page_list)
    for page in range(0, pages, step):
        pdf_writer = PdfWriter()
        # 拆分pdf,每step页的拆分为一个文件,如step=5,表示0-4页、5-9页...各为一个文件
        for index in range(page, page + step):
            if index < pages:
                pdf_writer.add_page(page_list[index])
        # 保存拆分后的小文件
        save_path = os.path.join(dirpath, filename + str(int(page / step) + 1) + '.pdf')
        print(save_path)
        with open(save_path, "wb") as out:
            pdf_writer.write(out)
    print("保存路径: " + dirpath)

split_pdf(r'C:\Users\cc\Desktop\test.pdf', r'C:\Users\cc\Desktop\PDF', 'pdf_split_', step=2)

3、批量合并


操作步骤:

  • 确定合并文件顺序
  • 循环追加到一个文件块中
  • 保存为一个新文件
# filepath:要合并的PDF文件目录  filename:原文件的统一命名  dirpath:合并后的保存路径
def concat_pdf(filepath, dirpath, filename):
    pdf_writer = PdfWriter()
    # ['pdf_split_1.pdf', 'pdf_split_2.pdf']
    list_filename = os.listdir(filepath)
    # 对文件进行排序
    list_filename.sort(key=lambda x: int(x[:-4].replace(filename, "")))
    for filename in list_filename:
        file_path = os.path.join(filepath, filename)
        print(file_path)
        # 读取文件并获取文件的页数
        pdf_reader = PdfReader(file_path)
        page_list = pdf_reader.page
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python办公自动化是指使用Python编程语言来实现办公场景中的自动化操作。这包括使用Python操作Word、Excel、PPT、PDF、邮箱等常用办公工具,以提高工作效率和减少重复性工作。自从去年4月发布第一篇Python办公自动化系列文章以来,已经更新了近四十个真实办公场景案例,涵盖了各种操作和应用场景。这些案例已经在全网累计阅读超过20W+次,得到了广泛的关注和认可。\[1\] 要实现Python办公自动化,你需要阅读这些案例,并思考如何将其中的核心思路抽象出来,结合自己的问题来实现属于你自己的Python办公自动化。\[2\] 在Python操作Excel、Word、PPT等办公工具时,你可能会用到一些库,比如xlrd3用于读取Excel表格,xlwt用于写入工作表,xlsxwriter用于支持大文件写入工作表,smtplib用于邮件发送,docx用于操作Word和PPT,win32com.client用于将Word转为PDF等。\[3\] 通过学习和应用这些库和案例,你可以实现各种办公自动化的需求,提高工作效率,减少重复性工作,让你的工作更加高效和便捷。 #### 引用[.reference_title] - *1* *2* [精心整理了40个Python办公自动化真实案例,一口一个,高效办公!](https://blog.csdn.net/weixin_41846769/article/details/114275390)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [python实现办公自动化](https://blog.csdn.net/XiaoWang_csdn/article/details/130786026)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值