使用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語言使用金庸小說文本庫,對文本進(jìn)行預(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-09Windows下安裝python2和python3多版本教程
這篇文章主要介紹下Windows(我用的Win10)環(huán)境下的python2.x 和 python3.x 的安裝,以及python2.x 與 python3.x 共存時的配置問題。2017-03-03