15.如何用ChatGPT 批量给PDF加水印

这是零基础玩ChatGPT+Python——办公自动化的第15节:利用ChatGPT修改Python代码,批量给PDF加水印。

教程目的: 初步掌握用ChatGPT批量操作PDF,节省时间

阅读对象: 需要用ChatGPT提高工作效率、摆脱重复无聊工作、无Python基础、或Python入门者。

场景:

日常工作中,会遇到一些要给PDF文件加水印的场景

这些常见、简单的PDF功能,某些软件尽然要开会员才能使用。

有了ChatGPT后,再辅以Python进行PDF操作,不仅速度更快,而且还省钱。

一、软件准备

1.1 ChatGPT账号。

如果没有账号,嫌麻烦,可以在银河录像局的“AI百宝箱”里购买: https://nf.video/yinhe/web?sharedId=127297

也可以自己免费注册: http://yesaiwen.com/chatgpt-plus-register-yourself/

1.2 vscode:免费。 参考安装教程: http://yesaiwen.com/how-to-use-the-python-code-generated-by-chatgpt/

二、素材准备

在下面的这个链接里,找到相应的素材地址,下载并解压:

http://yesaiwen.com/chatgpt-python-resources/

练习素材内容:

3个PDF文件:

下载后,解压,获得文件及文件夹的位置。例如:

文件夹位置::C:\Users\seven2024\Desktop\text

三、操作步骤

安装模块

首先需要在vscode里,安装1个模块。 在vscode的终端里,输入这1个命令,后按回车:

pip install PyPDF2

3.0. 用ChatGPT修改代码

因为这个案例比较麻烦,主要原因是:pyPDF2 这个库有很多更新,ChatGPT的数据截止日期是2021年9月,所以在使用中,会出现很多问题。

为了更简单地实现目的,本小结采取用ChatGPT修改正确的代码方法,来实现。

3.1 生成水印PDF

先要生成一个水印的PDF文件,然后再把这个水印文件,放入PDF里。

参考咒语:

你作为一个Python程序员。根据我的要求,写出相应的代码。 要求:

  1. 生成1个PDF水印文件,水印文字是“yesaiwen”
  2. 通过修改下方三重括号里正确的代码来实现。
  3. 生成的水印文件,保存的位置:C:\Users\seven2024\Desktop\PDF水印 “””

from reportlab.pdfgen import canvas

from reportlab.lib import pagesizes

from reportlab.lib.units import cm

  

def create_watermark(watermark_file, word):

    myCanvas = canvas.Canvas(watermark_file, pagesizes.A4)

    myCanvas.setFont("Times-Roman", 30)

    myCanvas.setFillColorRGB(0,0,0)

    myCanvas.setFillAlpha(0.1)

    myCanvas.rotate(15)

    for i in range(3, 30, 9):  # 增大i的步长

        for j in range(-5, 30, 9):  # 增大j的步长

            myCanvas.drawString(i*cm, j*cm, word)

    myCanvas.save()

    return watermark_file

create_watermark(r"C:\Users\seven2024\Desktop\text\watermark.pdf", "yesaiwen.com")

“””

3.1.1 生成代码

把咒语放到粘贴到ChatGPT里,生成代码:

3.1.2 在vscode里运行程序:

会生成一个水印文件。

获取水印文件的地址:C:\Users\seven2024\Desktop\PDF水印\watermark.pdf

3.2 为文件夹里的PDF文件,添加水印

参考咒语: (水印文件和保存PDF文件的文件夹地址,需要改变)

你作为一个Python程序员。根据我的要求,写出相应的代码。 要求:

  1. 把文件夹里所有的PDF件,每一页都加上水印
  2. 通过修改下方三重括号里正确的代码来实现。
  3. 文件夹的位置:C:\Users\seven2024\Desktop\PDF水印
  4. 水印文件位置:C:\Users\seven2024\Desktop\PDF水印\watermark.pdf “””
import os

from PyPDF2 import PdfWriter, PdfReader

  

def add_watermark(input_pdf_path, output_pdf_path, watermark_pdf_path):

    watermark = PdfReader(watermark_pdf_path).pages[0]

    pdf = PdfReader(input_pdf_path)

    pdf_writer = PdfWriter()

  

    for page in pdf.pages:

        page.merge_page(watermark)

        pdf_writer.add_page(page)

  

    with open(output_pdf_path, 'wb') as fh:

        pdf_writer.write(fh)

  

# 指定包含PDF文件的目录

folder = r'C:\Users\seven2024\Desktop\text'

# 指定水印文件的路径

watermark_file = r'C:\Users\seven2024\Desktop\text\watermark.pdf'

  

for filename in os.listdir(folder):

    if filename.endswith('.pdf'):

        file_path = os.path.join(folder, filename)

        # 检查文件是否是水印文件,如果是,跳过

        if file_path == watermark_file:

            continue

        # 在每个PDF文件的名字前添加 "watermarked_"

        output_path = os.path.join(folder, 'watermarked_' + filename)

        add_watermark(file_path, output_path, watermark_file)

“””

3.2.1 生成代码

把咒语放到粘贴到ChatGPT里,生成代码:

3.2.2 在vscode里运行程序:

3.2.3 最终效果

PDF文件的每一页,都打上了水印。

四、出现的问题

4.1 ChatGPT未更新相应的Python库

可能会出现的问题:PyPDF2 已经更新了,但是ChatGPT里的数据还没有更新。 经常会报下面的这个错:

DeprecationError: PdfFileReader is deprecated and was removed in PyPDF2 3.0.0. Use PdfReader instead.。

解决方法是:

把这个报错扔给ChatGPT,它会修改代码。 一般修改一次,问题就可以解决。

4.2 水印文字只能是英文

目前,这个版本的水印文字只能是英文字符。 中文字符会报错。 想让中文字符正确显示,还需要继续折腾一下。

五、学习小结

经过今天的折腾,想起了之前网络上叫嚣的“ChatGPT会代替程序员”,不禁笑了笑:目前看是不可能代替程序员。 有一个原因:程序相关的工具,也在更新,而ChatGPT的数据截止日期是2021年9月,跟不上时代。

不过它作为一个学习助手,非常好用。什么问题,它都能给你解答。对小白入门,非常友好。

今天发现用ChatGPT修改代码贼快,贼好用。

近期文章

发表评论