PDF のハイパーリンクは、読者が特定のページに簡単にアクセスできるようにする重要な機能です。 PDF ドキュメントにハイパーリンクを追加することで、ドキュメントに関する追加情報をより簡単に読者に提供したり、関連リソースに移動させたりすることができます。 読者がハイパーリンクをクリックすると、対応するページがブラウザで開かれ、読書体験を大きく向上させることができます。 この記事では、Spire.PDF for .NET を使用して、.NET を使用して PDF 内の既存のテキストにハイパーリンクを追加する方法について説明します。
Spire.PDF for .NET をインストールします
まず、Spire.PDF for.NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDF
C#/VB.NET で PDF のテキストにハイパーリンクを挿入する
PDF ドキュメント内のハイパーリンクは、注釈要素としてページに挿入されます。PDF ドキュメント内の指定されたテキストにハイパーリンクを追加するには、まずテキストの位置を特定する必要があります。 テキストの位置を取得すると、指定されたテキストへのハイパーリンクの追加を実現するように、オブジェクトへの指定されたリンクを持つ PdfUriAnnotation を作成し、取得の位置に挿入することができます。 詳しい手順は以下のとおりです。
- PdfDocument クラスのオブジェクトを作成し、PdfDocument.LoadFromFile() メソッドを使用して PDF ファイルを読み込みます。
- PdfDocument.Pages プロパティを使用して、ドキュメントの最初のページを取得します。
- PdfTextFinder クラスのオブジェクトを作成し、PdfTextFinder.Options.Parameter プロパティを使用してファインダーのオプションを設定します。
- PdfTextFinder.Find() メソッドを使用して、ページ内の指定されたテキストを検索し、2 番目の検索結果を取得します。
- 2 番目の検索結果のテキスト範囲をループします(検索されたテキストは複数行にまたがる可能性があり、範囲も 1 つ以上あるため、この不確実性を考慮して結果の範囲はリストに格納されます)。
- テキスト範囲内に PdfUriAnnotation クラスのオブジェクトを作成し、PdfUriAnnotation クラスのプロパティを使用してリンクと範囲と枠線の色を設定します。
- PdfPageBase.AnnotationsWidget.Add(PdfUriAnnotation) メソッドを使用して、ページにハイパーリンクを挿入します。
- PdfDocument.SaveToFile() メソッドを使用して PDF ファイルを保存します。
- C#
- VB.NET
using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.Exporting.XPS.Schema;
using Spire.Pdf.General.Find;
using Spire.Pdf.Texts;
using System;
using System.Collections.Generic;
using System.Drawing;
using TextFindParameter = Spire.Pdf.Texts.TextFindParameter;
namespace ChangeHyperlink
{
internal class Program
{
static void Main(string[] args)
{
//PdfDocumentのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFファイルを読み込む
pdf.LoadFromFile("サンプル.pdf");
//ドキュメントの最初のページを取得する
PdfPageBase page = pdf.Pages[0];
//PdfTextFinderオブジェクトを作成し、ファインダーのオプションを設定する
PdfTextFinder finder = new PdfTextFinder(page);
finder.Options.Parameter = TextFindParameter.WholeWord;
//ページ上の指定されたテキストを検索し、2番目の結果を取得する
List collection = finder.Find("気候変動");
PdfTextFragment fragment = collection[1];
//2番目の検索結果のテキスト範囲をループする
foreach (RectangleF bounds in fragment.Bounds)
{
//PdfUriAnnotationのオブジェクトを作成する
PdfUriAnnotation url = new PdfUriAnnotation(bounds);
//リンクを設定する
url.Uri = "https://www.jma.go.jp/jma/kishou/know/whitep/3-1.html";
//枠線を設定する
url.Border = new PdfAnnotationBorder(1f);
//枠線の色を設定する
url.Color = Color.Blue;
//ページにハイパーリンクを挿入する
page.AnnotationsWidget.Add(url);
}
//PDFファイルを保存する
pdf.SaveToFile("ハイパーリンクの追加.pdf");
pdf.Dispose();
}
}
}
Imports Spire.Pdf
Imports Spire.Pdf.Annotations
Imports Spire.Pdf.Exporting.XPS.Schema
Imports Spire.Pdf.General.Find
Imports Spire.Pdf.Texts
Imports System
Imports System.Collections.Generic
Imports System.Drawing
Imports TextFindParameter = Spire.Pdf.Texts.TextFindParameter
Namespace ChangeHyperlink
Friend Class Program
Shared Sub Main(ByVal args() As String)
'PdfDocumentのオブジェクトを作成する
Dim pdf As PdfDocument = New PdfDocument()
'PDFファイルを読み込む
pdf.LoadFromFile("サンプル.pdf")
'ドキュメントの最初のページを取得する
Dim page As PdfPageBase = pdf.Pages(0)
'PdfTextFinderオブジェクトを作成し、ファインダーのオプションを設定する
Dim finder As PdfTextFinder = New PdfTextFinder(page)
finder.Options.Parameter = TextFindParameter.WholeWord
'ページ上の指定されたテキストを検索し、2番目の結果を取得する
Dim collection As List= finder.Find("気候変動")
Dim fragment As PdfTextFragment = collection(1)
'2番目の検索結果のテキスト範囲をループする
Dim bounds As RectangleF
For Each bounds In fragment.Bounds
'PdfUriAnnotationのオブジェクトを作成する
Dim url As PdfUriAnnotation = New PdfUriAnnotation(bounds)
'リンクを設定する
url.Uri = "https://www.jma.go.jp/jma/kishou/know/whitep/3-1.html"
'枠線を設定する
url.Border = New PdfAnnotationBorder(1.0F)
'枠線の色を設定する
url.Color = Color.Blue
'ページにハイパーリンクを挿入する
page.AnnotationsWidget.Add(url)
Next
'PDFファイルを保存する
pdf.SaveToFile("ハイパーリンクの追加.pdf")
pdf.Dispose()
End Sub
End Class
End Namespace
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。