Stories

Detail Return Return

使用 Python 在 PDF 中添加文字或圖像印章 - Stories Detail

在企業辦公、合同簽署、審批流程等場景中,我們經常需要在 PDF 文件上添加印章或標記。例如:

  • 在審批文件上添加“APPROVED(已批准)”字樣;
  • 在保密文件上添加圖像水印或公司 Logo;
  • 在電子合同中添加簽名或蓋章區域。

這些操作如果手動完成,不僅效率低,還容易出錯。本文將介紹如何使用 Free Spire.PDF for Python 在 PDF 中自動添加兩種類型的印章:

  • 文字印章(動態審批章)
  • 圖像印章(Logo 或簽章)

安裝庫

在開始之前,先通過 pip 安裝 Spire.PDF 模塊:

pip install spire.pdf

安裝完成後,即可在 Python 中直接導入使用。


一、添加文字印章

下面的示例演示如何在 PDF 文件的指定頁面上創建一個帶有圓角矩形邊框和漸變背景的“APPROVED”印章,並動態顯示當前時間。

from spire.pdf import *

# 創建 PdfDocument 對象並加載 PDF 文件
doc = PdfDocument()
doc.LoadFromFile("input.pdf")

# 獲取指定頁面(索引從 0 開始)
page = doc.Pages[0]

# 創建 PdfTemplate 模板對象(用於定義印章外觀)
template = PdfTemplate(220.0, 50.0, True)

# 創建字體
font_title = PdfTrueTypeFont("Arial", 16.0, 0, True)
font_info = PdfTrueTypeFont("Times New Roman", 10.0, 0, True)

# 創建畫筆與漸變填充
solid_brush = PdfSolidBrush(PdfRGBColor(Color.get_Blue()))
rect = RectangleF(PointF(0.0, 0.0), template.Size)
gradient_brush = PdfLinearGradientBrush(rect, PdfRGBColor(Color.get_White()), PdfRGBColor(Color.get_LightBlue()), PdfLinearGradientMode.Horizontal)

# 繪製圓角矩形路徑
corner = 10.0
path = PdfPath()
path.AddArc(template.GetBounds().X, template.GetBounds().Y, corner, corner, 180.0, 90.0)
path.AddArc(template.GetBounds().X + template.Width - corner, template.GetBounds().Y, corner, corner, 270.0, 90.0)
path.AddArc(template.GetBounds().X + template.Width - corner, template.GetBounds().Y + template.Height - corner, corner, corner, 0.0, 90.0)
path.AddArc(template.GetBounds().X, template.GetBounds().Y + template.Height - corner, corner, corner, 90.0, 90.0)

# 繪製邊框與填充
template.Graphics.DrawPath(PdfPen(solid_brush), path)
template.Graphics.DrawPath(gradient_brush, path)

# 繪製文字內容
title_text = "APPROVED\n"
info_text = "By Jock at " + DateTime.get_Now().ToString("HH:mm, MMM dd, yyyy")
template.Graphics.DrawString(title_text, font_title, solid_brush, PointF(5.0, 5.0))
template.Graphics.DrawString(info_text, font_info, solid_brush, PointF(2.0, 28.0))

# 創建印章註釋並設置位置
rect_stamp = RectangleF((float)(page.ActualSize.Width - 270.0), (float)(page.ActualSize.Height - 150.0), 220.0, 50.0)
stamp = PdfRubberStampAnnotation(rect_stamp)

# 應用模板到印章外觀
appearance = PdfAppearance(stamp)
appearance.Normal = template
stamp.Appearance = appearance

# 將印章添加到頁面
page.AnnotationsWidget.Add(stamp)

# 保存結果
doc.SaveToFile("output/TextStamp.pdf", FileFormat.PDF)
doc.Dispose()

✨代碼解析:

  • PdfTemplate 用於繪製印章的內容(可包括文字、圖形或圖像);
  • PdfRubberStampAnnotation 表示一個“橡皮圖章註釋”,可以附加在任意頁面位置;
  • 通過 PdfAppearance.Normal 屬性,將模板作為印章的常態外觀;
  • DrawString 可在模板中繪製多行文字;
  • RectangleF 控制印章在頁面中的位置與大小。

執行後,PDF 第三頁右下角會生成一個帶有藍色邊框、漸變底色和當前時間戳的“APPROVED”印章,非常適合用於電子審批流程。效果如下:

Python添加文字印章到PDF文檔


二、添加圖像印章

如果你希望使用公司 Logo 或簽名圖片作為印章,可以直接加載圖片並應用到 PDF 中。示例代碼如下:

from spire.pdf import *

# 加載 PDF
doc = PdfDocument()
doc.LoadFromFile("Sample.pdf")
page = doc.Pages[0]

# 加載印章圖像
image = PdfImage.FromFile("Stamp.png")
width = float(image.Width)
height = float(image.Height)

# 創建模板並繪製圖像
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)
stamp = PdfRubberStampAnnotation(rect)

# 應用圖像模板為印章外觀
appearance = PdfAppearance(stamp)
appearance.Normal = template
stamp.Appearance = appearance

# 添加印章到頁面
page.AnnotationsWidget.Add(stamp)

# 保存文件
doc.SaveToFile("output/ImageStamp.pdf")
doc.Close()

🔍要點説明:

  • 圖像可以是 .png.jpg.bmp 等常見格式;
  • 印章位置可以通過調整 RectangleF 座標靈活控制;
  • 圖像印章適用於電子簽章、公司 Logo、水印等用途。

運行結果如下:

Python添加圖像印章到PDF文檔


三、應用場景與擴展建議

場景 示例
文件審批 在文檔上自動添加“APPROVED”、“REVIEWED”等動態印章
合同簽署 添加簽名或公司印章圖像
保密標識 添加“CONFIDENTIAL”水印
自動批處理 結合循環語句批量為多份 PDF 加蓋印章

此外,你還可以:

  • 在模板中添加 日期、用户名、系統信息
  • 結合 Python 文件操作,對文件夾內所有 PDF 統一蓋章;
  • 設置透明度或旋轉角度,創建更靈活的視覺效果。

四、關鍵類與方法速查表

類 / 方法 説明
PdfDocument 表示 PDF 文檔對象
PdfTemplate 用於繪製印章內容的模板
PdfRubberStampAnnotation 表示橡皮圖章註釋對象
PdfAppearance 控制印章外觀(Normal、Down、Rollover 狀態)
DrawString() 繪製文字
DrawImage() 繪製圖像
AnnotationsWidget.Add() 將印章添加到 PDF 頁面
SaveToFile() 保存生成的 PDF 文件

總結

本文介紹瞭如何使用 Spire.PDF for Python 為 PDF 文件添加兩種類型的印章——文字印章圖像印章
通過編程方式實現自動化蓋章,不僅能提升審批效率,也能保證文件的一致性與專業性。無論是企業審批流、合同簽章,還是內部文檔標識,這種方法都能大大簡化人工操作,提升工作效率。

Add a new Comments

Some HTML is okay.