最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

本文使用的方法需要用到免費(fèi)的Free Spire.PDF for Python,可通過(guò)pip安裝:

pip install spire.pdf.free

新建PDF并添加段落文本

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

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

# 創(chuàng)建新的PDF文檔并添加頁(yè)面
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è)置字體、畫(huà)刷(顏色)和排版區(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ù)細(xì)節(jié)說(shuō)明:

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

生成的PDF文檔:

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

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

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ù)細(xì)節(jié)說(shuō)明:

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

修改的PDF文檔:

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

在文檔審閱或內(nèi)部版本發(fā)布場(chǎng)景中,常見(jiàn)的做法是添加一個(gè)帶透明度與旋轉(zhuǎn)角度的水印文字,以提示機(jī)密性或防止誤傳播。Spire.PDF 提供了畫(huà)布狀態(tài)保存、旋轉(zhuǎn)、透明度控制等接口,可用于實(shí)現(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è)置畫(huà)刷顏色為深紅色
brush = PdfSolidBrush(PdfRGBColor(Color.get_DarkRed()))

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

# 保存當(dāng)前畫(huà)布狀態(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(diǎn),因此需偏移)
page.Canvas.DrawString(text, font, brush, PointF(-size.Width / 2, -size.Height / 2))

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

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

技術(shù)細(xì)節(jié)說(shuō)明:

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

修改后的PDF文檔:

總結(jié)

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

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

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

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

相關(guān)文章

最新評(píng)論

苏尼特左旗| 长丰县| 赤水市| 西峡县| 泗洪县| 雅安市| 新乡县| 井冈山市| 云林县| 巴林右旗| 天台县| 龙岩市| 万源市| 永福县| 同江市| 盐池县| 南乐县| 兰坪| 河间市| 城市| 岑巩县| 东阳市| 婺源县| 广元市| 武强县| 吴旗县| 济南市| 壤塘县| 固安县| 靖安县| 班玛县| 神池县| 晋江市| 息烽县| 龙胜| 滦平县| 昌乐县| 新龙县| 延安市| 彰武县| 化州市|