使用Python給PDF添加文本超鏈接和圖片超鏈接
使用工具
要在Python應(yīng)用程序中實現(xiàn)給PDF文檔添加超鏈接,可以使用Spire.PDF for Python。它是一個專門用于在Python應(yīng)用程序中創(chuàng)建、讀取、操作和轉(zhuǎn)換PDF文檔的庫。
你可以通過在終端運行以下命令來從PyPI安裝Spire.PDF for Python:
pip install Spire.PDF
Python給PDF添加網(wǎng)頁鏈接
網(wǎng)頁鏈接可以幫助用戶快速跳轉(zhuǎn)到指定的外部網(wǎng)頁。在PDF文檔中添加網(wǎng)頁鏈接,可以引導(dǎo)讀者訪問相關(guān)的在線資源,如文章、視頻或網(wǎng)站等。在商業(yè)或教育等用途的PDF中經(jīng)常用到網(wǎng)頁鏈接。
Spire.PDF提供了PdfTextWebLink類,用于生成網(wǎng)頁鏈接并將其繪制到PDF頁面上。下面是具體實現(xiàn)代碼:
from spire.pdf.common import *
from spire.pdf import *
# 創(chuàng)建PDF文檔
doc = PdfDocument()
# 添加頁面
page = doc.Pages.Add()
# 初始化x和y坐標(biāo)
x = 10.0
y = 50.0
# 創(chuàng)建字體
label_font = PdfTrueTypeFont("宋體", 14.0, PdfFontStyle.Regular, True)
link_font = PdfTrueTypeFont("宋體", 14.0, PdfFontStyle.Underline, True)
# 在頁面上繪制文本
label = "網(wǎng)頁鏈接:"
format = PdfStringFormat()
format.MeasureTrailingSpaces = True
page.Canvas.DrawString(label, label_font, PdfBrushes.get_Orange(), x, y, format)
x += label_font.MeasureString(label, format).Width
# 在頁面上繪制網(wǎng)頁鏈接
web_link = PdfTextWebLink()
web_link.Text = "CSDN首頁"
web_link.Url = "https://www.csdn.net/"
web_link.Font = link_font
web_link.Brush = PdfBrushes.get_Blue()
web_link.DrawTextWebLink(page.Canvas, PointF(x, y))
# 保存生成的PDF文件
doc.SaveToFile("網(wǎng)頁鏈接.pdf")
doc.Close()
Python給PDF添加內(nèi)部文件鏈接
內(nèi)部文件鏈接可以讓讀者在同一PDF文檔內(nèi)快速跳轉(zhuǎn)至不同的頁面或章節(jié)。對于內(nèi)容較長或結(jié)構(gòu)復(fù)雜的文檔,這種鏈接極大地改善了用戶的導(dǎo)航體驗,使他們能夠更快速、準(zhǔn)確地找到所需信息。
要給PDF添加內(nèi)部文件鏈接,可以使用PdfDocumentLinkAnnotation類。下面是具體實現(xiàn)代碼:
from spire.pdf.common import *
from spire.pdf import *
# 創(chuàng)建PDF文檔
doc = PdfDocument()
# 添加兩個頁面
doc.Pages.Add()
doc.Pages.Add()
# 初始化x和y坐標(biāo)
x = 10.0
y = 50.0
# 創(chuàng)建字體
label_font = PdfTrueTypeFont("宋體", 14.0, PdfFontStyle.Regular, True)
link_font = PdfTrueTypeFont("宋體", 14.0, PdfFontStyle.Underline, True)
# 在頁面上繪制文本
label = "內(nèi)部文件鏈接: "
format = PdfStringFormat()
format.MeasureTrailingSpaces = True
doc.Pages[0].Canvas.DrawString(label, label_font, PdfBrushes.get_Orange(), x, y, format)
x += label_font.MeasureString(label, format).Width
# 在頁面上繪制文本
text = "跳轉(zhuǎn)到第2頁"
doc.Pages[0].Canvas.DrawString(text, link_font, PdfBrushes.get_Blue(), x, y)
# 創(chuàng)建矩形
rectangle = RectangleF(x, y, link_font.MeasureString(text).Width, link_font.MeasureString(text).Height)
# 創(chuàng)建內(nèi)部文件鏈接注釋
documentLinkAnnotation = PdfDocumentLinkAnnotation(rectangle)
# 設(shè)置注釋邊框
documentLinkAnnotation.Border = PdfAnnotationBorder(0.0)
# 指定目標(biāo)頁面的索引(從0開始)
destinationPageIndex = 1
# 設(shè)置注釋的目標(biāo)位置
documentLinkAnnotation.Destination = PdfDestination(destinationPageIndex, PointF(x, y), 1.0)
# 將注釋添加到第一頁
doc.Pages[0].Annotations.Add(documentLinkAnnotation)
# 保存生成的PDF文件
doc.SaveToFile("內(nèi)部文件鏈接.pdf")
doc.Close()
Python給PDF添加外部文件鏈接
外部文件鏈接允許用戶通過PDF直接打開其他文件,例如相關(guān)的文檔、表格或多媒體文件。這種鏈接的設(shè)置有助于構(gòu)建更豐富的資源環(huán)境,為用戶提供更多的參考資料和輔助信息。
要給PDF添加外部文件鏈接,可以使用PdfFileLinkAnnotation類。下面是具體實現(xiàn)代碼:
from spire.pdf.common import *
from spire.pdf import *
# 創(chuàng)建PDF文檔
doc = PdfDocument()
# 添加頁面
page = doc.Pages.Add()
# 初始化x和y坐標(biāo)
x = 10.0
y = 50.0
# 創(chuàng)建字體
label_font = PdfTrueTypeFont("宋體", 14.0, PdfFontStyle.Regular, True)
link_font = PdfTrueTypeFont("宋體", 14.0, PdfFontStyle.Underline, True)
# 在頁面上繪制文本
label = "外部文件鏈接: "
format = PdfStringFormat()
format.MeasureTrailingSpaces = True
doc.Pages[0].Canvas.DrawString(label, label_font, PdfBrushes.get_Orange(), x, y, format)
x += label_font.MeasureString(label, format).Width
# 在頁面上繪制文本
text = "打開圖片"
page.Canvas.DrawString(text, link_font, PdfBrushes.get_Blue(), x, y)
# 創(chuàng)建矩形
rectangle = RectangleF(x, y, link_font.MeasureString(text).Width, link_font.MeasureString(text).Height)
# 創(chuàng)建外部文件鏈接注釋
fileLinkAnnotation = PdfFileLinkAnnotation(rectangle, "C:/Users/Administrator/Desktop/images.png")
# 設(shè)置注釋邊框
fileLinkAnnotation.Border = PdfAnnotationBorder(0.0)
# 將注釋添加到頁面
page.Annotations.Add(fileLinkAnnotation)
# 保存生成的PDF文件
doc.SaveToFile("外部文件鏈接.pdf")
doc.Close()
Python給PDF中現(xiàn)有文本添加超鏈接
通過給PDF中的現(xiàn)有文本添加超鏈接,可以將文中的特定詞匯或短語轉(zhuǎn)化為可點擊的鏈接來指向網(wǎng)頁、文檔的內(nèi)部位置或其他外部文件。
要給PDF中的現(xiàn)有文本添加超鏈接,需要先使用PdfTextFinder類在PDF頁面上找到該文本,定位到其所在位置,然后使用PdfUriAnnotation類為其添加超鏈接。下面是具體實現(xiàn)代碼:
from spire.pdf.common import *
from spire.pdf import *
# 打開PDF文檔
doc = PdfDocument()
doc.LoadFromFile("什么是Adobe Acrobat.pdf")
# 標(biāo)記注釋是否已添加
annotation_added = False
# 遍歷文檔中的所有頁面
for i in range(doc.Pages.Count):
if annotation_added:
break
# 獲取當(dāng)前頁面
page = doc.Pages[i]
# 創(chuàng)建PdfTextFinder對象
finder = PdfTextFinder(page)
# 查找所需文本
textFragments = finder.Find("Adobe")
if textFragments:
# 獲取第一個實例
textFragment = textFragments[0]
# 在第一個實例所在位置創(chuàng)建URL注釋
uriAnnotation = PdfUriAnnotation(textFragment.Bounds[0])
# 設(shè)置注釋URL
uriAnnotation.Uri = "https://www.adobe.com/"
# 設(shè)置注釋邊框
uriAnnotation.Border = PdfAnnotationBorder(1.0)
# 設(shè)置注釋邊框顏色
uriAnnotation.Color = PdfRGBColor(Color.get_Red())
# 將注釋添加到文本存在的頁面
page.Annotations.Add(uriAnnotation)
annotation_added = True
# 保存生成的PDF文件
doc.SaveToFile("給現(xiàn)有文本添加注釋.pdf")
doc.Close()
Python在PDF中插入帶超鏈接的圖片
在PDF中插入帶有超鏈接的圖片,能夠為用戶提供更加直觀的點擊體驗。無論是指向網(wǎng)頁還是外部文件,這種視覺化的超鏈接形式,能有效吸引用戶注意,并提供更豐富的交互功能。
除了可以給文本添加超鏈接以外,PdfUriAnnotation類也可用于為PDF中的圖片添加超鏈接。下面是具體實現(xiàn)代碼:
from spire.pdf.common import *
from spire.pdf import *
# 創(chuàng)建PDF文檔
doc = PdfDocument()
# 添加頁面
page = doc.Pages.Add()
# 打開圖片
image = PdfImage.FromFile("C:/Users/Administrator/Downloads/Python.png")
# 創(chuàng)建矩形
rectangle = RectangleF(PointF(20.0, 50.0), SizeF(float(image.Width), float(image.Height)))
# 在頁面上的矩形區(qū)域內(nèi)繪制圖片
page.Canvas.DrawImage(image, rectangle)
# 在圖片所在位置創(chuàng)建URL注釋
uriAnnotation = PdfUriAnnotation(rectangle)
# 設(shè)置注釋URL
uriAnnotation.Uri = "https://www.python.org/"
# 設(shè)置注釋邊框
uriAnnotation.Border = PdfAnnotationBorder(0.0)
# 將注釋添加到頁面
page.Annotations.Add(uriAnnotation)
# 保存生成的PDF文件
doc.SaveToFile("插入帶超鏈接的圖片.pdf")
doc.Close()
Python給PDF中現(xiàn)有圖片添加超鏈接
除了插入帶有超鏈接的圖片,還可以在現(xiàn)有的PDF圖片上添加超鏈接。這樣,用戶點擊圖片時將直接跳轉(zhuǎn)到設(shè)定的網(wǎng)頁或其他文件,大大提升了PDF文檔的可用性和交互體驗。
要給PDF中的現(xiàn)有圖片添加超鏈接,首先需要定位到該圖片所在位置,然后使用PdfUriAnnotation類為其添加超鏈接。下面是具體實現(xiàn)代碼:
from spire.pdf.common import *
from spire.pdf import *
# 打開PDF文檔
doc = PdfDocument()
doc.LoadFromFile("什么是Adobe Acrobat.pdf")
# 獲取第一頁
page = doc.Pages[0]
# 創(chuàng)建PdfImageHelper對象
imageHelper = PdfImageHelper()
# 在頁面上查找圖片
imageList = imageHelper.GetImagesInfo(page)
if imageList:
# 獲取第一個圖片
image = imageList[0]
# 在圖片所在位置創(chuàng)建URL注釋
uriAnnotation = PdfUriAnnotation(image.Bounds)
# 設(shè)置注釋URL
uriAnnotation.Uri = "https://www.adobe.com/"
# 設(shè)置注釋邊框
uriAnnotation.Border = PdfAnnotationBorder(0.0)
# 將注釋添加到頁面
page.Annotations.Add(uriAnnotation)
# 保存生成的PDF文件
doc.SaveToFile("給現(xiàn)有圖片添加超鏈接.pdf")
doc.Close()
到此這篇關(guān)于使用Python給PDF添加文本超鏈接和圖片超鏈接的文章就介紹到這了,更多相關(guān)Python PDF添加超鏈接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用Keras庫中的LSTM模型生成新文本內(nèi)容教程
Python語言使用金庸小說文本庫,對文本進行預(yù)處理,然后使用Keras庫中的LSTM模型創(chuàng)建和訓(xùn)練了模型,根據(jù)這個模型,我們可以生成新的文本,并探索小說的不同應(yīng)用2024-01-01
有關(guān)pycharm登錄github時有的時候會報錯connection reset的問題
這篇文章主要介紹了有關(guān)pycharm登錄github時有的時候會報錯connection reset的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
Windows下安裝python2和python3多版本教程
這篇文章主要介紹下Windows(我用的Win10)環(huán)境下的python2.x 和 python3.x 的安裝,以及python2.x 與 python3.x 共存時的配置問題。2017-03-03

