首页 > 编程知识 正文

Python实现PDF加图章

时间:2023-11-20 14:08:12 阅读:288160 作者:FNXD

本文将详细介绍如何使用Python语言向PDF文档中添加图章,对于需要保护PDF文档的用户尤为方便。

一、安装相关依赖

在开始编写代码之前,我们需要先安装相关的库,这里我们需要使用到的库为:pypdf2reportlab

pip install pypdf2
pip install reportlab

二、生成图章

在将图章添加到PDF文档中之前,我们需要先生成一个图章。

from reportlab.lib.units import mm
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4

def create_stamp(content):
    # 设置画布大小
    c = canvas.Canvas("stamp.pdf", pagesize=(60*mm, 60*mm))

    # 设置字体
    c.setFontSize(16)
    c.setFont("Helvetica-Bold", 16)
    c.drawCentredString(30*mm, 35*mm, content)

    # 画边框和直线
    c.roundRect(0, 0, 60*mm, 60*mm, 10, stroke=1, fill=0)
    c.line(0, 15*mm, 60*mm, 15*mm)

    c.save()

三、添加图章

有了生成图章的方法,我们就可以开始将图章添加到PDF文档中了。下面代码中将最终的新PDF文档保存在了new_file.pdf中。

import os
from PyPDF2 import PdfFileReader, PdfFileWriter
from reportlab.lib.pagesizes import A4

def add_stamp(file_path, stamp_content):
    # 生成图章
    create_stamp(stamp_content)

    # 读取PDF文件
    pdf_reader = PdfFileReader(open(file_path, "rb"))
    pdf_writer = PdfFileWriter()

    # 获取PDF文件总页数
    page_count = pdf_reader.getNumPages()

    # 读取图章
    stamp = PdfFileReader(open("stamp.pdf", "rb")).getPage(0)

    # 循环遍历所有页面
    for i in range(page_count):
        # 获取PDF文件单页
        pdf_page = pdf_reader.getPage(i)
        pdf_page.mergePage(stamp)

        # 将合并后的页面添加到新PDF文件中
        pdf_writer.addPage(pdf_page)

    # 将新PDF文件保存到工作目录
    with open('new_file.pdf', 'wb') as fh:
        pdf_writer.write(fh)

    # 删除生成的图章文件
    os.remove("stamp.pdf")

四、使用方法

最后,我们来测试一下

add_stamp("example.pdf", "个人文件")

运行完后,会在当前目录下生成一个名为new_file.pdf的文件,包含了原PDF文件的所有内容,同时每页还会添加上一个印章。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。