图像水印经常出现在共享的 PDF 文档中。与文本水印不同,图片水印通过显示公司标志、商标、警示图标等,以更直观的方式强调版权、所有权和保密性等信息。此外,将图片水印添加到 PDF 文档中还可以帮助进行品牌推广,以及增强文档的视觉效果等。本文将介绍如何使用 Spire.PDF for Python 在 Python 程序中在 PDF 文档中插入图像水印。
安装 Spire.PDF for Python
本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.PDF
如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 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 天的临时许可证。