プレゼンテーション内のすべての外部ハイパーリンクを取得する
Contents
[
Hide
]
OpenXML プレゼンテーション
string FilePath = @"..\..\..\..\Sample Files\";
string FileName = FilePath + "Get all the External Eyperlinks.pptx";
foreach (string s in GetAllExternalHyperlinksInPresentation(FileName))
Console.WriteLine(s);
// プレゼンテーションのスライド内のすべての外部ハイパーリンクを返します。
public static IEnumerable<String> GetAllExternalHyperlinksInPresentation(string fileName)
{
// 文字列のリストを宣言します。
List<string> ret = new List<string>();
// プレゼンテーションファイルを読み取り専用として開きます。
using (PresentationDocument document = PresentationDocument.Open(fileName, false))
{
// プレゼンテーションパート内のすべてのスライドパートを繰り返します。
foreach (SlidePart slidePart in document.PresentationPart.SlideParts)
{
IEnumerable<Drawing.HyperlinkType> links = slidePart.Slide.Descendants<Drawing.HyperlinkType>();
// スライドパート内のすべてのリンクを繰り返します。
foreach (Drawing.HyperlinkType link in links)
{
// スライドパート内のすべての外部関係を繰り返します。
foreach (HyperlinkRelationship relation in slidePart.HyperlinkRelationships)
{
// 関係のIDがリンクのIDと一致する場合...
if (relation.Id.Equals(link.Id))
{
// 外部関係のURIを文字列のリストに追加します。
ret.Add(relation.Uri.AbsoluteUri);
}
}
}
}
}
// 文字列のリストを返します。
return ret;
}
Aspose.Slides
Aspose.Slides for .NET は、プレゼンテーション、スライド、およびテキストフレームレベルでハイパーリンクを管理する開発者をサポートします。IHyperlinkQueries クラスは、プレゼンテーション内のハイパーリンクを管理するのに役立ちます。
string FilePath = @"..\..\..\..\Sample Files\";
string FileName = FilePath + "Get all the External Eyperlinks.pptx";
// PPTXファイルを表すプレゼンテーションオブジェクトをインスタンス化します。
Presentation pres = new Presentation(FileName);
// プレゼンテーションからハイパーリンクを取得します。
IList<IHyperlinkContainer> links = pres.HyperlinkQueries.GetAnyHyperlinks();
foreach (IHyperlinkContainer link in links)
Console.WriteLine(link.HyperlinkClick.ExternalUrl);
動作コード例のダウンロード
サンプルコード
- [CodePlex](https://asposeopenxml.codeplex.com/SourceControl/latest#Aspose.Slides VS OpenXML/Get all the External Hyperlinks/)
- GitHub