Gérer les Hyperliens

Un hyperlien est une référence à un objet ou des données ou un endroit dans quelque chose. Voici quelques 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 C++ 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 :

auto presentation = System::MakeObject<Presentation>();
auto shapes = presentation->get_Slides()->idx_get(0)->get_Shapes();
auto shape = shapes->AddAutoShape(ShapeType::Rectangle, 100.0f, 100.0f, 600.0f, 50.0f, false);
shape->AddTextFrame(u"Aspose : APIs de formats de fichiers");

auto portionFormat = shape->get_TextFrame()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0)->get_PortionFormat();
portionFormat->set_HyperlinkClick(MakeObject<Hyperlink>(u"https://www.aspose.com/"));
portionFormat->get_HyperlinkClick()->set_Tooltip(u"Plus de 70 % des entreprises du Fortune 100 font confiance aux APIs Aspose");
portionFormat->set_FontHeight(32.0f);

presentation->Save(u"presentation-out.pptx", SaveFormat::Pptx);

Ajout d’hyperliens URL aux Formes ou Cadres

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

auto pres = System::MakeObject<Presentation>();
auto shapes = pres->get_Slides()->idx_get(0)->get_Shapes();
auto shape = shapes->AddAutoShape(ShapeType::Rectangle, 100.0f, 100.0f, 600.0f, 50.0f);

shape->set_HyperlinkClick(System::MakeObject<Hyperlink>(u"https://www.aspose.com/"));
shape->get_HyperlinkClick()->set_Tooltip(u"Plus de 70 % des entreprises du Fortune 100 font confiance aux APIs Aspose");

pres->Save(u"pres-out.pptx", SaveFormat::Pptx);

Ajout d’hyperliens URL aux Médias

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

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

auto pres = System::MakeObject<Presentation>();
auto shapes = pres->get_Slides()->idx_get(0)->get_Shapes();
// Ajoute une image à la présentation
auto image = pres->get_Images()->AddImage(File::ReadAllBytes(u"image.png"));
// Crée un cadre d'image sur la diapositive 1 basé sur l'image ajoutée précédemment
auto pictureFrame = shapes->AddPictureFrame(ShapeType::Rectangle, 10.0f, 10.0f, 100.0f, 100.0f, image);

pictureFrame->set_HyperlinkClick(MakeObject<Hyperlink>(u"https://www.aspose.com/"));
pictureFrame->get_HyperlinkClick()->set_Tooltip(u"Plus de 70 % des entreprises du Fortune 100 font confiance aux APIs Aspose");

pres->Save(u"pres-out.pptx", SaveFormat::Pptx);

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

auto pres = System::MakeObject<Presentation>();
auto shapes = pres->get_Slides()->idx_get(0)->get_Shapes();
auto audio = pres->get_Audios()->AddAudio(File::ReadAllBytes(u"audio.mp3"));
auto audioFrame = shapes->AddAudioFrameEmbedded(10.0f, 10.0f, 100.0f, 100.0f, audio);

audioFrame->set_HyperlinkClick(MakeObject<Hyperlink>(u"https://www.aspose.com/"));
audioFrame->get_HyperlinkClick()->set_Tooltip(u"Plus de 70 % des entreprises du Fortune 100 font confiance aux APIs Aspose");

pres->Save(u"pres-out.pptx", SaveFormat::Pptx);

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

auto pres = System::MakeObject<Presentation>();
auto shapes = pres->get_Slides()->idx_get(0)->get_Shapes();
auto video = pres->get_Videos()->AddVideo(File::ReadAllBytes(u"video.avi"));
auto videoFrame = shapes->AddVideoFrame(10.0f, 10.0f, 100.0f, 100.0f, video);

videoFrame->set_HyperlinkClick(MakeObject<Hyperlink>(u"https://www.aspose.com/"));
videoFrame->get_HyperlinkClick()->set_Tooltip(u"Plus de 70 % des entreprises du Fortune 100 font confiance aux APIs Aspose");

pres->Save(u"pres-out.pptx", SaveFormat::Pptx);

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

Puisque 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 d’exemple vous montre comment créer une table des matières avec des hyperliens :

auto presentation = System::MakeObject<Presentation>();
auto firstSlide = presentation->get_Slides()->idx_get(0);
auto secondSlide = presentation->get_Slides()->AddEmptySlide(firstSlide->get_LayoutSlide());

auto contentTable = firstSlide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 40.0f, 40.0f, 300.0f, 100.0f);
contentTable->get_FillFormat()->set_FillType(FillType::NoFill);
contentTable->get_LineFormat()->get_FillFormat()->set_FillType(FillType::NoFill);
contentTable->get_TextFrame()->get_Paragraphs()->Clear();

auto paragraph = System::MakeObject<Paragraph>();
auto paragraphFillFormat = paragraph->get_ParagraphFormat()->get_DefaultPortionFormat()->get_FillFormat();
paragraphFillFormat->set_FillType(FillType::Solid);
paragraphFillFormat->get_SolidFillColor()->set_Color(Color::get_Black());
paragraph->set_Text(u"Titre de la diapositive 2 .......... ");

auto linkPortion = System::MakeObject<Portion>();
linkPortion->set_Text(u"Page 2");
linkPortion->get_PortionFormat()->get_HyperlinkManager()->SetInternalHyperlinkClick(secondSlide);

paragraph->get_Portions()->Add(linkPortion);
contentTable->get_TextFrame()->get_Paragraphs()->Add(paragraph);

Mise en Forme des Hyperliens

Couleur

Avec les méthodes set_ColorSource() et get_ColorSource() dans l’interface IHyperlink, vous pouvez définir la couleur pour les hyperliens et également obtenir les informations de couleur à partir des hyperliens. La fonctionnalité a été introduite pour la première fois dans PowerPoint 2019, donc les modifications impliquant la propriété ne s’appliquent pas aux anciennes versions de PowerPoint.

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

auto presentation = System::MakeObject<Presentation>();
auto shapes = presentation->get_Slides()->idx_get(0)->get_Shapes();
auto shape1 = shapes->AddAutoShape(ShapeType::Rectangle, 100.0f, 100.0f, 450.0f, 50.0f, false);
shape1->AddTextFrame(u"Ceci est un exemple d'hyperlien coloré.");
auto shape1PortionFormat = shape1->get_TextFrame()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0)->get_PortionFormat();
shape1PortionFormat->set_HyperlinkClick(MakeObject<Hyperlink>(u"https://www.aspose.com/"));
shape1PortionFormat->get_HyperlinkClick()->set_ColorSource(HyperlinkColorSource::PortionFormat);
shape1PortionFormat->get_FillFormat()->set_FillType(FillType::Solid);
shape1PortionFormat->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Red());

auto shape2 = shapes->AddAutoShape(ShapeType::Rectangle, 100.0f, 200.0f, 450.0f, 50.0f, false);
shape2->AddTextFrame(u"Ceci est un exemple d'hyperlien habituel.");
auto shape2PortionFormat = shape2->get_TextFrame()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0)->get_PortionFormat();
shape2PortionFormat->set_HyperlinkClick(MakeObject<Hyperlink>(u"https://www.aspose.com/"));

presentation->Save(u"presentation-out-hyperlink.pptx", SaveFormat::Pptx);

Suppression des Hyperliens dans les Présentations

Suppression des Hyperliens des Textes

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

auto pres = System::MakeObject<Presentation>(u"pres.pptx");
auto slide = pres->get_Slides()->idx_get(0);
for (const auto& shape : slide->get_Shapes())
{
    auto autoShape = System::AsCast<IAutoShape>(shape);
    if (autoShape != nullptr)
    {
        for (const auto& paragraph : autoShape->get_TextFrame()->get_Paragraphs())
        {
            for (const auto& portion : paragraph->get_Portions())
            {
                auto hyperlinkManager = portion->get_PortionFormat()->get_HyperlinkManager();
                hyperlinkManager->RemoveHyperlinkClick();
            }
        }
    }
}

pres->Save(u"pres-removed-hyperlinks.pptx", SaveFormat::Pptx);

Suppression des Hyperliens des Formes ou Cadres

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

auto pres = System::MakeObject<Presentation>(u"demo.pptx");
auto slide = pres->get_Slides()->idx_get(0);
for (const auto& shape : slide->get_Shapes())
{
    shape->get_HyperlinkManager()->RemoveHyperlinkClick();
}
pres->Save(u"pres-removed-hyperlinks.pptx", SaveFormat::Pptx);

Hyperlien Mutable

La classe Hyperlink est mutable. Avec cette classe, vous pouvez changer les valeurs pour ces méthodes :

Le code ci-dessous vous montre comment ajouter un hyperlien à une diapositive et modifier son tooltip plus tard :

auto presentation = System::MakeObject<Presentation>();
auto shapes = presentation->get_Slides()->idx_get(0)->get_Shapes();
auto shape = shapes->AddAutoShape(ShapeType::Rectangle, 100.0f, 100.0f, 600.0f, 50.0f, false);

shape->AddTextFrame(u"Aspose : APIs de formats de fichiers");

auto shapePortionFormat = shape->get_TextFrame()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0)->get_PortionFormat();
shapePortionFormat->set_HyperlinkClick(MakeObject<Hyperlink>(u"https://www.aspose.com/"));
shapePortionFormat->get_HyperlinkClick()->set_Tooltip(u"Plus de 70 % des entreprises du Fortune 100 font confiance aux APIs Aspose");
shapePortionFormat->set_FontHeight(32.0f);

presentation->Save(u"presentation-out.pptx", SaveFormat::Pptx);

Méthodes prises en charge dans IHyperlinkQueries

Vous pouvez accéder à IHyperlinkQueries depuis une présentation, une diapositive ou un texte pour lequel l’hyperlien est défini.

La classe IHyperlinkQueries prend en charge ces méthodes :