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

Python輕松實現(xiàn)在PDF中插入頁眉頁腳

 更新時間:2025年10月26日 08:35:12   作者:E-iceblue  
在 PDF 中自動添加頁眉頁腳,可以讓文檔更規(guī)范、更具識別度,本文將使用Spire.PDF for Python實現(xiàn)簡單快速地處理 PDF 文件相關(guān)的各種任務(wù),需要的可以了解下

在制作 PDF 文件時,我們常常會遇到一個問題:文件內(nèi)容雖然齊全,但少了頁眉頁腳,顯得不夠?qū)I(yè)。尤其是在生成報告、論文或合同等正式文檔時,如果頁面上都沒有標(biāo)題、頁碼或公司名稱,不僅閱讀不便,還容易造成混淆。其實,這類問題完全可以用 Python 來快速解決——只需要簡單的代碼,就能在 PDF 中自動添加頁眉頁腳,讓文檔更規(guī)范、更具識別度。接下來,我們就來看看具體該怎么做。

本文中使用 Spire.PDF for Python,這個專業(yè)的 PDF 庫可以協(xié)助開發(fā)者簡單快速地處理 PDF 文件相關(guān)的各種任務(wù),是 Adobe Acrobat 的優(yōu)選替代方案。

Python 在 PDF 中插入頁眉

在 PDF 頁面上添加頁眉不僅能讓文檔更具專業(yè)感,還能提高閱讀與管理的效率。比如在頁眉中加入公司 logo、報告標(biāo)題或頁碼,讀者就能輕松識別文件來源并快速定位內(nèi)容。使用 Spire.PDF 提供的 PdfCanvas,你可以靈活地將文字、圖片或日期等信息繪制到指定位置,通過坐標(biāo)精確控制布局與樣式。相比手動逐頁添加,程序化生成頁眉不僅節(jié)省時間,還能保持版式一致。下面我們將介紹具體的實現(xiàn)步驟,并附上完整的代碼示例。

  • 創(chuàng)建 PdfDocument 對象,并使用 PdfDocument.LoadFromFile() 方法加載現(xiàn)有的 PDF 文件。
  • 使用 PdfImage.FromFile() 導(dǎo)入要繪制到頁眉的圖片,并獲取圖片寬度以便后續(xù)定位。
  • 定義 PdfTrueTypeFont、PdfBrushes、PdfPen 等屬性,用于設(shè)置文本、圖形和線條的樣式。
  • 定義一個 String 類型的頁眉文本內(nèi)容。
  • 創(chuàng)建 PdfCreationDateField() 對象,并設(shè)置日期格式。
  • 創(chuàng)建 PdfCompositeField() 對象,組合文本與日期內(nèi)容,并將其轉(zhuǎn)換為 PdfGraphicsWidget 類型。
  • 遍歷 PDF 的每一頁,依次調(diào)用 PdfCanvas.DrawString()PdfCanvas.DrawImage()、PdfCanvas.DrawLine()PdfGraphicsWidget.Draw() 方法繪制頁眉內(nèi)容。
  • 使用 PdfDocument.SaveToFile() 方法保存修改后的 PDF 文件。

下方為代碼示例,展示了怎樣在 Python 中為一個現(xiàn)有的 PDF 文件添加頁眉:

from spire.pdf.common import *
from spire.pdf import *

# 創(chuàng)建 PdfDocument 對象
doc = PdfDocument()

# 加載 PDF 文件
doc.LoadFromFile("E:/Administrator/Python1/input/AI繪畫的利與弊-圖片版.pdf")

# 加載頁眉圖片
headerImage = PdfImage.FromFile("F:/備用圖片/Logo1.png")

# 獲取圖片point寬度值
width = headerImage.Width
unitCvtr = PdfUnitConvertor()
pointWidth = unitCvtr.ConvertUnits(width, PdfGraphicsUnit.Pixel, PdfGraphicsUnit.Point)

# 設(shè)置字體,畫刷和畫筆
font = PdfTrueTypeFont("宋體", 12.0, PdfFontStyle.Bold, True)
brush = PdfBrushes.get_Purple()
pen = PdfPen(brush, 1.0)

# 設(shè)置頁眉文本
headerText = "頁眉文本示例\nwww.sampleheader.cn"

# 設(shè)置創(chuàng)建時間字段格式
creationDateField = PdfCreationDateField(font, brush)
creationDateField.DateFormatString = "yyyy-MM-dd"

# 創(chuàng)建組合字段
compositeField = PdfCompositeField(font, brush, "創(chuàng)建時間: {0}", [creationDateField])
compositeField.Location=PointF(55.0,48.0)
graphicsWidget = PdfGraphicsWidget(compositeField)

# 循環(huán)遍歷文檔中的每一頁
for i in range(doc.Pages.Count):
    # 獲取指定頁面
    page = doc.Pages[i]  

    # 在指定位置繪制頁眉圖片
    page.Canvas.DrawImage(headerImage, page.ActualSize.Width - pointWidth - 55.0, 20.0)

    # 在指定位置繪制頁眉文本
    page.Canvas.DrawString(headerText, font, brush, 55.0, 20.0)

    # 繪制頁眉線條
    page.Canvas.DrawLine(pen, 55.0, 70.0, page.ActualSize.Width - 55.0, 70.0)

    # 繪制組合字段
    graphicsWidget.Draw(page.Canvas)

# 保存文件
doc.SaveToFile("E:/Administrator/Python1/output/結(jié)果.pdf")

# 釋放文檔對象
doc.Dispose()

下方為該代碼輸出的結(jié)果文件示意圖:

Python 在 PDF 中添加頁腳

頁腳通常包含 PDF 文檔的頁碼信息、版權(quán)聲明、作者或公司名稱等內(nèi)容,這些信息能幫助讀者了解文檔來源并保持格式統(tǒng)一。通過頁腳,讀者還可以快速定位到特定頁面或章節(jié)位置,尤其在閱讀長篇報告、論文或合同時尤為方便。在 Spire.PDF 中,頁腳的繪制同樣依賴 PdfCanvas 方法,但由于其內(nèi)容和布局與頁眉不同,具體實現(xiàn)上會有一定差異。下面我們就來看看,在 Python 中如何為 PDF 添加頁腳。

  • 創(chuàng)建 PdfDocument 對象,并通過 PdfDocument.LoadFromFile() 方法加載現(xiàn)有的 PDF 文件。
  • 使用 PdfImage.FromFile() 導(dǎo)入要繪制到頁腳的圖片。
  • 定義 PdfTrueTypeFontPdfBrushes 屬性,用于設(shè)置文本繪制所需的字體和畫刷樣式。
  • 創(chuàng)建 PdfPageNumberField()PdfPageCountField() 對象,用于顯示當(dāng)前頁碼和總頁數(shù)。
  • 使用 PdfCompositeField() 組合頁碼信息與其他文本內(nèi)容,并將其轉(zhuǎn)換為 PdfGraphicsWidget 類型。
  • 遍歷 PDF 的每一頁,調(diào)用 PdfCanvas.DrawImage()PdfGraphicsWidget.Draw() 方法繪制頁腳內(nèi)容。
  • 使用 PdfDocument.SaveToFile() 方法保存生成的 PDF 文件。

下方的代碼示例展示了怎樣在 Python 中添加頁腳,包含了文檔的頁數(shù)頁碼和圖片:

from spire.pdf.common import *
from spire.pdf import *

# 創(chuàng)建 PdfDocument 對象
doc = PdfDocument()

# 加載 PDF 文件
doc.LoadFromFile("E:/Administrator/Python1/input/AI繪畫的利與弊-圖片版.pdf")

# 加載頁腳圖片
footerImage = PdfImage.FromFile("F:/備用圖片/banner.png")

# 設(shè)置字體,畫刷
font = PdfTrueTypeFont("宋體", 12.0, PdfFontStyle.Bold, True)
brush = PdfBrushes.get_White()

# 創(chuàng)建頁碼,總頁數(shù)字段域
pageNumberField = PdfPageNumberField()
pageCountField = PdfPageCountField()

# 創(chuàng)建組合字段域用于將頁碼和總頁數(shù)合成一個字符串繪制
compositeField = PdfCompositeField(font, brush, "第 {0} 頁,共 {1} 頁", [pageNumberField, pageCountField])

# 設(shè)置組合字段域要繪制的位置
pageSize = doc.Pages[0].Size
fontSize = font.MeasureString(compositeField.Text)
compositeField.Location = PointF((pageSize.Width - fontSize.Width) / 2, pageSize.Height - 45.0)
graphicsWidget = PdfGraphicsWidget(compositeField)

# 循環(huán)遍歷文檔中的每一頁
for i in range(doc.Pages.Count):
    # 獲取指定頁面
    page = doc.Pages[i]

    # 在指定位置繪制頁腳圖片
    page.Canvas.DrawImage(footerImage, 55.0, pageSize.Height - 65.0, pageSize.Width - 110.0, 50.0)

    # 在指定位置繪制頁碼組合字段
    graphicsWidget.Draw(page.Canvas)

# 保存文件
doc.SaveToFile("E:/Administrator/Python1/output/添加頁腳.pdf")

# 釋放文檔對象
doc.Dispose()

這是使用 Spire.PDF 添加頁碼后的 PDF 示意圖:

總結(jié)

通過以上步驟,我們可以輕松地在 PDF 文檔中添加頁眉和頁腳,無論是公司 logo、標(biāo)題、頁碼,還是日期和版權(quán)信息,都能實現(xiàn)高度自定義。借助 Spire.PDF 的繪圖功能,你不僅能精確控制元素位置和樣式,還能保持整份文檔的排版一致性與專業(yè)外觀。掌握這些方法后,你就能讓生成的 PDF 更具結(jié)構(gòu)化與品牌感,為報告、合同或技術(shù)文檔增添專業(yè)水準(zhǔn)。

到此這篇關(guān)于Python輕松實現(xiàn)在PDF中插入頁眉頁腳的文章就介紹到這了,更多相關(guān)Python PDF插入頁眉頁腳內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何使用python實現(xiàn)模擬鼠標(biāo)點擊

    如何使用python實現(xiàn)模擬鼠標(biāo)點擊

    這篇文章主要介紹了如何使用python實現(xiàn)模擬鼠標(biāo)點擊,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • Window10上Tensorflow的安裝(CPU和GPU版本)

    Window10上Tensorflow的安裝(CPU和GPU版本)

    這篇文章主要介紹了Window10上Tensorflow的安裝(CPU和GPU版本),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 解決pytorch trainloader遇到的多進程問題

    解決pytorch trainloader遇到的多進程問題

    這篇文章主要介紹了解決pytorch trainloader遇到的多進程問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python中Unittest框架的具體使用

    Python中Unittest框架的具體使用

    這篇文章主要介紹了Python中Unittest框架的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 詳解Pandas 處理缺失值指令大全

    詳解Pandas 處理缺失值指令大全

    這篇文章主要介紹了詳解Pandas 處理缺失值指令大全,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Python實現(xiàn)的矩陣類實例

    Python實現(xiàn)的矩陣類實例

    這篇文章主要介紹了Python實現(xiàn)的矩陣類,結(jié)合完整實例形式分析了Python矩陣的定義、計算、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • Django 跨域請求處理的示例代碼

    Django 跨域請求處理的示例代碼

    本篇文章主要介紹了Django 跨域請求處理的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • python基礎(chǔ)pandas的drop()用法示例詳解

    python基礎(chǔ)pandas的drop()用法示例詳解

    這篇文章主要介紹了python基礎(chǔ)pandas的drop()用法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • Python實現(xiàn)截屏的函數(shù)

    Python實現(xiàn)截屏的函數(shù)

    本文給大家分享的是使用Python實現(xiàn)截屏功能的函數(shù),十分的實用,有需要的小伙伴可以參考下。
    2015-07-07
  • 快速入門python學(xué)習(xí)筆記

    快速入門python學(xué)習(xí)筆記

    給大家分享一下python的一周快速學(xué)習(xí)入門的筆記,如果你希望最快速度學(xué)習(xí)python,這個非常適合你。
    2017-12-12

最新評論

淮安市| 九寨沟县| 昌邑市| 禹州市| 防城港市| 绥宁县| 白银市| 正镶白旗| 沾化县| 太康县| 延津县| 大埔县| 大新县| 长岭县| 万源市| 高陵县| 卓资县| 双江| 丰镇市| 凤城市| 玛纳斯县| 扶风县| 兴化市| 台前县| 桃江县| 成武县| 个旧市| 阿巴嘎旗| 虹口区| 岳阳市| 中山市| 阿勒泰市| 崇州市| 开江县| 洞口县| 镇安县| 邵东县| 方城县| 科尔| 楚雄市| 梧州市|