チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル».NET»Spire.PDF for .NET»リンク»C#/VB.NET:PDF のハイパーリンクを変更または削除する方法
2023-07-11

C#/VB.NET:PDF のハイパーリンクを変更または削除する方法

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 のハイパーリンクを変更または削除する方法

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

C#/VB.NET:PDF のハイパーリンクを変更または削除する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 827 times