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

Python在PDF中添加或刪除超鏈接的操作

 更新時間:2024年12月15日 09:00:19   作者:Eiceblue  
PDF文件現(xiàn)已成為文檔存儲和分發(fā)的首選格式,然而,PDF文件的靜態(tài)特性有時會限制其交互性,超鏈接是提高PDF文件互動性和用戶體驗(yàn)的關(guān)鍵元素,本文將詳細(xì)介紹如何使用第三方庫Spire.PDF for Python來進(jìn)行這些操作,需要的朋友可以參考下

引言

PDF文件現(xiàn)已成為文檔存儲和分發(fā)的首選格式。然而,PDF文件的靜態(tài)特性有時會限制其交互性。超鏈接是提高PDF文件互動性和用戶體驗(yàn)的關(guān)鍵元素。Python作為一種強(qiáng)大的編程語言,擁有多種庫和工具來處理PDF文件,包括添加、刪除超鏈接。本文將詳細(xì)介紹如何使用第三方庫Spire.PDF for Python來進(jìn)行這些操作。

所需Python庫 - Spire.PDF for Python??梢酝ㄟ^下面的pip 命令直接安裝:

pip install Spire.Pdf

Python 在PDF文檔中添加超鏈接

Spire.PDF for Python支持在PDF中添加不同類型的超鏈接:

  • 簡單文字鏈接:直接使用 PdfPageBase.Canvas.DrawString() 方法將其繪制到頁面上。
  • 超文本鏈接、郵箱鏈接:通過 PdfTextWebLink.DrawTextWebLink() 方法繪制到頁面上。
  • 文檔鏈接:通過 PdfPageBase.AnnotationsWidget.Add(PdfFileLinkAnnotation) 方法添加。

Python 代碼如下:

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

# 創(chuàng)建PDF文檔
pdf = PdfDocument()

# 添加頁面
page = pdf.Pages.Add()

# 設(shè)置初始X和Y坐標(biāo)
y = 30.0
x = 10.0

# 創(chuàng)建PDF字體
font = PdfTrueTypeFont("宋體", 14.0, PdfFontStyle.Regular, True)
font1 = PdfTrueTypeFont("宋體", 14.0, PdfFontStyle.Underline, True)

# 添加簡單文本鏈接
label = "簡單鏈接: "
format = PdfStringFormat()
format.MeasureTrailingSpaces = True
page.Canvas.DrawString(label, font, PdfBrushes.get_Black(), 0.0, y, format)
x = font.MeasureString(label, format).Width
url = "https://www.e-iceblue.cn"
page.Canvas.DrawString(url, font1, PdfBrushes.get_Blue(), x, y)
y = y + 28

# 添加超文本鏈接
label = "超文本鏈接:"
page.Canvas.DrawString(label, font, PdfBrushes.get_Black(), 0.0, y, format)
x = font.MeasureString(label, format).Width
webLink = PdfTextWebLink()
webLink.Text = "主頁"
webLink.Url = url
webLink.Font = font1
webLink.Brush = PdfBrushes.get_Blue()
webLink.DrawTextWebLink(page.Canvas, PointF(x, y))
y = y + 28

# 添加郵件鏈接
label = "郵件鏈接: "
page.Canvas.DrawString(label, font, PdfBrushes.get_Black(), 0.0, y, format)
x = font.MeasureString(label, format).Width
link = PdfTextWebLink()
link.Text = "聯(lián)系我們"
link.Url = "mailto:support @e-iceblue.com"
link.Font = font1
link.Brush = PdfBrushes.get_Blue()
link.DrawTextWebLink(page.Canvas, PointF(x, y))
y = y + 28

# 添加文檔鏈接
label = "文檔鏈接: "
page.Canvas.DrawString(label, font, PdfBrushes.get_Black(), 0.0, y, format)
x = font.MeasureString(label, format).Width
text = "點(diǎn)擊打開文件"
location = PointF(x, y)
size = font1.MeasureString(text)
linkBounds = RectangleF(location, size)
fileLink = PdfFileLinkAnnotation(linkBounds, "C:\\Users\\Administrator\\Desktop\\排名.xlsx")
fileLink.Border = PdfAnnotationBorder(0.0)
page.AnnotationsWidget.Add(fileLink)
page.Canvas.DrawString(text, font1, PdfBrushes.get_Blue(), x, y)

# 保存PDF文檔
pdf.SaveToFile("PDF超鏈接.pdf")
pdf.Close()

生成文件:

Python 刪除PDF 文檔中的超鏈接

如果要將PDF文檔中已有的超鏈接一次性全部刪除,可以參考以下步驟:

  1. 通過LoadFromFile()方法加載 PDF 文檔。
  2. 循環(huán)遍歷文檔中的頁面,并通過 PdfPageBase.AnnotationsWidget 屬性獲取每個頁面上的注釋。
  3. 循環(huán)遍歷所有注釋,檢查每個注釋是否為超鏈接。
  4. 如果是,則使用 PdfAnnotationCollection.Remove() 方法將其刪除。
  5. 使用 PdfDocument.SaveToFile() 方法保存文檔。

Python 代碼:

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

# 加載PDF文檔
pdf = PdfDocument()
pdf.LoadFromFile("PDF超鏈接.pdf")

# 遍歷文檔中的所有頁面
for j in range(pdf.Pages.Count):
    # 獲取每一頁
    page = pdf.Pages.get_Item(j)
    # 獲取每一頁上的注釋
    annotations = page.AnnotationsWidget
    # 檢查注釋是否為空
    if annotations.Count > 0:
        # 遍歷所有注釋
        i = annotations.Count - 1
        while i >=0:
            # 獲取注釋
            annotation = annotations.get_Item(i)
            # 檢查注釋是否為超鏈接
            if isinstance(annotation, PdfTextWebLinkAnnotationWidget):
                # 刪除超鏈接
                annotations.Remove(annotation)
            i -= 1

# 保存PDF文檔
pdf.SaveToFile("刪除PDF超鏈接.pdf")
pdf.Close()

如果僅需刪除PDF某一頁中的指定超鏈接,可以參考 以下代碼:

# 刪除第一頁中的第一個超鏈接
page = pdf.Pages.get_Item(0)
page.AnnotationsWidget.RemoveAt(0)

到此這篇關(guān)于Python在PDF中添加或刪除超鏈接的操作的文章就介紹到這了,更多相關(guān)Python添加或刪除PDF超鏈接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用Python腳本實(shí)現(xiàn)自動刷網(wǎng)課

    利用Python腳本實(shí)現(xiàn)自動刷網(wǎng)課

    這篇文章主要介紹了利用Python腳本實(shí)現(xiàn)自動刷網(wǎng)課,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Django如何將URL映射到視圖

    Django如何將URL映射到視圖

    這篇文章主要介紹了Django如何將URL映射到視圖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Python編程中的for循環(huán)語句學(xué)習(xí)教程

    Python編程中的for循環(huán)語句學(xué)習(xí)教程

    這篇文章主要介紹了Python編程中的for循環(huán)語句學(xué)習(xí)教程,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10
  • Python中字典的基礎(chǔ)介紹及常用操作總結(jié)

    Python中字典的基礎(chǔ)介紹及常用操作總結(jié)

    字典也是python的數(shù)據(jù)類型中的一種,它由許多鍵值對組成,它是一種可變?nèi)萜髂P?一般情況下鍵是唯一的,字典支持嵌套,下面這篇文章主要給大家介紹了關(guān)于Python中字典的基礎(chǔ)介紹及常用操作,需要的朋友可以參考下
    2021-09-09
  • 簡單介紹Python的第三方庫yaml

    簡單介紹Python的第三方庫yaml

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著Python的第三方庫yaml展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 13行python代碼實(shí)現(xiàn)對微信進(jìn)行推送消息的示例代碼

    13行python代碼實(shí)現(xiàn)對微信進(jìn)行推送消息的示例代碼

    本文主要介紹了13行python代碼實(shí)現(xiàn)對微信進(jìn)行推送消息的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • python3使用flask編寫注冊post接口的方法

    python3使用flask編寫注冊post接口的方法

    今天小編就為大家分享一篇python3使用flask編寫注冊post接口的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python解決MySQL數(shù)據(jù)處理從SQL批量刪除報錯

    Python解決MySQL數(shù)據(jù)處理從SQL批量刪除報錯

    這篇文章主要為大家介紹了Python解決MySQL數(shù)據(jù)處理從SQL批量刪除報錯,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • flask框架自定義url轉(zhuǎn)換器操作詳解

    flask框架自定義url轉(zhuǎn)換器操作詳解

    這篇文章主要介紹了flask框架自定義url轉(zhuǎn)換器操作,結(jié)合實(shí)例形式分析了URL轉(zhuǎn)換器的相關(guān)原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • PyTorch一小時掌握之基本操作篇

    PyTorch一小時掌握之基本操作篇

    這篇文章主要介紹了PyTorch一小時掌握之基本操作篇,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09

最新評論