图像水印经常出现在共享的 pdf 文档中。与文本水印不同,图片水印通过显示公司标志、商标、警示图标等,以更直观的方式强调ag凯发旗舰厅的版权、所有权和保密性等信息。此外,将图片水印添加到 pdf 文档中还可以帮助进行品牌推广,以及增强文档的视觉效果等。本文将介绍如何使用 spire.pdf for python 在 python 程序中在 pdf 文档中插入图像水印。
安装 spire.pdf for python
本教程需要用到 spire.pdf for python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 vs code 中。
pip install spire.pdf
如果您不确定如何安装,请参考本教程:如何在 vs code 中安装 spire.pdf for python
在 pdf 文档中添加单一图像水印
单一图像水印是在 pdf 页面中央单次显示的半透明图像。使用 spire.pdf for python,用户可以将指定图像作为水印绘制在任意 pdf 页面上。具体步骤如下:
- 创建一个 pdfdocument 类的对象。
- 使用 pdfdocument.loadfromfile() 方法加载 pdf 文档。
- 使用 pdfimage.fromfile() 方法加载水印图像。
- 循环遍历文档中的页面以添加水印。
- 使用 pdfdocument.pages.get_item() 方法获取页面。
- 使用 pdfpagebase.canvas.settransparency() 方法设置水印的透明度。
- 使用 pdfpagebase.canvas.drawimage() 方法在页面中央绘制水印图像。
- 使用 pdfdocument.savetofile() 方法保存文档。
- python
from spire.pdf import *
from spire.pdf.common import *
# 创建 pdfdocument 类的对象
pdf = pdfdocument()
# 加载 pdf 文档
pdf.loadfromfile("示例.pdf")
# 加载水印图像
image = pdfimage.fromfile("水印.png")
# 获取图像的宽度和高度
imagewidth = float(image.width)
imageheight = float(image.height)
# 循环遍历文档中的页面
for i in range(pdf.pages.count):
# 获取页面
page = pdf.pages.get_item(i)
# 设置水印的透明度
page.canvas.settransparency(0.3)
# 获取页面的宽度和高度
pagewidth = page.actualsize.width
pageheight = page.actualsize.height
# 在页面上绘制水印图像
page.canvas.drawimage(image, pagewidth/2 - imagewidth/2, pageheight/2 - imageheight/2, imagewidth, imageheight)
# 保存文档
pdf.savetofile("output/单一图像水印.pdf")
pdf.close()
在 pdf 文档中添加重复图像水印
重复图像水印是在 pdf 页面上有规律地重复显示的图像。使用 spire.pdf for python 在 pdf 页面上绘制重复图像水印需要用到 pdftillingbrush 类。以下是详细步骤:
- 创建一个 pdfdocument 类的对象。
- 使用 pdfdocument.loadfromfile() 方法加载 pdf 文档。
- 使用 pdfimage.fromfile() 方法加载水印图像。
- 循环遍历文档中的页面以添加水印。
- 使用 pdfdocument.pages.get_item() 方法获取页面。
- 创建一个 pdftilingbrush 类的对象,并设置其大小以确定水印的重复次数。
- 使用 pdftillingbrush.graphics.settransparency() 方法设置水印的透明度。
- 使用 pdftillingbrush.graphics.translatetransform() 方法将坐标系平移到指定位置,使水印显示在每次重复的中心。
- 使用 pdftillingbrush.graphics.drawimage() 方法在耕作刷上绘制水印图像。
- 使用 pdfpagebase.canvas.drawrectangle() 方法在页面上绘制水印。
- 使用 pdfdocument.savetofile() 方法保存文档。
- python
from spire.pdf.common import *
from spire.pdf import *
# 创建 pdfdocument 类的对象
pdf = pdfdocument()
# 加载 pdf 文档
pdf.loadfromfile("示例.pdf")
# 加载水印图像
image = pdfimage.fromfile("水印.png")
# 遍历文档的页面
for i in range(pdf.pages.count):
# 获取一个页面
page = pdf.pages.get_item(i)
# 创建 pdftilingbrush 类的对象并设置其大小
brush = pdftilingbrush(sizef(page.canvas.size.width / float(3), page.canvas.size.height / float(3)))
# 设置水印的透明度
brush.graphics.settransparency(0.3)
brush.graphics.save()
# 将坐标转换到指定位置
brush.graphics.translatetransform(brush.size.width/2 - image.width/2, brush.size.height/2 - image.height/2)
# 在刷子上绘制水印图像
brush.graphics.drawimage(image, 0.0, 0.0, float(image.width), float(image.height))
brush.graphics.restore()
# 在页面上绘制水印
page.canvas.drawrectangle(brush, rectanglef(pointf(0.0, 0.0), page.canvas.size))
# 保存 pdf 文档
pdf.savetofile("output/重复图像水印.pdf", fileformat.pdf)
pdf.close()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。