0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PythonでPDF内のハイパーリンクを変更または削除、PDF内のリンクを簡単に管理

Posted at

PDF ドキュメント内のハイパーリンクは、一般的なコンテンツナビゲーションツールであり、ドキュメント内部または外部の関連情報にナビゲートするために使用されます。リンクが効果的に機能するためには、リンクが正確で最新のものであることを確保する必要があります。ハイパーリンクの変更や削除の能力を持つことは、無効なリンクや誤ったリンクを迅速に修正または削除するのに役立ち、ドキュメントの専門性とコンテンツへのアクセスの利便性を向上させることができます。この記事では、Pythonを使用してPDFドキュメント内のハイパーリンクを変更または削除する方法を示します。これにより、ドキュメント情報の正確性とナビゲーションの利便性が確保され、より良いユーザーエクスペリエンスがもたらされます。

本記事で紹介する方法には、Spire.PDF for Pythonが必要です。公式ウェブサイトからダウンロードするか、PyPIを介してインストールすることができます:

pip install Spire.PDF

Pythonを使用してPDFのハイパーリンクの対象アドレスを更新する

PDFドキュメントでは、ハイパーリンクは実際には注釈としてページ上のリンクコンテンツに表示されます。そのため、ハイパーリンクを編集する際には、まず PdfPageBase.AnnotationsWidget 属性を使用してPDFページのすべての注釈を取得する必要があります。その後、ハイパーリンクとしての注釈を任意のものを取得し、PdfTextWebLinkAnnotationWidget.Url 属性を使用してリンクアドレスを変更することができます。以下に詳細な手順を示します。

  • PdfDocument クラスのオブジェクトを作成し、PdfDocument.LoadFromFile() メソッドを使ってPDF文書を読み込みます。
  • PdfDocument.Pages.get_Item() メソッドを使用してドキュメントのページを取得します。
  • PdfPageBase.AnnotationsWidget プロパティを使ってページ上のすべての注釈を取得します。
  • ハイパーリンク注釈を取得し、PdfTextWebLinkAnnotationWidget オブジェクトにキャストします。
  • PdfTextWebLinkAnnotationWidget.Url プロパティを使用して、ハイパーリンク注釈の新しいターゲットアドレスを設定します。
  • PdfDocument.SaveToFile() メソッドを使用してドキュメントを保存します。

Python

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

# PdfDocumentクラスのオブジェクトを作成し、PDFドキュメントをロードする
pdf = PdfDocument()
pdf.LoadFromFile("Sample.pdf")

# ドキュメントの最初のページを取得する
page = pdf.Pages.get_Item(0)

# ページ上のすべての注釈を取得する
widgetCollection = page.AnnotationsWidget

# 2番目のハイパーリンク注釈を取得する
annotation = widgetCollection.get_Item(1)

# ハイパーリンク注釈をPdfTextWebLinkAnnotationWidgetオブジェクトにキャストする
link = PdfTextWebLinkAnnotationWidget(annotation)

# 2番目のハイパーリンクの新しいターゲットアドレスを設定する
link.Url = "https://www.mcafee.com/learn/understanding-trojan-viruses-and-how-to-get-rid-of-them/"

# ドキュメントを保存する
pdf.SaveToFile("output/PDFハイパーリンクの変更.pdf")
pdf.Close()

変更効果
Pythonを使用してPDFのハイパーリンクの対象アドレスを更新する

Pythonを使用してPDFドキュメントからハイパーリンクを削除する

PdfPageBase.AnnotationsWidget.RemoveAt() メソッドを使って、開発者は簡単にページ上の特定のハイパーリンクを削除することができます。さらに、Spire.PDF for Pythonを使用して、開発者は各ページとその注釈を反復処理し、PDFドキュメント全体からすべてのハイパーリンク注釈を特定して削除することもできます。以下に詳細な手順を示します。

  • PdfDocument クラスのオブジェクトを作成し、PdfDocument.LoadFromFile() メソッドを使用してPDFドキュメントを読み込みます。
  • 特定のハイパーリンクを削除するには、PdfDocument.Pages.get_Item() メソッドを使用してドキュメント内のページを取得し、PdfPageBase.AnnotationsWidget.RemoveAt() メソッドを使用してハイパーリンク注釈を削除します。
  • ドキュメント内のすべてのハイパーリンクを削除するには、ドキュメント内の各ページをループ処理して、PdfPageBase.AnnotationsWidget プロパティを介して各ページの注釈を取得します。
  • 注釈をループ処理して、各注釈が PdfTextWebLinkAnnotationWidget クラスのインスタンスかどうかをチェックします。それであれば、PdfAnnotationCollection.Remove() メソッドを使用して削除します。
  • PdfDocument.SaveToFile() メソッドを使用してドキュメントを保存します。

Python

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

# PdfDocumentクラスのオブジェクトを作成し、PDFドキュメントを読み込む
pdf = PdfDocument()
pdf.LoadFromFile("Sample.pdf")

# 最初のページの最初のハイパーリンクを削除する
#page = pdf.Pages.get_Item(0)
#page.AnnotationsWidget.RemoveAt(0)

# すべてのハイパーリンクを削除する
# ドキュメント内の各ページをループ処理する
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.SaveToFile("output/PDFハイパーリンクの削除.pdf")
pdf.Close()

削除効果
Pythonを使用してPDFドキュメントからハイパーリンクを削除する

上記の記事では、Pythonを使用してPDF文書内のハイパーリンクを変更または削除する方法について説明しています。Python用Spire.PDFは他にも多くの機能をサポートしていますので、Spire.PDF for Pythonのチュートリアルをご覧ください。 また、議論に参加するためにSpire.PDFフォーラムに行くことができます。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?