Travailler avec des actions dans un PDF

Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.

Ajouter un hyperlien dans un fichier PDF

Il est possible d’ajouter des hyperliens aux fichiers PDF, soit pour permettre aux lecteurs de naviguer vers une autre partie du PDF, soit vers un contenu externe.

Pour ajouter des hyperliens web aux documents PDF :

  1. Créez un objet de classe Document.
  2. Obtenez la classe Page à laquelle vous souhaitez ajouter le lien.
  3. Créez un objet LinkAnnotation en utilisant les objets Page et Rectangle. L’objet rectangle est utilisé pour spécifier l’emplacement sur la page où le lien doit être ajouté.
  4. Définissez la propriété Action sur l’objet GoToURIAction qui spécifie l’emplacement de l’URI distant.
  5. Pour afficher un texte d’hyperlien, ajoutez une chaîne de texte à un emplacement similaire à celui où l’objet LinkAnnotation est placé.
  6. Pour ajouter un texte libre :
  • Instanciez un objet FreeTextAnnotation. Il accepte également les objets Page et Rectangle comme arguments, il est donc possible de fournir les mêmes valeurs que celles spécifiées pour le constructeur LinkAnnotation.
  • À l’aide de la propriété Contents de l’objet FreeTextAnnotation, spécifiez la chaîne qui doit être affichée dans le PDF de sortie.
  • En option, définissez la largeur de la bordure des objets LinkAnnotation et FreeTextAnnotation à 0 afin qu’ils n’apparaissent pas dans le document PDF.
  • Une fois que les objets LinkAnnotation et FreeTextAnnotation ont été définis, ajoutez ces liens à la collection Annotations de l’objet Page.
  • Enfin, enregistrez le PDF mis à jour à l’aide de la méthode Save de l’objet Document.

Le code suivant montre comment ajouter un hyperlien à un fichier PDF.

Créer un hyperlien vers des pages dans le même PDF

Aspose.PDF for .NET offre une excellente fonctionnalité pour la création de PDF ainsi que sa manipulation. Il propose également la fonctionnalité d’ajouter des liens vers des pages PDF et un lien peut soit diriger vers des pages dans un autre fichier PDF, une URL web, un lien pour lancer une application ou même un lien vers des pages dans le même fichier PDF. Pour ajouter des hyperliens locaux (liens vers des pages dans le même fichier PDF), une classe nommée LocalHyperlink a été ajoutée à l’espace de noms Aspose.PDF et cette classe a une propriété nommée TargetPageNumber, qui est utilisée pour spécifier la page cible/destination pour l’hyperlien.

Pour ajouter l’hyperlien local, nous devons créer un TextFragment afin que le lien puisse être associé au TextFragment. La classe TextFragment a une propriété nommée Hyperlink qui est utilisée pour associer une instance de LocalHyperlink. Le code suivant montre les étapes pour accomplir cette exigence.

Obtenir la destination d’hyperlien PDF (URL)

Les liens sont représentés comme des annotations dans un fichier PDF et ils peuvent être ajoutés, mis à jour ou supprimés. Aspose.PDF for .NET prend également en charge l’obtention de la destination (URL) de l’hyperlien dans le fichier PDF.

Pour obtenir l’URL d’un lien :

  1. Créez un objet Document.
  2. Obtenez la Page dont vous souhaitez extraire les liens.
  3. Utilisez la classe AnnotationSelector pour extraire tous les objets LinkAnnotation de la page spécifiée.
  4. Passez l’objet AnnotationSelector à la méthode Accept de l’objet Page.
  5. Obtenez toutes les annotations de lien sélectionnées dans un objet IList à l’aide de la propriété Selected de l’objet AnnotationSelector.
  6. Enfin, extrayez l’action LinkAnnotation comme GoToURIAction.

Le code suivant montre comment obtenir les destinations d’hyperliens (URL) d’un fichier PDF.

Obtenir le texte de l’hyperlien

Un hyperlien a deux parties : le texte qui s’affiche dans le document et l’URL de destination. Dans certains cas, c’est le texte plutôt que l’URL dont nous avons besoin.

Le texte et les annotations/actions dans un fichier PDF sont représentés par différentes entités. Le texte sur une page est juste un ensemble de mots et de caractères, tandis que les annotations apportent une certaine interactivité, comme celle inhérente à un hyperlien.

Pour trouver le contenu de l’URL, vous devez travailler à la fois avec l’annotation et le texte. L’objet Annotation n’a pas lui-même le texte mais se trouve sous le texte sur la page. Donc, pour obtenir le texte, l’annotation donne les limites de l’URL, tandis que l’objet Text donne le contenu de l’URL. Veuillez voir le code suivant.

Supprimer l’action d’ouverture de document d’un fichier PDF

Comment spécifier la page PDF lors de la visualisation du document a expliqué comment indiquer à un document de s’ouvrir sur une page différente de la première. Lors de la concaténation de plusieurs documents, et si un ou plusieurs ont une action GoTo définie, vous voudrez probablement les supprimer. Par exemple, si vous combinez deux documents et que le second a une action GoTo qui vous amène à la deuxième page, le document de sortie s’ouvrira sur la deuxième page du deuxième document au lieu de la première page du document combiné. Pour éviter ce comportement, supprimez la commande d’action d’ouverture.

Pour supprimer une action d’ouverture :

  1. Définissez la propriété OpenAction de l’objet Document sur null.
  2. Enregistrez le PDF mis à jour à l’aide de la méthode Save de l’objet Document.

Le code suivant montre comment supprimer une action d’ouverture de document du fichier PDF.

Comment spécifier la page PDF lors de la visualisation du document

Lors de la visualisation de fichiers PDF dans un visualiseur PDF tel qu’Adobe Reader, les fichiers s’ouvrent généralement sur la première page. Cependant, il est possible de définir le fichier pour qu’il s’ouvre sur une page différente.

La classe XYZExplicitDestination vous permet de spécifier une page dans un fichier PDF que vous souhaitez ouvrir. En passant la valeur de l’objet GoToAction à la propriété OpenAction de la classe Document, le document s’ouvre à la page spécifiée contre l’objet XYZExplicitDestination. Le code suivant montre comment spécifier une page comme action d’ouverture du document.