欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文詳解如何使用Python向PDF精確添加文本

 更新時間:2025年07月15日 08:32:35   作者:Eiceblue  
借助Python,我們可以高效地向 PDF 添加文本,實現(xiàn)從文檔生成到內(nèi)容管理的自動化流程,文中的示例代碼講解詳細,下面小編就跟隨小編一起了解下具體實現(xiàn)方法吧

PDF 文檔的版式特性使其適用于輸出不可變格式的報告與合同。但若要在此類文檔中插入或修改文本,常規(guī)方式難以實現(xiàn)。借助Python,我們可以高效地向 PDF 添加文本,實現(xiàn)從文檔生成到內(nèi)容管理的自動化流程。

本文將從以下方面介紹Python實現(xiàn)PDF中文本的添加:

本文使用的方法需要用到免費的Free Spire.PDF for Python,可通過pip安裝:

pip install spire.pdf.free

新建PDF并添加段落文本

在構(gòu)建系統(tǒng)報告或生成模板文檔時,通常需要從空白頁插入一段段文本,保持排版一致性。

from spire.pdf import PdfDocument, PdfTrueTypeFont, PdfFontStyle, PdfSolidBrush, PdfRGBColor, PointF, RectangleF, \
    PdfStringFormat, PdfTextAlignment, PdfVerticalAlignment

# 創(chuàng)建新的PDF文檔并添加頁面
pdf = PdfDocument()
page = pdf.Pages.Add()

# 待插入的文本內(nèi)容
text = ("The purpose of this document is to provide an overview of the company's financial highlights for the fiscal year 2024. "
        "It includes revenue trends, operational costs, and net income summaries. "
        "The following sections will outline each metric in more detail.")

# 設(shè)置字體、畫刷(顏色)和排版區(qū)域
font = PdfTrueTypeFont("Arial", 14.0, PdfFontStyle.Regular, True)
brush = PdfSolidBrush(PdfRGBColor(0, 0, 0))  # 黑色文本
layout_area = RectangleF(50.0, 50.0, page.GetClientSize().Width - 100.0, page.GetClientSize().Height)
string_format = PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Top)

# 添加文字內(nèi)容
page.Canvas.DrawString(text, font, brush, layout_area, string_format, False)

# 保存并關(guān)閉
pdf.SaveToFile("output/new.pdf")
pdf.Close()

技術(shù)細節(jié)說明:

  • PdfTrueTypeFont 可嵌入外部字體文件,適用于需要控制字體兼容性的場景;
  • RectangleF 定義文本區(qū)域邊界(支持自定義段落框);
  • DrawString() 支持超出區(qū)域自動換行;
  • 使用 PdfStringFormat 設(shè)定水平方向與垂直方向的對齊方式。

生成的PDF文檔:

向現(xiàn)有PDF中插入文本內(nèi)容

當你已有一份PDF文件,但希望在某一頁添加標記或文字說明,例如審批標語、狀態(tài)說明等,可以使用如下方式:

from spire.pdf import PdfDocument, PdfFontStyle, PdfSolidBrush, PdfRGBColor, PointF, PdfFont, PdfFontFamily

# 加載已有PDF文檔
pdf = PdfDocument()
pdf.LoadFromFile("PDF.pdf")
page = pdf.Pages[0]

# 設(shè)置字體、顏色和插入位置
font = PdfFont(PdfFontFamily.TimesRoman, 12.0, PdfFontStyle.Bold)
brush = PdfSolidBrush(PdfRGBColor(0, 128, 0))  # 深綠色
location = PointF(130.0, 90.0)

# 插入文本
page.Canvas.DrawString("Verified by QA Department", font, brush, location)

# 保存結(jié)果
pdf.SaveToFile("output/ModifiedPDF.pdf")
pdf.Close()

技術(shù)細節(jié)說明:

  • PdfFontFamily.TimesRoman 屬于 PDF 標準內(nèi)置字體(無需嵌入);
  • 坐標 PointF(x, y) 單位為磅(1 pt ≈ 0.3528 mm),以頁面左上角為 (0,0);
  • 無需設(shè)置區(qū)域框時,適用于短文本、標簽插入、動態(tài)蓋章等場景。

修改的PDF文檔:

復(fù)雜格式設(shè)置:添加透明旋轉(zhuǎn)水印文本

在文檔審閱或內(nèi)部版本發(fā)布場景中,常見的做法是添加一個帶透明度與旋轉(zhuǎn)角度的水印文字,以提示機密性或防止誤傳播。Spire.PDF 提供了畫布狀態(tài)保存、旋轉(zhuǎn)、透明度控制等接口,可用于實現(xiàn)這種復(fù)雜的格式需求。

from spire.pdf import PdfDocument, PdfTrueTypeFont, PdfFontStyle, PdfSolidBrush, PdfRGBColor, PointF
from spire.pdf.common import Color

# 加載已有PDF文檔
pdf = PdfDocument()
pdf.LoadFromFile("input1.pdf")
page = pdf.Pages[0]

# 設(shè)置水印文本內(nèi)容
text = "Internal Use Only"

# 設(shè)置字體樣式與大小
font = PdfTrueTypeFont("Arial", 40.0, PdfFontStyle.Bold, True)

# 設(shè)置畫刷顏色為深紅色
brush = PdfSolidBrush(PdfRGBColor(Color.get_DarkRed()))

# 測量文本大小以便居中放置
size = font.MeasureString(text)
x = (page.Canvas.ClientSize.Width - size.Width) / 2
y = (page.Canvas.ClientSize.Height - size.Height) / 2

# 保存當前畫布狀態(tài)
state = page.Canvas.Save()

# 設(shè)置透明度
page.Canvas.SetTransparency(0.3)

# 平移至文本中心位置
page.Canvas.TranslateTransform(x + size.Width / 2, y + size.Height / 2)

# 旋轉(zhuǎn)文本(-45度斜著顯示)
page.Canvas.RotateTransform(-45.0)

# 繪制文本水?。ㄗ笊辖菫槠鹗键c,因此需偏移)
page.Canvas.DrawString(text, font, brush, PointF(-size.Width / 2, -size.Height / 2))

# 恢復(fù)畫布狀態(tài)
page.Canvas.Restore(state)

# 保存文檔
pdf.SaveToFile("output/with_watermark.pdf")
pdf.Close()

技術(shù)細節(jié)說明:

  • 使用 SetTransparency(0.3) 設(shè)置文本透明度,增強水印效果但不遮擋內(nèi)容;
  • TranslateTransform() 將畫布原點移動至文本中心;
  • RotateTransform(-45) 實現(xiàn)對角線旋轉(zhuǎn),常用于“CONFIDENTIAL”或“DRAFT”類水?。?/li>
  • 水印文本使用 DrawString() 繪制,PointF(-size.Width / 2, -size.Height / 2) 保證以中心為參考點;
  • 通過 Canvas.Save()Canvas.Restore() 管理局部畫布狀態(tài),避免影響頁面中其他元素。

修改后的PDF文檔:

總結(jié)

通過 Spire.PDF for Python,你可以使用簡潔的 Python 代碼在 PDF 中添加各類文本,功能包括:

功能項方法與說明
從零創(chuàng)建文檔PdfDocument.Pages.Add() + DrawString()
插入文本到現(xiàn)有文檔LoadFromFile() + PointF 定位文本插入點
控制排版樣式使用 RectangleF + PdfStringFormat 控制對齊與區(qū)域
行文本支持文本中添加 \n,自動換行渲染
字體與顏色控制支持 TrueType 與 標準字體,自定義顏色 RGB

這些操作覆蓋了 PDF 文本添加的主要應(yīng)用場景,從文檔批量生成到人工標注支持,適合用于自動歸檔、審批流程、內(nèi)容輸出等業(yè)務(wù)場景。

到此這篇關(guān)于一文詳解如何使用Python向PDF精確添加文本的文章就介紹到這了,更多相關(guān)Python PDF添加文本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論