Gérer les Hyperliens

Un hyperlien est une référence à un objet ou des données ou un endroit dans quelque chose. Voici des hyperliens courants dans les Présentations PowerPoint :

  • Liens vers des sites web à l’intérieur de textes, de formes ou de médias
  • Liens vers des diapositives

Aspose.Slides pour .NET vous permet d’effectuer de nombreuses tâches impliquant des hyperliens dans des présentations.

Ajout d’Hyperliens URL

Ajout d’Hyperliens URL aux Textes

Ce code C# vous montre comment ajouter un hyperlien de site web à un texte :

using (Presentation presentation = new Presentation())
{
	IAutoShape shape1 = presentation.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 100, 100, 600, 50, false);
	shape1.AddTextFrame("Aspose : API de formats de fichiers");
	shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.HyperlinkClick = new Hyperlink("https://www.aspose.com/");
	shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.HyperlinkClick.Tooltip = "Plus de 70 % des entreprises du Fortune 100 font confiance aux API d'Aspose";
	shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.FontHeight = 32;

	presentation.Save("presentation-out.pptx", SaveFormat.Pptx);
}

Ajout d’Hyperliens URL aux Formes ou Cadres

Ce code exemple en C# vous montre comment ajouter un hyperlien de site web à une forme :

using (Presentation pres = new Presentation())
{
    IShape shape = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 100, 100, 600, 50);
    
    shape.HyperlinkClick = new Hyperlink("https://www.aspose.com/");
    shape.HyperlinkClick.Tooltip = "Plus de 70 % des entreprises du Fortune 100 font confiance aux API d'Aspose";

    pres.Save("pres-out.pptx", SaveFormat.Pptx);
}

Ajout d’Hyperliens URL aux Médias

Aspose.Slides vous permet d’ajouter des hyperliens aux images, aux fichiers audio et vidéo.

Ce code exemple vous montre comment ajouter un hyperlien à une image :

using (Presentation pres = new Presentation())
{
    // Ajoute une image à la présentation
    IPPImage image = pres.Images.AddImage(File.ReadAllBytes("image.png"));
    // Crée un cadre d'image sur la diapositive 1 basé sur l'image précédemment ajoutée
    IPictureFrame pictureFrame = pres.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);

    pictureFrame.HyperlinkClick = new Hyperlink("https://www.aspose.com/");
    pictureFrame.HyperlinkClick.Tooltip = "Plus de 70 % des entreprises du Fortune 100 font confiance aux API d'Aspose";

    pres.Save("pres-out.pptx", SaveFormat.Pptx);
}

Ce code exemple vous montre comment ajouter un hyperlien à un fichier audio :

using (Presentation pres = new Presentation())
{
    IAudio audio = pres.Audios.AddAudio(File.ReadAllBytes("audio.mp3"));
    IAudioFrame audioFrame = pres.Slides[0].Shapes.AddAudioFrameEmbedded(10, 10, 100, 100, audio);

    audioFrame.HyperlinkClick = new Hyperlink("https://www.aspose.com/");
    audioFrame.HyperlinkClick.Tooltip = "Plus de 70 % des entreprises du Fortune 100 font confiance aux API d'Aspose";

    pres.Save("pres-out.pptx", SaveFormat.Pptx);
}

Ce code exemple vous montre comment ajouter un hyperlien à une vidéo :

using (Presentation pres = new Presentation())
{
    IVideo video = pres.Videos.AddVideo(File.ReadAllBytes("video.avi"));
    IVideoFrame videoFrame = pres.Slides[0].Shapes.AddVideoFrame(10, 10, 100, 100, video);

    videoFrame.HyperlinkClick = new Hyperlink("https://www.aspose.com/");
    videoFrame.HyperlinkClick.Tooltip = "Plus de 70 % des entreprises du Fortune 100 font confiance aux API d'Aspose";

    pres.Save("pres-out.pptx", SaveFormat.Pptx);
}

Utiliser des Hyperliens pour Créer une Table des Matières

Étant donné que les hyperliens vous permettent d’ajouter des références à des objets ou à des lieux, vous pouvez les utiliser pour créer une table des matières.

Ce code exemple vous montre comment créer une table des matières avec des hyperliens :

using (var presentation = new Presentation())
{
    var firstSlide = presentation.Slides[0];
    var secondSlide = presentation.Slides.AddEmptySlide(firstSlide.LayoutSlide);

    var contentTable = firstSlide.Shapes.AddAutoShape(ShapeType.Rectangle, 40, 40, 300, 100);
    contentTable.FillFormat.FillType = FillType.NoFill;
    contentTable.LineFormat.FillFormat.FillType = FillType.NoFill;
    contentTable.TextFrame.Paragraphs.Clear();

    var paragraph = new Paragraph();
    paragraph.ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
    paragraph.ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
    paragraph.Text = "Titre de la diapositive 2 .......... ";

    var linkPortion = new Portion();
    linkPortion.Text = "Page 2";
    linkPortion.PortionFormat.HyperlinkManager.SetInternalHyperlinkClick(secondSlide);

    paragraph.Portions.Add(linkPortion);
    contentTable.TextFrame.Paragraphs.Add(paragraph);

    presentation.Save("link_to_slide.pptx", SaveFormat.Pptx);
}

Formatage des Hyperliens

Couleur

Avec la propriété ColorSource dans l’interface IHyperlink, vous pouvez définir la couleur des hyperliens et également obtenir les informations de couleur des hyperliens. La fonctionnalité a été introduite pour la première fois dans PowerPoint 2019, donc les changements impliquant la propriété ne s’appliquent pas aux versions antérieures de PowerPoint.

Ce code exemple démontre une opération où des hyperliens de différentes couleurs ont été ajoutés à la même diapositive :

using (Presentation presentation = new Presentation())
{
    IAutoShape shape1 = presentation.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 100, 100, 450, 50, false);
    shape1.AddTextFrame("Ceci est un exemple d'hyperlien coloré.");
    shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.HyperlinkClick = new Hyperlink("https://www.aspose.com/");
    shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.HyperlinkClick.ColorSource = HyperlinkColorSource.PortionFormat;
    shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.FillFormat.FillType = FillType.Solid;
    shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.FillFormat.SolidFillColor.Color = Color.Red;

    IAutoShape shape2 = presentation.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 100, 200, 450, 50, false);
    shape2.AddTextFrame("Ceci est un exemple d'hyperlien habituel.");
    shape2.TextFrame.Paragraphs[0].Portions[0].PortionFormat.HyperlinkClick = new Hyperlink("https://www.aspose.com/");

    presentation.Save("presentation-out-hyperlink.pptx", SaveFormat.Pptx);
}

Son

Aspose.Slides fournit ces propriétés pour vous permettre de mettre en valeur un hyperlien avec un son :

Ajouter un Son à l’Hypelien

Ce code C# vous montre comment définir l’hyperlien qui joue un son et l’arrête avec un autre hyperlien :

using (Presentation pres = new Presentation())
{
	// Ajoute un nouveau son audio à la collection audio de la présentation
	IAudio playSound = pres.Audios.AddAudio(File.ReadAllBytes("sampleaudio.wav"));

	ISlide firstSlide = pres.Slides[0];

	// Ajoute une nouvelle forme avec l'hyperlien vers la diapositive suivante
	IShape firstShape = firstSlide.Shapes.AddAutoShape(ShapeType.SoundButton, 100, 100, 100, 50);
	firstShape.HyperlinkClick = Hyperlink.NextSlide;

	// Vérifie l'hyperlien pour "Aucun Son"
	if (!firstShape.HyperlinkClick.StopSoundOnClick && firstShape.HyperlinkClick.Sound == null)
	{
		// Définit l'hyperlien qui joue le son
		firstShape.HyperlinkClick.Sound = playSound;
	}

	// Ajoute la diapositive vide 
	ISlide secondSlide = pres.Slides.AddEmptySlide(firstSlide.LayoutSlide);

	// Ajoute une nouvelle forme avec l'hyperlien NoAction
	IShape secondShape = secondSlide.Shapes.AddAutoShape(ShapeType.Rectangle, 100, 100, 100, 50);
	secondShape.HyperlinkClick = Hyperlink.NoAction;

	// Définit l'hyperlien "Arrêter le son précédent"
	secondShape.HyperlinkClick.StopSoundOnClick = true;

	pres.Save("hyperlink-sound.pptx", SaveFormat.Pptx);
}

Extraire le Son de l’Hypelien

Ce code C# vous montre comment extraire le son utilisé dans un hyperlien :

using (Presentation pres = new Presentation("hyperlink-sound.pptx"))
{
	ISlide firstSlide = pres.Slides[0];

	// Récupère le premier hyperlien de forme
	IHyperlink link = firstSlide.Shapes[0].HyperlinkClick;

	if (link.Sound != null)
	{
		// Extrait le son hyperlien dans un tableau d'octets
		byte[] audioData = link.Sound.BinaryData;
	}
}

Supprimer des Hyperliens dans les Présentations

Supprimer des Hyperliens des Textes

Ce code C# vous montre comment supprimer l’hyperlien d’un texte dans une diapositive de présentation :

using (Presentation pres = new Presentation("pres.pptx"))
{
    ISlide slide = pres.Slides[0];
    foreach (IShape shape in slide.Shapes)
    {
        IAutoShape autoShape = shape as IAutoShape;
        if (autoShape != null)
        {
            foreach (IParagraph paragraph in autoShape.TextFrame.Paragraphs)
            {
                foreach (IPortion portion in paragraph.Portions)
                {
                    portion.PortionFormat.HyperlinkManager.RemoveHyperlinkClick();
                }
            }
        }
    }
    
    pres.Save("pres-removed-hyperlinks.pptx", SaveFormat.Pptx);
}

Supprimer des Hyperliens des Formes ou Cadres

Ce code C# vous montre comment supprimer l’hyperlien d’une forme dans une diapositive de présentation :

using (Presentation pres = new Presentation("demo.pptx")) 
{ 
   ISlide slide = pres.Slides[0]; 
   foreach (IShape shape in slide.Shapes) 
     { 
       shape.HyperlinkManager.RemoveHyperlinkClick(); 
     } 
   pres.Save("pres-removed-hyperlinks.pptx", SaveFormat.Pptx); 
}

Hyperlien Mutable

La classe Hyperlink est mutable. Avec cette classe, vous pouvez changer les valeurs de ces propriétés :

Le code d’exemple vous montre comment ajouter un hyperlien à une diapositive et modifier son info-bulle plus tard :

using (Presentation presentation = new Presentation())
{   
   IAutoShape shape1 = presentation.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 100, 100, 600, 50, false);    
    
   shape1.AddTextFrame("Aspose : API de formats de fichiers");
    
   shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.HyperlinkClick = new Hyperlink("https://www.aspose.com/");
    
    shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.HyperlinkClick.Tooltip = "Plus de 70 % des entreprises du Fortune 100 font confiance aux API d'Aspose";
    
    shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.FontHeight = 32;
    
 presentation.Save("presentation-out.pptx", SaveFormat.Pptx);
}

Propriétés prises en charge dans IHyperlinkQueries

Vous pouvez accéder à IHyperlinkQueries à partir d’une présentation, d’une diapositive ou de textes pour lesquels l’hyperlien est défini.

La classe IHyperlinkQueries prend en charge ces méthodes et propriétés :