欢迎访问宙启技术站
智能推送

Python中PDFDocument()函数实现PDF页面水印添加的示例

发布时间:2024-01-07 05:14:48

PDFDocument()函数是Python中用于创建PDF文件的类。它位于PyPDF2模块中,并且提供了许多功能,例如合并、旋转、裁剪、添加水印等。

要使用PDFDocument()函数添加水印到PDF页面,首先需要创建一个PDF文件对象,然后利用该对象的方法添加水印。

下面是一个简单的示例,演示了如何使用PDFDocument()函数添加水印到PDF页面。

import PyPDF2

def add_watermark(input_pdf, output_pdf, watermark_text):
    # 打开输入的PDF文件
    with open(input_pdf, 'rb') as file:
        pdf = PyPDF2.PdfFileReader(file)
        # 创建一个新的PDF文件对象
        output = PyPDF2.PdfFileWriter()

        # 遍历输入的PDF文件的页面
        for page_num in range(pdf.numPages):
            # 获取当前页面
            page = pdf.getPage(page_num)
            # 克隆页面并添加水印
            watermarked_page = add_watermark_to_page(page, watermark_text)
            # 将添加了水印的页面添加到新的PDF文件中
            output.addPage(watermarked_page)

        # 将新的PDF文件保存到输出文件
        with open(output_pdf, 'wb') as file:
            output.write(file)

def add_watermark_to_page(page, watermark_text):
    # 创建一个PDF页面对象
    watermark = PyPDF2.pdf.PageObject.createBlankPage(page)
    # 加载字体
    watermark.setFont("Helvetica", 80)
    # 设置水印文本的颜色和透明度
    watermark.setFillAlpha(0.1)
    watermark.setFillColorRGB(0, 0, 0)

    # 在水印页面上添加水印文本
    watermark.mergeScaledTranslatedPage(page, 0.5, 100, 100)
    return watermark


# 使用示例
if __name__ == "__main__":
    input_pdf = "input.pdf"   # 输入的PDF文件
    output_pdf = "output.pdf"  # 输出的PDF文件
    watermark_text = "Confidential"  # 水印文本

    add_watermark(input_pdf, output_pdf, watermark_text)

在以上示例中,我们首先调用add_watermark()函数,并传入输入PDF文件名、输出PDF文件名和水印文本作为参数。然后在该函数中,我们打开输入的PDF文件,并根据每个页面创建对应的PDF页面对象。

接下来,我们使用add_watermark_to_page()函数将水印添加到每个页面上,并将添加了水印的页面添加到新的PDF文件中。最后,我们保存新的PDF文件到输出文件。

add_watermark_to_page()函数中,我们首先创建一个空白的PDF页面对象,然后加载所需的字体,并设置水印文本的颜色和透明度。接着,我们通过mergeScaledTranslatedPage()方法将水印页面与当前页面合并,从而实现添加水印的效果。

通过以上代码,我们可以轻松地使用Python中的PDFDocument()函数向PDF页面添加水印。根据需要,您可以自定义水印的内容、样式和位置。