【自动化办公】超多PDF手动添加水印太麻烦怎么办,几行代码就能搞定!!(Python)

介绍

在日常工作中,有时我需要给大量的 PDF 文件添加水印。一个两个还好,但是如果有一二十个甚至四五百个个,如果都是手动给每个 PDF 文件添加水印,这项任务就会变得非常繁琐和耗时。

浪费时间来睡觉、享受美食上我一点都无所谓,但浪费时间在工作上,这是我绝不能接收的!!

针对这一痛点,我开始寻找自动化的解决方案,以提高效率并减轻工作负担。

痛点

手动为大量 PDF 文件添加水印存在以下痛点:

  1. 时间消耗: 逐个打开 PDF 文件、添加水印、保存文件,这一过程耗时繁琐。
  2. 重复劳动: 对于每个 PDF 文件都需要重复相同的操作,效率低下,时间花出去了,钱是一点也没挣到。
  3. 容易出错: 手动操作容易出现失误,如选择错误的文件、遗漏某些文件等,导致不一致或遗漏。

编程解决

针对上述痛点,我准备通过程序实现自动化添加水印。很快,我用 Python 实现了将目标目录下所有PDF文件添加指定水印并输出在指定目录的功能,还可以对加水印后的PDF文件名添加自定义后缀。

版权声明:

版权所有 (c) 2024 课补乐科技工作室,作者:微信公众号KeepLearner

本程序知识产权属于作者和工作室。特此免费授予任何单位或个人获得本程序和相关文件副本,不受限制地使用、复制、修改、发布本程序,但不允许以任何形式(包括但不限于:以源代码形式、以二进制形式、以修改后的代码形式)向第三方出售、出租、转让本程序。

向外发布时应在显著位置注明来源(微信公众号KeepLearner)。

联系方式:

  • 微信:KeepLearn666
  • 微信公众号:KeepLearner
  • 博客:KeepLearner,终身学习者的家园
import os  # 导入操作系统模块
from PyPDF2 import PdfReader, PdfWriter  # 导入 PyPDF2 库中的 PdfReader 和 PdfWriter 类

def add_watermark_to_pdf(pdf_file, watermark_file, output_directory, output_suffix):
    '''
    合并水印到PDF文件中
    :param pdf_file: 输入文件路径
    :param watermark_file: 水印文件路径
    :param output_directory: 输出文件路径
    :param output_suffix: 输出文件后缀
    :return:
    '''
    pdf_reader = PdfReader(pdf_file)  # 读取需要添加水印的文件
    pdf_writer = PdfWriter()  # 创建PDF文件写入对象
    watermark_file = PdfReader(watermark_file)  # 读取水印PDF(假设水印页只有一页)

    for page_num in range(len(pdf_reader.pages)):  # 遍历每一页PDF对象
        pdf_page = pdf_reader.pages[page_num]  # 获取PDF的当前页对象
        pdf_page.merge_page(watermark_file.pages[0])  # 将水印页合并到当前页中
        pdf_writer.add_page(pdf_page)  # 将合并后的PDF对象页添加到PDF写入对象中

    output_file = os.path.join(output_directory, os.path.basename(pdf_file).replace('.pdf', output_suffix + '.pdf'))  # 构建输出文件路径
    with open(output_file, 'wb') as output:  # 打开输出文件
        pdf_writer.write(output)  # 写入PDF内容到输出文件


def process_directory(input_directory, watermark_file, output_directory, output_suffix):
    for root, dirs, files in os.walk(input_directory):  # 遍历输入目录下的所有文件和子目录
        for dir in dirs:  # 遍历所有子目录
            process_directory(os.path.join(root, dir), watermark_file, output_directory, output_suffix)  # 递归处理子目录
        for file in files:  # 遍历所有文件
            if file.endswith('.pdf'):  # 判断文件是否为PDF格式
                file_path = os.path.join(root, file)  # 构建文件路径
                add_watermark_to_pdf(file_path, watermark_file, output_directory, output_suffix)  # 调用添加水印函数处理PDF文件

# 在这里修改自定义设置:
input_directory = "PDF文件目录"  # 输入PDF文件目录
watermark_file = "水印文件完整目录.pdf"  # 水印文件路径
output_directory = "加水印的PDF文件输出目录"  # 输出目录
output_suffix = "自定义后缀-【公众号KeepLearner】"  # 输出文件后缀

process_directory(input_directory, watermark_file, output_directory, output_suffix)  # 调用处理目录函数开始处理PDF文件

自动化的魅力

通过以上代码,我们可以实现自动化添加水印的功能。只需简单地设置输入目录、水印文件路径、输出目录和输出后缀,代码就会自动处理所有的 PDF 文件,为每个文件添加水印,大大节省了时间和精力。

其他可自动化的工作

除了添加水印,还有许多工作可以通过自动化来实现,例如:

  • 数据处理: 自动处理大量的数据文件,进行清洗、转换和分析。
  • 测试自动化: 编写自动化测试脚本,自动化执行测试用例,提高测试效率。
  • 持续集成和部署: 使用自动化工具进行持续集成和部署,实现快速、稳定的发布流程。
  • 任务调度: 编写脚本自动执行定时任务,如备份数据、生成报告等。

通过自动化这些工作,不仅可以节省时间和精力,还可以提高工作效率和质量,让我们更专注于解决问题和创造价值。 版权声明:版权所有 (c) 2024 课补乐科技工作室,作者:微信公众号KeepLearner,转载请注明出处!!

你可能感兴趣的:(Python,PDF水印,自动化办公)