图章是 PDF 文档中的一个强大工具,允许用户标记和注释 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
Python 在 PDF 文档中添加图像图章
Spire.PDF for Python 提供了 PdfRubberStampAnnotation 类用于在 PDF 文档中表示橡皮图章。为了创建橡皮图章的外观,需要使用 PdfTemplate 类。PdfTemplate 是一块画布,你可以在上面绘制任何你想要的信息,如文本、图像、日期和时间。
图像图章可以包括徽标、签名、水印或其他任何你想叠加到 PDF 上的自定义图形。使用 Spire.PDF for Python 为 PDF 添加图像图章的主要步骤如下。
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文件。
- 使用 PdfImage.FromFile() 方法加载要在 PDF 上加印的图片。
- 根据图像的尺寸创建一个 PdfTemplate 对象。
- 使用 PdfTemplate.Graphics.DrawImage() 方法在模板上绘制图像。
- 创建一个 PdfRubberStampAnnotation 对象,并将模板设置为其外观。
- 使用 PdfPageBase.AnnotationsWidget.Add() 方法将图章添加到特定的 PDF 页面。
- 使用 PdfDocument.SaveToFile() 方法将文档保存到不同的文件中。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 创建一个PdfDocument对象
doc = PdfDocument()
# 从文件加载输入文档
doc.LoadFromFile("输入文档.pdf")
# 获取第一页
page = doc.Pages[1]
# 从文件加载图片
image = PdfImage.FromFile("图片图章.png")
# 获取图片的宽度和高度
width = float(image.Width)
height = float(image.Height)
# 创建一个PdfTemplate对象
template = PdfTemplate(width, height, True)
# 在模板上绘制图片
template.Graphics.DrawImage(image, 0.0, 0.0, width, height)
# 创建一个矩形区域
rect = RectangleF(float(page.ActualSize.Width - width - 50), float(page.ActualSize.Height - height - 40), width, height)
# 创建一个PdfRubberStampAnnotation对象
stamp = PdfRubberStampAnnotation(rect)
# 创建一个PdfAppearance对象
pdfAppearance = PdfAppearance(stamp)
# 设置PdfAppearance的Normal属性为模板
pdfAppearance.Normal = template
# 设置PdfRubberStampAnnotation的Appearance属性为PdfAppearance对象
stamp.Appearance = pdfAppearance
# 将图章注释添加到页面的注释集合中
page.AnnotationsWidget.Add(stamp)
# 将修改后的PDF文档保存到文件
doc.SaveToFile("图片图章.pdf")
doc.Close()
Python 在 PDF 文档中添加动态图章
与静态图章不同,动态图章可包含日期、时间或用户输入等可变信息。以下是使用 Spire.PDF for Python 在 PDF 中创建动态图章的步骤。
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文件。
- 创建所需大小的 PdfTemplate 对象。
- 使用 PdfTemplate.Graphics.DrawString() 方法在模板上绘制字符串。
- 创建一个 PdfRubberStampAnnotation 对象,并将模板设置为其外观。
- 使用 PdfPageBase.AnnotationsWidget.Add() 方法将图章添加到特定的 PDF 页面。
- 使用 PdfDocument.SaveToFile() 方法将文档保存到不同的文件中。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 创建一个PdfDocument对象
doc = PdfDocument()
# 从文件加载输入文档
doc.LoadFromFile("输入文档.pdf")
# 获取第一页
page = doc.Pages[0]
# 创建一个PdfTemplate对象,设置宽度和高度
template = PdfTemplate(220.0, 50.0, True)
# 创建两个PdfTrueTypeFont对象,用于设置文本字体
font1 = PdfTrueTypeFont("微软雅黑", 16.0, 0, True)
font2 = PdfTrueTypeFont("宋体", 10.0, 0, True)
# 创建一个PdfSolidBrush对象,用于设置填充颜色
solidBrush = PdfSolidBrush(PdfRGBColor(Color.get_Blue()))
# 创建一个矩形对象,用于绘制渐变背景
rectangle1 = RectangleF(PointF(0.0, 0.0), template.Size)
# 创建一个PdfLinearGradientBrush对象,用于设置线性渐变背景
linearGradientBrush = PdfLinearGradientBrush(rectangle1, PdfRGBColor(Color.get_White()), PdfRGBColor(Color.get_LightBlue()), PdfLinearGradientMode.Horizontal)
# 创建一个PdfPen对象,用于设置边框颜色和样式
pen = PdfPen(solidBrush)
# 设置圆角矩形的圆角半径
CornerRadius = 10.0
# 创建一个PdfPath对象,用于绘制圆角矩形路径
path = PdfPath()
# 添加圆角矩形的四个弧线段和一条直线段
path.AddArc(template.GetBounds().X, template.GetBounds().Y, CornerRadius, CornerRadius, 180.0, 90.0)
path.AddArc(template.GetBounds().X + template.Width - CornerRadius, template.GetBounds().Y, CornerRadius, CornerRadius, 270.0, 90.0)
path.AddArc(template.GetBounds().X + template.Width - CornerRadius, template.GetBounds().Y + template.Height - CornerRadius, CornerRadius, CornerRadius, 0.0, 90.0)
path.AddArc(template.GetBounds().X, template.GetBounds().Y + template.Height - CornerRadius, CornerRadius, CornerRadius, 90.0, 90.0)
path.AddLine(template.GetBounds().X, template.GetBounds().Y + template.Height - CornerRadius, template.GetBounds().X, template.GetBounds().Y + CornerRadius / 2)
# 在模板上绘制边框和渐变背景
template.Graphics.DrawPath(pen, path)
template.Graphics.DrawPath(linearGradientBrush, path)
# 设置要绘制的文本内容
string1 = "已核准 \n"
string2 = "市场营销部 " + DateTime.get_Now().ToString("HH:mm, MMM ddd, yyyy")
# 在模板上绘制文本
template.Graphics.DrawString(string1, font1, solidBrush, PointF(5.0, 5.0))
template.Graphics.DrawString(string2, font2, solidBrush, PointF(2.0, 28.0))
# 创建一个矩形区域,用于放置图章注释
rectangle2 = RectangleF(float(page.ActualSize.Width - 220.0 - 50.0), float(page.ActualSize.Height - 50.0 - 100.0), 220.0, 50.0)
# 创建一个PdfRubberStampAnnotation对象
stamp = PdfRubberStampAnnotation(rectangle2)
# 创建一个PdfAppearance对象
appearance = PdfAppearance(stamp)
# 设置PdfAppearance的Normal属性为模板
appearance.Normal = template
# 设置PdfRubberStampAnnotation的Appearance属性为PdfAppearance对象
stamp.Appearance = appearance
# 将图章注释添加到页面的注释集合中
page.AnnotationsWidget.Add(stamp)
# 将修改后的PDF文档保存到文件
doc.SaveToFile("动态图章.pdf", FileFormat.PDF)
doc.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。