图章是 pdf 文档中的一个强大工具,允许用户标记和注释 pdf 文件的特定区域或部分。图章通常用于批准、审查或指示特定状态,可大大加强协作和文档管理。在 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
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 天的临时许可证。