python pdf加水印

本文介绍如何利用Python库在PDF文件上添加水印,包括步骤和所需库的安装,帮助你轻松实现PDF文档的保护和标识。
摘要由CSDN通过智能技术生成

python pdf加水印

from PyPDF2 import PdfFileReader, PdfFileWriter
from reportlab.lib.units import cm
from reportlab.pdfgen import canvas


def create_watermark(content):
    """水印信息"""
    # 默认大小为21cm*29.7cm
    file_name = "mark.pdf"
    c = canvas.Canvas(file_name, pagesize=(30*cm, 30*cm))
    # 移动坐标原点(坐标系左下为(0,0))
    c.translate(10*cm, 5*cm)

    # 设置字体
    c.setFont("Helvetica", 80)
    # 指定描边的颜色
    c.setStrokeColorRGB(0, 1, 0)
    # 指定填充颜色
    c.setFillColorRGB(0, 1, 0)
    # 画一个矩形
    # c.rect(cm, cm, 7*cm, 17*cm, fill=1)
    # 旋转45度,坐标系被旋转
    c.rotate(30)
    # 指定填充颜色
    c.setFillColorRGB(0, 0, 0, 0.1)
    # 设置透明度,1为不透明
    # c.setFillAlpha(0.1)
    # 画几个文本,注意坐标系旋转的影响
    c.drawString(3*cm, 0*cm, content)
    c.setFillAlpha(0.6)
    # 关闭并保存pdf文件
    c.save()
    return file_name


def add_watermark(pdf_file_in, pdf_file_mark, pdf_file_out):
    """把水印添加到pdf中""
Python中给PDF文件添水印有多种方法。一种方法是使用PyPDF2库,在代码中将水印文件作为一个页面插入到其他PDF文件中。你可以使用以下代码实现这个功能: from os.path import splitext from PyPDF2 import PdfFileReader, PdfFileWriter def add_watermark(watermark, pdf_in): writer = PdfFileWriter() pdf_src = PdfFileReader(pdf_in) for i in range(pdf_src.getNumPages()): # 合并水印页和内容页,水印页在下,内容页在上 page = PdfFileReader(watermark).getPage(0) page.mergePage(pdf_src.getPage(i)) writer.addPage(page) # 生成结果文件 with open('_带水印'.join(splitext(pdf_in)), 'wb') as fp: writer.write(fp) add_watermark('水印文件.pdf', '需水印的文件.pdf') 另一种方法是使用Python-docx库创建一个docx文档,添自定义的艺术字水印,并将其转换为PDF文件。你可以按照以下步骤来实现: 1. 创建一个docx文档。 2. 在文档中添艺术字水印,并进行必要的样式设计。 3. 将docx文档保存为PDF文件。 这样,你就可以在PDF文件中看到添水印。 另外,你还可以使用python3-fitz模块来给PDF文件添水印。这个模块依赖MuPDF,所以请确保你已经安装了这个模块。使用python3-fitz模块,你可以遍历PDF文件中的所有页面,并插入水印图片。以下是一个示例代码: import fitz doc = fitz.open("需要添水印的文件.pdf") logo = "水印图片.png" for page in doc: rect = fitz.Rect(0, 0, 200, 200) # 水印图片的位置和大小 page.insertImage(rect, filename=logo) doc.save("带水印的文件.pdf") 这样,你就可以在带水印PDF文件中看到插入的水印图片。 希望这些方法可以帮助你在Python中给PDF文件添水印。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值