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

C#代碼實現(xiàn)將超鏈接插入到PDF的現(xiàn)有文本中

 更新時間:2026年02月05日 08:33:57   作者:2501_93070778  
PDF 中的超鏈接是一項非常實用的功能,能夠讓讀者快速、便捷地訪問指定的網(wǎng)頁,本文將介紹如何使用 Spire.PDF for .NET為 PDF 文檔中的現(xiàn)有文本添加超鏈接,感興趣的小伙伴可以了解下

PDF 中的超鏈接是一項非常實用的功能,能夠讓讀者快速、便捷地訪問指定的網(wǎng)頁。通過在 PDF 文檔中添加超鏈接,可以為讀者提供更多補充信息,或引導(dǎo)他們前往相關(guān)的參考資源。當(dāng)讀者點擊超鏈接時,對應(yīng)的網(wǎng)頁會立即在瀏覽器中打開。

本文將介紹如何使用 Spire.PDF for .NET,通過 .NET 程序為 PDF 文檔中的現(xiàn)有文本添加超鏈接。

安裝 Spire.PDF for .NET

首先,需要將 Spire.PDF for .NET 包中包含的 DLL 文件添加為 .NET 項目的引用。這些 DLL 文件可以通過鏈接直接下載,也可以通過 NuGet 進(jìn)行安裝。

PM> Install-Package Spire.PDF

使用 C#/VB.NET 在 PDF 現(xiàn)有文本上插入超鏈接

在 PDF 文檔中,超鏈接是以**注釋(Annotation)**的形式添加到頁面上的。要在 PDF 的已有文本上插入超鏈接,首先需要定位目標(biāo)文本;獲取其所在位置后,即可創(chuàng)建一個包含鏈接的 PdfUriAnnotation 對象,并將其添加到對應(yīng)位置。具體步驟如下:

  • 創(chuàng)建 PdfDocument 對象,并使用 PdfDocument.LoadFromFile() 方法加載 PDF 文件。
  • 通過 PdfDocument.Pages 屬性獲取第一頁。
  • 創(chuàng)建 PdfTextFinder 對象,并通過 PdfTextFinder.Options.Parameter 屬性設(shè)置查找選項。
  • 使用 PdfTextFinder.Find() 方法在頁面中查找指定文本,并獲取其第三次出現(xiàn)的位置。
  • 遍歷該文本出現(xiàn)位置的文本邊界(由于被搜索的文本可能跨越多行,且可能包含多個邊界,查找到的文本邊界會以列表形式返回,以適應(yīng)這種情況)。
  • 在對應(yīng)的文本邊界內(nèi)創(chuàng)建 PdfUriAnnotation 對象,并通過其屬性設(shè)置鏈接地址、邊框樣式和邊框顏色。
  • 使用 PdfPageBase.AnnotationsWidget.Add(PdfUriAnnotation) 方法將超鏈接添加到頁面注釋中。
  • 調(diào)用 PdfDocument.SaveToFile() 方法保存 PDF 文件。

具體示例代碼如下:

using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.Texts;
using System.Collections.Generic;
using System.Drawing;
using TextFindParameter = Spire.Pdf.Texts.TextFindParameter;

namespace ChangeHyperlink
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 創(chuàng)建 PdfDocument 類的對象
            PdfDocument pdf = new PdfDocument();

            // 加載 PDF 文件
            pdf.LoadFromFile("Sample.pdf");

            // 獲取第一頁
            PdfPageBase page = pdf.Pages[0];

            // 創(chuàng)建 PdfTextFinder 對象并設(shè)置查找選項
            PdfTextFinder finder = new PdfTextFinder(page);
            finder.Options.Parameter = TextFindParameter.IgnoreCase;

            // 在頁面中查找指定文本,并獲取第三次出現(xiàn)的位置
            List<PdfTextFragment> collection = finder.Find("climate change");
            PdfTextFragment fragment = collection[2];

            // 遍歷該文本出現(xiàn)位置的所有文本邊界
            foreach (RectangleF bounds in fragment.Bounds)
            {
                // 創(chuàng)建一個超鏈接注釋
                PdfUriAnnotation url = new PdfUriAnnotation(bounds);
                // 設(shè)置超鏈接的 URL
                url.Uri = "https://en.wikipedia.org/wiki/Climate_change";
                // 設(shè)置超鏈接注釋的邊框
                url.Border = new PdfAnnotationBorder(1f);
                // 設(shè)置邊框顏色
                url.Color = Color.Blue;
                // 將超鏈接注釋添加到頁面中
                page.Annotations.Add(url);
            }

            // 保存 PDF 文件
            pdf.SaveToFile("AddHyperlinks.pdf");
            pdf.Dispose();
        }
    }
}

方法補充

C#插入超鏈接到PDF文檔的三種方法

1.鏈接到外部網(wǎng)頁

//創(chuàng)建PDF文檔并添加一頁
PdfDocument pdf = new PdfDocument();
PdfPageBase page =pdf.Pages.Add();
 
//定義坐標(biāo)變量并賦初值
float x = 10;
float y = 50;
 
//創(chuàng)建字體
PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular), true);
//添加文本到頁面
string text = "更多詳情請訪問E-iceblue官方網(wǎng)站:  ";
page.Canvas.DrawString(text, font1, PdfBrushes.Black, newPointF(x, y));
 
PdfStringFormat format = new PdfStringFormat();
format.MeasureTrailingSpaces = true;           
x = x + font1.MeasureString(text, format).Width;
 
//創(chuàng)建字體
PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Underline), true);
//創(chuàng)建PdfTextWebLink對象
PdfTextWebLink webLink = new PdfTextWebLink();
//設(shè)置超鏈接地址
webLink.Url = "https://www.e-iceblue.cn/";
//設(shè)置超鏈接文本
webLink.Text = "www.e-iceblue.cn";
//設(shè)置超鏈接字體和字體顏色
webLink.Font = font2;
webLink.Brush = PdfBrushes.Blue;
 
//添加超鏈接到頁面
webLink.DrawTextWebLink(page.Canvas, new PointF(x, y));
 
//保存文檔
pdf.SaveToFile("WebLink.pdf");

2.鏈接到文檔內(nèi)部的指定頁面

//創(chuàng)建PDF文檔并添加兩頁
PdfDocument pdf = new PdfDocument();
PdfPageBase page1 =pdf.Pages.Add();
PdfPageBase page2 =pdf.Pages.Add();
 
//創(chuàng)建字體
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular), true);
 
//添加文本到頁面
page1.Canvas.DrawString("第一頁",font, PdfBrushes.Black, new PointF(20,20));
page2.Canvas.DrawString("第二頁",font, PdfBrushes.Black, new PointF(20,20));
 
string text = "跳轉(zhuǎn)到第二頁"; 
//創(chuàng)建RectangleF對象并添加文本         
RectangleF rectangle = new RectangleF(20,80, 70, 20);
page1.Canvas.DrawString(text, font, PdfBrushes.ForestGreen, rectangle);
 
//創(chuàng)建PdfDocumentLinkAnnotation對象
PdfDocumentLinkAnnotation documentLink = new PdfDocumentLinkAnnotation(rectangle,new PdfDestination(page2));
 
//設(shè)置邊框顏色           
documentLink.Color = Color.DarkSeaGreen;
 
//添加超鏈接到第一頁
page1.AnnotationsWidget.Add(documentLink);
 
//保存文檔
pdf.SaveToFile("InternalFileLink.pdf");

3.鏈接到外部文檔

//創(chuàng)建PDF文檔并添加一頁
PdfDocument document = new PdfDocument();
PdfPageBase page =document.Pages.Add();
 
//創(chuàng)建字體
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular), true);
 
string text = "打開1.jpg";
//創(chuàng)建RectangleF對象并添加文本
RectangleF rectangle = new RectangleF(20,40, 80, 20);
page.Canvas.DrawString(text, font, PdfBrushes.ForestGreen, rectangle);
           
//創(chuàng)建PdfFileLinkAnnotation對象
PdfFileLinkAnnotation fileLink = new PdfFileLinkAnnotation(rectangle,@"1.jpg");
//設(shè)置超鏈接邊框顏色
fileLink.Color = Color.DarkSeaGreen;
 
//添加超鏈接到頁面
page.AnnotationsWidget.Add(fileLink);
 
//保存文檔
document.SaveToFile("ExternalFileLink.pdf");

到此這篇關(guān)于C#代碼實現(xiàn)將超鏈接插入到PDF的現(xiàn)有文本中的文章就介紹到這了,更多相關(guān)C#超鏈接插入PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#解決多IfElse判斷語句和Switch語句問題的方法分享

    C#解決多IfElse判斷語句和Switch語句問題的方法分享

    這篇文章主要為大家介紹C#如何使用設(shè)計模式中的策略模式和委托來解決多個IfElse判斷語句和Switch語句,這種替換方式在其他語言也一樣可以做到,感興趣的可以了解一下
    2022-12-12
  • C#窗體通訊錄系統(tǒng)的示例代碼

    C#窗體通訊錄系統(tǒng)的示例代碼

    本文主要介紹了C#窗體通訊錄系統(tǒng)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • C# 泛型List排序的實現(xiàn)

    C# 泛型List排序的實現(xiàn)

    本文主要介紹了C# 泛型List排序的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • C#9.0中init訪問器的實現(xiàn)

    C#9.0中init訪問器的實現(xiàn)

    本文主要介紹了C#9.0中init訪問器的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • 在C#中調(diào)用Windows防火墻界面的常見方式

    在C#中調(diào)用Windows防火墻界面的常見方式

    在 C# 中調(diào)用 Windows 防火墻界面(基礎(chǔ)設(shè)置或高級安全設(shè)置),可以使用 進(jìn)程啟動(Process.Start) 或 Win32 API 來實現(xiàn),所以本文給大家介紹了C#調(diào)用Windows防火墻界面的常見方式,需要的朋友可以參考下
    2025-11-11
  • C#使用Thrift作為RPC框架入門詳細(xì)教程

    C#使用Thrift作為RPC框架入門詳細(xì)教程

    這篇文件我們講了從0到1使用thrift框架的方法,也講了一些該框架的基本知識,本文將詳細(xì)介紹 Thrift 在C#語言下的使用方式,并且提供豐富的實例代碼加以解釋說明,幫助使用者快速構(gòu)建服務(wù),感興趣的朋友一起看看吧
    2021-11-11
  • 詳細(xì)聊聊C#的并發(fā)機制優(yōu)秀在哪

    詳細(xì)聊聊C#的并發(fā)機制優(yōu)秀在哪

    并發(fā)其實是一個很泛的概念,字面意思就是"同時做多件事",不過方式有所不同,下面這篇文章主要給大家介紹了關(guān)于C#并發(fā)機制的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • C#使用iTextSharp設(shè)置PDF所有頁面背景圖功能實例

    C#使用iTextSharp設(shè)置PDF所有頁面背景圖功能實例

    這篇文章主要介紹了C#使用iTextSharp設(shè)置PDF所有頁面背景圖功能,實例分析了C#使用iTextSharp設(shè)置PDF頁面背景圖的實現(xiàn)方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • C# 8.0新特性介紹

    C# 8.0新特性介紹

    C# 語言是在2000發(fā)布的,至今已正式發(fā)布了7個版本,每個版本都包含了許多令人興奮的新特性和功能更新。下面通過本文給大家分享下C# 8.0的三個令人興奮的新特性,需要的朋友參考下吧
    2017-10-10
  • C# winform自定義翻頁控件詳解

    C# winform自定義翻頁控件詳解

    這篇文章主要為大家詳細(xì)介紹了C# winform自定義翻頁控件的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09

最新評論

金昌市| 霸州市| 无锡市| 甘孜| 喀喇沁旗| 山东省| 定结县| 治多县| 平利县| 武汉市| 从化市| 桦川县| 汾西县| 酉阳| 双流县| 淮北市| 余庆县| 永顺县| 保靖县| 论坛| 海伦市| 曲阜市| 闽清县| 吉木萨尔县| 灯塔市| 循化| 焉耆| 逊克县| 武穴市| 海淀区| 响水县| 南宁市| 行唐县| 台中县| 偃师市| 康定县| 九龙县| 桃江县| 竹溪县| 万盛区| 正镶白旗|