Extraire les liens

Contents
[ ]

Les PDF contiennent souvent des éléments interactifs tels que des liens web, des liens de document et des actions personnalisées. En utilisant PdfContentEditor, vous pouvez extraire programmétiquement toutes les annotations de lien d’un PDF. Cela vous permet d’inspecter ou de traiter les liens, par exemple pour valider les URL ou analyser les schémas de navigation dans un document.

  1. Créer une instance de PdfContentEditor.
  2. Lier le document PDF d’entrée.
  3. Extraire tous les liens en utilisant ’extract_link()'.
  4. Itérer à travers les liens extraits.
  5. Vérifier si un lien est une LinkAnnotation et si son action est une GoToURIAction.
  6. Afficher les coordonnées du rectangle et l’URI.
  7. Afficher un message si aucun lien n’est trouvé.
import aspose.pdf.facades as pdf_facades
from aspose.pycore import cast, is_assignable
import aspose.pydrawing as apd
import aspose.pdf as ap

import sys
from os import path

sys.path.append(path.join(path.dirname(__file__), ".."))

from config import set_license, initialize_data_dir


def extract_links(infile):
    # Create PdfContentEditor object
    content_editor = pdf_facades.PdfContentEditor()
    # Bind document to PdfContentEditor
    content_editor.bind_pdf(infile)
    # Extract links from the document
    links = content_editor.extract_link()

    count = 0
    for link in links:
        count += 1
        print(f"Link {count}: {link.rect}")
        if is_assignable(link, ap.annotations.LinkAnnotation):
            annotation = cast(ap.annotations.LinkAnnotation, link)
            if is_assignable(annotation.action, ap.annotations.GoToURIAction):
                action = cast(ap.annotations.GoToURIAction, annotation.action)
                print(f"  URI: {action.uri}")

    if count == 0:
        print("No links found")