Obtenir tous les hyperliens externes dans une présentation
Contents
[
Hide
]
Présentation OpenXML
string FilePath = @"..\..\..\..\Sample Files\";
string FileName = FilePath + "Get all the External Eyperlinks.pptx";
foreach (string s in GetAllExternalHyperlinksInPresentation(FileName))
Console.WriteLine(s);
// Returns all the external hyperlinks in the slides of a presentation.
public static IEnumerable<String> GetAllExternalHyperlinksInPresentation(string fileName)
{
// Déclare une liste de chaînes.
List<string> ret = new List<string>();
// Ouvre le fichier de présentation en lecture seule.
using (PresentationDocument document = PresentationDocument.Open(fileName, false))
{
// Parcourt toutes les parties de diapositives dans la partie de présentation.
foreach (SlidePart slidePart in document.PresentationPart.SlideParts)
{
IEnumerable<Drawing.HyperlinkType> links = slidePart.Slide.Descendants<Drawing.HyperlinkType>();
// Parcourt tous les liens dans la partie de diapositive.
foreach (Drawing.HyperlinkType link in links)
{
// Parcourt toutes les relations externes dans la partie de diapositive.
foreach (HyperlinkRelationship relation in slidePart.HyperlinkRelationships)
{
// Si l'ID de la relation correspond à l'ID du lien...
if (relation.Id.Equals(link.Id))
{
// Ajoute l'URI de la relation externe à la liste de chaînes.
ret.Add(relation.Uri.AbsoluteUri);
}
}
}
}
}
// Retourne la liste de chaînes.
return ret;
}
Aspose.Slides
Aspose.Slides pour .NET permet aux développeurs de gérer les hyperliens dans une présentation au niveau de la présentation, des diapositives et des cadres de texte. La classe IHyperlinkQueries aide à gérer les hyperliens dans une présentation.
string FilePath = @"..\..\..\..\Sample Files\";
string FileName = FilePath + "Get all the External Eyperlinks.pptx";
//Instantiate a Presentation object that represents a PPTX file
Presentation pres = new Presentation(FileName);
//Get the hyperlinks from presentation
IList<IHyperlinkContainer> links = pres.HyperlinkQueries.GetAnyHyperlinks();
foreach (IHyperlinkContainer link in links)
Console.WriteLine(link.HyperlinkClick.ExternalUrl);