PDF ドキュメント内のハイパーリンクを使用することで、ユーザーはページにジャンプしたりドキュメントを開いたりすることができ、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 のハイパーリンクの URL を変更する
PDF ページ上のハイパーリンクの URL を変更するには、ハイパーリンク注釈ウィジェットを取得し、PdfUriAnnotationWidget.Uri プロパティを使用して URL を再設定する必要があります。詳しい手順は以下の通りです。
- PdfDocument のオブジェクトを作成します。
- PdfDocument.LoadFromFIle() メソッドを使って PDF ファイルを読み込みます。
- PdfDocument.Pages[] プロパティを使用してドキュメントの最初のページを取得します。
- PdfPageBase.AnnotationsWidget[] プロパティを使用して、ページの最初のハイパーリンクウィジェットを取得します。
- PdfUriAnnotationWidget.Uri プロパティを使用してハイパーリンクの URL を再設定します。
- PdfDocument.SaveToFile() メソッドを使用してドキュメントを保存します。
- C#
- VB.NET
using Spire.Pdf;
using Spire.Pdf.Annotations;
using System;
namespace ChangeHyperlink
{
internal class Program
{
static void Main(string[] args)
{
//PdfDocumentのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFファイルを読み込む
pdf.LoadFromFile("サンプル.pdf");
//最初のページを取得する
PdfPageBase page = pdf.Pages[0];
//最初のハイパーリンクを取得する
PdfUriAnnotationWidget url = (PdfUriAnnotationWidget)page.AnnotationsWidget[0];
//このハイパーリンクのURLを再設定する
url.Uri = "https://www.jma.go.jp/jma/kishou/know/whitep/3-1.html";
//PDFファイルを保存する
pdf.SaveToFile("ハイパーリンクの変更.pdf");
pdf.Dispose();
}
}
}
Imports Spire.Pdf
Imports Spire.Pdf.Annotations
Imports System
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)
'最初のハイパーリンクを取得する
Dim url As PdfUriAnnotationWidget = CType(page.AnnotationsWidget(0), PdfUriAnnotationWidget)
'このハイパーリンクのURLを再設定する
url.Uri = "https://www.jma.go.jp/jma/kishou/know/whitep/3-1.html"
'PDFファイルを保存する
pdf.SaveToFile("ハイパーリンクの変更.pdf")
pdf.Dispose()
End Sub
End Class
End Namespace
C#/VB.NET で PDF からハイパーリンクを削除する
Spire.PDF for .NET は、PdfPageBase.AnnotationsWidget.RemoveAt() メソッドを提供し、インデックスによって PDF ページ上のハイパーリンクを削除します。PDF ドキュメントからすべてのハイパーリンクを削除するには、ページを繰り返し、各ページの注釈ウィジェットを取得し、注釈が PdfUriAnnotationWidget クラスのインスタンスであるかどうかを確認し、もしそうであれば注釈を削除する必要があります。以下に詳細な手順を示します。
- PdfDocument のオブジェクトを作成します。
- PdfDocument.LoadFromFIle() メソッドを使って PDF ドキュメントを読み込みます。
- 特定のハイパーリンクを削除するには、ハイパーリンクを含むページを取得し、PdfPageBase.AnnotationsWidget.RemoveAt() メソッドを使用してそのインデックスでハイパーリンクを削除します。
- すべてのハイパーリンクを削除するには、ドキュメント内のページをループして、PdfPageBase.AnnotationsWidget プロパティを使用して各ページの注釈コレクションを取得します。
- 注釈ウィジェットが PdfUriAnnotationWidget クラスのインスタンスであるかどうかをチェックし、そうであれば PdfAnnotationCollection.Remove(PdfUriAnnotationWidget) メソッドを使用して注釈ウィジェットを削除します。
- PdfDocument.SaveToFIle() メソッドを使用してドキュメントを保存します。
- C#
- VB.NET
using Spire.Pdf;
using Spire.Pdf.Annotations;
using System;
using System.Dynamic;
namespace DeleteHyperlink
{
internal class Program
{
static void Main(string[] args)
{
//PdfDocumentのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFファイルを読み込む
pdf.LoadFromFile("サンプル.pdf");
//最初のページの2番目のハイパーリンクを削除する
//PdfPageBase page = pdf.Pages[0];
//page.AnnotationsWidget.RemoveAt(1);
//ドキュメント内のすべてのハイパーリンクを削除する
//ドキュメント内のページをループする
foreach (PdfPageBase page in pdf.Pages)
{
//ページ内の注釈のコレクションを取得する
PdfAnnotationCollection collection = page.AnnotationsWidget;
for (int i = collection.Count - 1; i >= 0; i--)
{
PdfAnnotation annotation = collection[i];
//注釈がPdfUriAnnotationWidgetのインスタンスであるかどうかを判定する
if (annotation is PdfUriAnnotationWidget)
{
PdfUriAnnotationWidget url = (PdfUriAnnotationWidget)annotation;
//ハイパーリンクを削除する
collection.Remove(url);
}
}
}
//ドキュメントを保存する
pdf.SaveToFile("ハイパーリンクの削除.pdf");
pdf.Dispose();
}
}
}
Imports Spire.Pdf
Imports Spire.Pdf.Annotations
Imports System
Imports System.Dynamic
Namespace DeleteHyperlink
Friend Class Program
Shared Sub Main(ByVal args() As String)
'PdfDocumentのオブジェクトを作成する
Dim pdf As PdfDocument = New PdfDocument()
'PDFファイルを読み込む
pdf.LoadFromFile("サンプル.pdf")
'最初のページの2番目のハイパーリンクを削除する
'PdfPageBase page = pdf.Pages[0];
'page.AnnotationsWidget.RemoveAt(1);
'ドキュメント内のすべてのハイパーリンクを削除する
'ドキュメント内のページをループする
Dim page As PdfPageBase
For Each page In pdf.Pages
'ページ内の注釈のコレクションを取得する
Dim collection As PdfAnnotationCollection = page.AnnotationsWidget
Dim i As Integer
For i = collection.Count - 1 To 0 Step i - 1
Dim annotation As PdfAnnotation = collection(i)
'注釈がPdfUriAnnotationWidgetのインスタンスであるかどうかを判定する
If TypeOf annotation Is PdfUriAnnotationWidget Then
Dim url As PdfUriAnnotationWidget = CType(annotation, PdfUriAnnotationWidget)
'ハイパーリンクを削除する
collection.Remove(url)
End If
Next
Next
'ドキュメントを保存する
pdf.SaveToFile("ハイパーリンクの削除.pdf")
pdf.Dispose()
End Sub
End Class
End Namespace
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。