Pobierz wszystkie zewnętrzne hiperłącza w prezentacji
Contents
[
Hide
]
Prezentacja OpenXML
string FilePath = @"..\..\..\..\Sample Files\";
string FileName = FilePath + "Get all the External Eyperlinks.pptx";
foreach (string s in GetAllExternalHyperlinksInPresentation(FileName))
Console.WriteLine(s);
// Zwraca wszystkie zewnętrzne hiperłącza w slajdach prezentacji.
public static IEnumerable<String> GetAllExternalHyperlinksInPresentation(string fileName)
{
// Deklaruj listę łańcuchów znaków.
List<string> ret = new List<string>();
// Otwórz plik prezentacji w trybie tylko do odczytu.
using (PresentationDocument document = PresentationDocument.Open(fileName, false))
{
// Iteruj po wszystkich częściach slajdów w części prezentacji.
foreach (SlidePart slidePart in document.PresentationPart.SlideParts)
{
IEnumerable<Drawing.HyperlinkType> links = slidePart.Slide.Descendants<Drawing.HyperlinkType>();
// Iteruj po wszystkich linkach w części slajdu.
foreach (Drawing.HyperlinkType link in links)
{
// Iteruj po wszystkich zewnętrznych relacjach w części slajdu.
foreach (HyperlinkRelationship relation in slidePart.HyperlinkRelationships)
{
// Jeśli identyfikator relacji jest zgodny z identyfikatorem linku...
if (relation.Id.Equals(link.Id))
{
// Dodaj URI zewnętrznej relacji do listy łańcuchów znaków.
ret.Add(relation.Uri.AbsoluteUri);
}
}
}
}
}
// Zwróć listę łańcuchów znaków.
return ret;
}
Aspose.Slides
Aspose.Slides dla .NET umożliwia programistom zarządzanie hiperłączami w prezentacji na poziomie prezentacji, slajdu i ramki tekstowej. Klasa IHyperlinkQueries pomaga zarządzać hiperłączami w prezentacji.
string FilePath = @"..\..\..\..\Sample Files\";
string FileName = FilePath + "Get all the External Eyperlinks.pptx";
//Utwórz obiekt Presentation, który reprezentuje plik PPTX
Presentation pres = new Presentation(FileName);
//Pobierz hiperłącza z prezentacji
IList<IHyperlinkContainer> links = pres.HyperlinkQueries.GetAnyHyperlinks();
foreach (IHyperlinkContainer link in links)
Console.WriteLine(link.HyperlinkClick.ExternalUrl);