在 Python 中使用 PyPDF2 向 PDF 文件批量添加水印

PDF 文件广泛用于不同的设备和平台上,在某些情况下,可能需要在 PDF 文件中申明版权,需要将水印、条形码、二维码等添加到 PDF 中。PyPDF2 提供了一种将另一个 PDF 文件作为水印,添加到 PDF 文件的方法。

在下面的示例中,制作一个 PDF 水印文档,可以加入文字、二维码,通过合并的方法为 PDF 文件添加水印。

使用 PyPDF2 添加水印到 PDF 文件

将水印添加到 PDF 页面,可以使用 merge_page() 方法。

import PyPDF2
input_file = "1.pdf"
output_file = "2.pdf"
watermark_file = "watermark.pdf"
with open(input_file, "rb") as filehandle_input:
    pdf = PyPDF2.PdfReader(filehandle_input)
    with open(watermark_file, "rb") as filehandle_watermark:
        watermark = PyPDF2.PdfReader(filehandle_watermark)
        first_page = pdf.pages[0] # 获取源文件第一页
        first_page_watermark = watermark.pages[0] # 获取水印文件第一页
        first_page.merge_page(first_page_watermark) # 合并
        pdf_writer = PyPDF2.PdfWriter()
        pdf_writer.add_page(first_page) # 添加到目标文件
        with open(output_file, "wb") as output:
            pdf_writer.write(output)

批量添加水印到 PDF 文件所有页

使用 for 循环,遍历整个 PDF 文件,并逐页读取,每一页与水印文件进行合并。

import PyPDF2
input_file = "1.pdf"
output_file = "2.pdf"
watermark_file = "watermark.pdf"
with open(input_file, "rb") as filehandle_input:
    # 读源文件
    pdf = PyPDF2.PdfReader(filehandle_input)
    with open(watermark_file, "rb") as filehandle_watermark:
        # 读水印文件
        watermark = PyPDF2.PdfReader(filehandle_watermark)
        pdf_writer = PyPDF2.PdfWriter()
        for page in range(len(pdf.pages)):
        # 遍历源文件每一页
            pdfpage = pdf.pages[page]
            first_page_watermark = watermark.pages[0]
            pdfpage.merge_page(first_page_watermark)
            pdf_writer.add_page(pdfpage)
        with open(output_file, "wb") as output:
            pdf_writer.write(output)

水印 PDF 文件制作:

在 Word 中插入文本框,调整文字字体、字号、颜色、位置等,设置文本框无填充色。或者插入背景透明的图片。

相关推荐

  1. Python 使用 PyPDF2 PDF 文件批量添加水印

    2024-05-01 13:58:02       38 阅读
  2. pythonPyPDF2PDF文件提取目录

    2024-05-01 13:58:02       58 阅读
  3. 使用 pypdf 快速切分 PDF 文件

    2024-05-01 13:58:02       47 阅读
  4. 使用itext7为pdf文档添加水印

    2024-05-01 13:58:02       162 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-01 13:58:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-01 13:58:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-01 13:58:02       82 阅读
  4. Python语言-面向对象

    2024-05-01 13:58:02       91 阅读

热门阅读

  1. 什么是ASO?

    2024-05-01 13:58:02       29 阅读
  2. 成长的88个表

    2024-05-01 13:58:02       32 阅读
  3. Stable Diffusion 本地部署教程

    2024-05-01 13:58:02       37 阅读
  4. VueRouter

    VueRouter

    2024-05-01 13:58:02      35 阅读
  5. 【C】153 寻找旋转排序数组中的最小值

    2024-05-01 13:58:02       29 阅读