На самом деле в файле pptx есть два имени файла для картинки / изображения:
Если вам нужно имя файла изображения, как оно встроено в файл pptx
Вы можете использовать следующую функцию:
public static string GetEmbeddedFileName(ImagePart part)
{
return part.Uri.ToString();
}
Если вам нужно оригинальное имя файловой системы вашего изображения, вы можете использовать следующую функцию:
public static string GetOriginalFileSystemName(DocumentFormat.OpenXml.Presentation.Picture pic)
{
return pic.NonVisualPictureProperties.NonVisualDrawingProperties.Description;
}
НАЧАТЬ РЕДАКТИРОВАТЬ:
Вот полный пример кода:
using (var doc = PresentationDocument.Open(fileName, false))
{
var presentation = doc.PresentationPart.Presentation;
foreach (SlideId slide_id in presentation.SlideIdList)
{
SlidePart slide_part = doc.PresentationPart.GetPartById(slide_id.RelationshipId) as SlidePart;
if (slide_part == null || slide_part.Slide == null)
continue;
Slide slide = slide_part.Slide;
foreach (var pic in slide.Descendants<DocumentFormat.OpenXml.Presentation.Picture>())
{
string id = pic.NonVisualPictureProperties.NonVisualDrawingProperties.Id;
string desc = pic.NonVisualPictureProperties.NonVisualDrawingProperties.Description;
Console.Out.WriteLine(desc);
}
}
}
КОНЕЦ РЕДАКТИРОВАНИЯ
Надеюсь, это поможет.