欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > pdf加水印(python学习)(11.4)

pdf加水印(python学习)(11.4)

2024/11/14 13:11:03 来源:https://blog.csdn.net/m0_62261710/article/details/143491511  浏览:    关键词:pdf加水印(python学习)(11.4)

pdf加水印

# -*- coding:utf-8 -*-
# @FileName  :Watermarked.py
# @Time      :2024/11/4 18:09
# @Author    :liyiwei# 导入sys模块,用于退出程序时打印错误信息到标准错误输出
import sys# 导入PdfFileReader和PdfFileWriter类,用于读取和写入PDF文件
from PyPDF2 import PdfReader, PdfWriter# 导入copy模块,用于复制PDF页面
from copy import copy# 定义一个函数add_watermark_to_pdf,用于给PDF添加水印
def add_watermark_to_pdf(input_pdf_path, watermark_pdf_path, output_pdf_path):try:# 尝试读取水印PDF文件water = PdfReader(watermark_pdf_path)# 获取水印PDF的第一页water_page = water.pages[0]# 读取需要添加水印的PDF文件pdf_reader = PdfReader(input_pdf_path)# 创建一个新的PDF写入器pdf_writer = PdfWriter()# 遍历输入PDF文件的每一页for page in range(len(pdf_reader.pages)):# 获取输入PDF文件当前页my_page = pdf_reader.pages[page]# 复制水印页,并合并输入PDF文件的当前页new_page = copy(water_page)new_page.merge_page(my_page)# 将合并后的页添加到PDF写入器pdf_writer.add_page(new_page)# 打开输出PDF文件,并写入PDF写入器的内容with open(output_pdf_path, "wb") as out:pdf_writer.write(out)# 打印成功信息到标准输出print(f"水印已成功添加到 {output_pdf_path}")except Exception as e:# 打印错误信息到标准错误输出,并退出程序print(f"添加水印时发生错误: {e}", file=sys.stderr)sys.exit(1)# 当这个脚本被直接运行时,调用add_watermark_to_pdf函数
if __name__ == "__main__":input_pdf_path = r"D:\virtualC\图片素材\pdf测试\aa.pdf"  # 输入PDF文件路径watermark_pdf_path = r"D:\virtualC\图片素材\pdf测试\水印.pdf"  # 水印PDF文件路径output_pdf_path = r"D:\virtualC\图片素材\pdf测试\添加水印后的aa.pdf"  # 输出PDF文件路径add_watermark_to_pdf(input_pdf_path, watermark_pdf_path, output_pdf_path)  # 调用函数
  1. PyPDF2库的使用:PyPDF2是一个Python库,用于处理PDF文件。通过这个库,可以读取和写入PDF文件,以及操作PDF的页面。

  2. 异常处理:使用 try...except 语句来捕获和处理可能发生的异常,保证程序的健壮性。

  3. 文件操作:使用 with 语句和 open 函数来安全地打开和写入文件,确保文件在操作完成后能够正确关闭。

  4. 命令行参数:这个脚本可以直接运行,并接受三个命令行参数:输入PDF文件、水印PDF文件和输出PDF文件。这展示了如何从命令行获取参数,并在脚本中使用这些参数。

  5. 文件路径:在Windows系统中,路径使用反斜杠 \ 来分隔目录和文件名,而在Python中,需要使用 r 前缀来表示原始字符串,以避免在字符串中转义反斜杠。

  6. 标准输出和标准错误:使用 print 函数和 file=sys.stderr 参数来分别打印到标准输出和标准错误输出,通常用于打印正常信息和错误信息。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com