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

发布于:2024-04-30 ⋅ 阅读:(38) ⋅ 点赞:(0)

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 中插入文本框,调整文字字体、字号、颜色、位置等,设置文本框无填充色。或者插入背景透明的图片。


网站公告

今日签到

点亮在社区的每一天
去签到