Comment ajouter des hyperliens à un PDF avec Python
Tags: python, pdf, hyperlien
Published: 2023-12-01 06:58:58

Les hyperliens dans les PDF offrent un moyen transparent et convivial de naviguer dans le document lui-même ou de diriger les utilisateurs vers des ressources externes. En incorporant des hyperliens, les PDF dépassent leur nature statique, permettant aux lecteurs d'accéder facilement à des sections spécifiques, à du contenu connexe ou à des sites Web pertinents en un seul clic. Cette fonctionnalité interactive améliore l'expérience utilisateur globale, rendant les documents PDF plus dynamiques, engageants et informatifs. Dans cet article, nous allons explorer comment **ajouter des hyperliens à un PDF en utilisant Python**.

## Installer la bibliothèque requise
Avant de commencer le processus d'ajout d'hyperliens à un PDF avec Python, il est essentiel d'installer la bibliothèque nécessaire. Dans cet article, nous utiliserons [Spire.PDF for Python](https://www.e-iceblue.com/Introduce/pdf-for-python.html). Spire.PDF for Python est une bibliothèque populaire pour travailler avec des fichiers PDF en Python. Elle vous permet de manipuler des PDF existants, y compris l'ajout d'hyperliens.

Pour installer cette bibliothèque, ouvrez le terminal de votre projet et exécutez la commande pip suivante :
```python
pip install Spire.Pdf 
```

## Ajouter des hyperliens à un PDF avec Python
Spire.PDF for Python permet aux développeurs d'ajouter des hyperliens à un nouveau texte dans un PDF ou d'ajouter des hyperliens à un texte existant dans un PDF.

**Exemple 1 : Ajouter des hyperliens à un nouveau texte dans un PDF avec Python**

L'exemple de code suivant explique comment ajouter différents types d'hyperliens, tels que des liens Web, des liens de messagerie électronique et des liens de fichier, à un document PDF en utilisant Python et Spire.PDF for Python :
```python
from spire.pdf.common import * 
from spire.pdf import * 
 
# Créer une instance de PdfDocument 
pdf = PdfDocument() 
 
# Ajouter une page 
page = pdf.Pages.Add() 
 
# Initialiser les coordonnées x, y 
y = 30.0 
x = 10.0 
 
# Créer des polices TrueType 
font = PdfTrueTypeFont("Arial", 14.0, PdfFontStyle.Regular, True) 
font1 = PdfTrueTypeFont("Arial", 14.0, PdfFontStyle.Underline, True) 
 
# Ajouter un lien simple 
label = "Simple Text Link: " 
format = PdfStringFormat() 
format.MeasureTrailingSpaces = True 
page.Canvas.DrawString(label, font, PdfBrushes.get_Orange(), 0.0, y, format) 
x = font.MeasureString(label, format).Width 
url = "http://www.e-iceblue.com" 
page.Canvas.DrawString(url, font1, PdfBrushes.get_Blue(), x, y) 
y = y + 28 
 
# Ajouter un lien hypertexte 
label = "Hypertext Link: " 
page.Canvas.DrawString(label, font, PdfBrushes.get_Orange(), 0.0, y, format) 
x = font.MeasureString(label, format).Width 
webLink = PdfTextWebLink() 
webLink.Text = "Home Page" 
webLink.Url = url 
webLink.Font = font1 
webLink.Brush = PdfBrushes.get_Blue() 
webLink.DrawTextWebLink(page.Canvas, PointF(x, y)) 
y = y + 28 
 
# Ajouter un lien de messagerie électronique 
label = "Email Link:  " 
page.Canvas.DrawString(label, font, PdfBrushes.get_Orange(), 0.0, y, format) 
x = font.MeasureString(label, format).Width 
link = PdfTextWebLink() 
link.Text = "Contact Us" 
link.Url = "mailto:support@e-iceblue.com" 
link.Font = font1 
link.Brush = PdfBrushes.get_Blue() 
link.DrawTextWebLink(page.Canvas, PointF(x, y)) 
y = y + 28 
 
# Ajouter un lien de fichier 
label = "Document Link: " 
page.Canvas.DrawString(label, font, PdfBrushes.get_Orange(), 0.0, y, format) 
x = font.MeasureString(label, format).Width 
text = "Open File" 
location = PointF(x, y) 
size = font1.MeasureString(text) 
linkBounds = RectangleF(location, size) 
fileLink = PdfFileLinkAnnotation(linkBounds,"C:\\Users\\Administrator\\Desktop\\Report.xlsx") 
fileLinkBordure = PdfAnnotationBorder(0.0) 
page.AnnotationsWidget.Add(fileLink) 
page.Canvas.DrawString(text, font1, PdfBrushes.get_Blue(), x, y) 
 
# Enregistrer le fichier PDF résultant 
pdf.SaveToFile("AddLinkstoPDF.pdf") 
pdf.Close() 
```
**Exemple 2 : Ajouter des hyperliens à un texte existant dans un PDF avec Python**

L'exemple de code suivant explique comment ajouter des hyperliens à un texte existant dans un document PDF en utilisant Python et Spire.PDF for Python :
```python
from spire.pdf.common import * 
from spire.pdf import * 
 
# Créer une instance de PdfDocument 
pdf = PdfDocument() 
 
# Charger un fichier PDF 
pdf.LoadFromFile("input.pdf") 
 
# Obtenir la première page 
page = pdf.Pages[0] 
 
# Rechercher toutes les occurrences du texte spécifié sur la page 
collection = page.FindText("big O notation", TextFindParameter.IgnoreCase) 
 
# Parcourir toutes les occurrences du texte spécifié 
for findin collection.Finds: 
    # Créer une annotation de lien hypertexte 
    uri = PdfUriAnnotation(find.Bounds) 
    # Définir l'URL du lien hypertexte 
    uri.Uri = "https://en.wikipedia.org/wiki/Big_O_notation" 
    # Définir la bordure de l'annotation de lien hypertexte 
    uri.Border = PdfAnnotationBorder(1.0) 
    # Définir la couleur de la bordure 
    uri.Color = PdfRGBColor(Color.get_Blue()) 
    # Ajouter l'annotation de lien hypertexte à la page 
    page.AnnotationsWidget.Add(uri) 
 
# Enregistrer le fichier résultant 
pdf.SaveToFile("SearchTextAndAddHyperlink.pdf") 
pdf.Close() 
```
Ces exemples de code démontrent comment ajouter des hyperliens à des documents PDF en utilisant Python et la bibliothèque Spire.PDF. En suivant ces exemples, vous pouvez améliorer l'interactivité et l'expérience utilisateur de vos fichiers PDF.

## Sujets connexes

- [Python : modifier ou supprimer des hyperliens dans un PDF](https://www.e-iceblue.com/Tutorials/Python/Spire.PDF-for-Python/Program-Guide/Link/Python-Modify-or-Remove-Hyperlinks-in-PDF.html)
- [Python : rechercher et mettre en évidence du texte dans un PDF](https://www.e-iceblue.com/Tutorials/Python/Spire.PDF-for-Python/Program-Guide/Text/Python-Find-and-Highlight-Text-in-PDF.html)
- [Python : ajouter, masquer ou supprimer des calques dans un PDF](https://www.e-iceblue.com/Tutorials/Python/Spire.PDF-for-Python/Program-Guide/Document-Operation/Python-Add-Hide-or-Remove-Layers-in-PDF.html)
- [Python : appliquer différentes polices dans un PDF](https://www.e-iceblue.com/Tutorials/Python/Spire.PDF-for-Python/Program-Guide/Font/Python-Apply-Different-Fonts-in-PDF.html)