Update Links in PDF

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

Mettre à jour les liens dans un fichier PDF

Comme discuté dans Ajouter un hyperlien dans un fichier PDF, la classe LinkAnnotation permet d’ajouter des liens dans un fichier PDF. Il existe également une classe similaire utilisée pour obtenir des liens existants à l’intérieur des fichiers PDF. Utilisez cela si vous avez besoin de mettre à jour un lien existant. Pour mettre à jour un lien existant :

  1. Chargez un fichier PDF.
  2. Allez à une page spécifique dans le fichier PDF.
  3. Spécifiez la destination du lien en utilisant la propriété Destination de l’objet GoToAction.
  4. La page de destination est spécifiée en utilisant le constructeur XYZExplicitDestination.

Définir la cible du lien vers une page dans le même document

Le code suivant vous montre comment mettre à jour un lien dans un fichier PDF et définir sa cible sur la deuxième page du document. Le code suivant montre comment mettre à jour un lien dans un fichier PDF et définir sa cible sur la deuxième page du document.

// Pour des exemples complets et des fichiers de données, veuillez vous rendre sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Charger le fichier PDF
Document doc = new Document(dataDir + "UpdateLinks.pdf");
// Obtenir la première annotation de lien de la première page du document
LinkAnnotation linkAnnot = (LinkAnnotation)doc.Pages[1].Annotations[1];
// Modification du lien : changer la destination du lien
GoToAction goToAction = (GoToAction)linkAnnot.Action;
// Spécifier la destination pour l'objet lien
// Le premier paramètre est l'objet document, le second est le numéro de la page de destination.
// Le 5ème argument est le facteur de zoom lors de l'affichage de la page respective. Lorsqu'on utilise 2, la page sera affichée avec un zoom de 200%
goToAction.Destination = new Aspose.Pdf.Annotations.XYZExplicitDestination(1, 1, 2, 2);
dataDir = dataDir + "PDFLINK_Modified_UpdateLinks_out.pdf";
// Sauvegarder le document avec le lien mis à jour
doc.Save(dataDir);

Définir la destination du lien vers une adresse Web

Pour mettre à jour l’hyperlien afin qu’il pointe vers une adresse Web, instanciez l’objet GoToURIAction et passez-le à la propriété Action de LinkAnnotation. Le fragment de code suivant montre comment mettre à jour un lien dans un fichier PDF et définir sa cible sur une adresse Web.

// Pour des exemples complets et des fichiers de données, veuillez aller à https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Charger le fichier PDF
Document doc = new Document(dataDir + "UpdateLinks.pdf");

// Obtenir la première annotation de lien de la première page du document
LinkAnnotation linkAnnot = (LinkAnnotation)doc.Pages[1].Annotations[1];
// Modification du lien : changer l'action du lien et définir la cible comme adresse Web
linkAnnot.Action = new GoToURIAction("www.aspose.com");

dataDir = dataDir + "SetDestinationLink_out.pdf";
// Sauvegarder le document avec le lien mis à jour
doc.Save(dataDir);

Définir la cible du lien vers un autre fichier PDF

Le code suivant montre comment mettre à jour un lien dans un fichier PDF et définir sa cible vers un autre fichier PDF.

// Pour des exemples complets et des fichiers de données, veuillez aller à https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Charger le fichier PDF
Document document = new Document(dataDir + "UpdateLinks.pdf");

LinkAnnotation linkAnnot = (LinkAnnotation)document.Pages[1].Annotations[1];

GoToRemoteAction goToR = (GoToRemoteAction)linkAnnot.Action;
// La ligne suivante met à jour la destination, ne met pas à jour le fichier
goToR.Destination = new XYZExplicitDestination(2, 0, 0, 1.5);
// La ligne suivante met à jour le fichier
goToR.File = new FileSpecification(dataDir +  "input.pdf");

dataDir = dataDir + "SetTargetLink_out.pdf";
// Sauvegarder le document avec le lien mis à jour
document.Save(dataDir);

Mettre à jour la couleur du texte de LinkAnnotation

L’annotation de lien ne contient pas de texte. L’annotation de lien ne contient pas de texte.

// Pour des exemples complets et des fichiers de données, veuillez aller à https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Charger le fichier PDF
Document doc = new Document(dataDir + "UpdateLinks.pdf");
foreach (Annotation annotation in doc.Pages[1].Annotations)
{
    if (annotation is LinkAnnotation)
    {
        // Rechercher le texte sous l'annotation
        TextFragmentAbsorber ta = new TextFragmentAbsorber();
        Rectangle rect = annotation.Rect;
        rect.LLX -= 10;
        rect.LLY -= 10;
        rect.URX += 10;
        rect.URY += 10;
        ta.TextSearchOptions = new TextSearchOptions(rect);
        ta.Visit(doc.Pages[1]);
        // Changer la couleur du texte.
        foreach (TextFragment tf in ta.TextFragments)
        {
            tf.TextState.ForegroundColor = Color.Red;
        }
    }

}
dataDir = dataDir + "UpdateLinkTextColor_out.pdf";
// Sauvegarder le document avec le lien mis à jour
doc.Save(dataDir);