c# - 打开 xml 从 .pptx 文件获取图像

标签 c# openxml

我在 .Net 4.0 中有一个 Windows 窗体应用程序。我在 C# 工作。 我想从 .pptx 文件中的给定幻灯片中抓取图像。

此代码获取幻灯片上的每张图片:

 public static SlidePart GetSlidePart(PresentationDocument presentationDocument, int slideIndex)
    {
        if (presentationDocument == null)
        {
            throw new ArgumentNullException("presentationDocument", "GetSlidePart Method: parameter presentationDocument is null");
        }

        int slidesCount = CountSlides(presentationDocument);

        if (slideIndex < 0 || slideIndex >= slidesCount)
        {
            throw new ArgumentOutOfRangeException("slideIndex", "GetSlidePart Method: parameter slideIndex is out of range");
        }

        PresentationPart presentationPart = presentationDocument.PresentationPart;

        if (presentationPart != null && presentationPart.Presentation != null)
        {
            Presentation presentation = presentationPart.Presentation;

            if (presentation.SlideIdList != null)
            {
                var slideIds = presentation.SlideIdList.ChildElements;

                if (slideIndex < slideIds.Count)
                {
                    string slidePartRelationshipId = (slideIds[slideIndex] as SlideId).RelationshipId;

                    SlidePart slidePart = (SlidePart)presentationPart.GetPartById(slidePartRelationshipId);

                    return slidePart;
                }
            }
        }

        return null;// No slide found
    }

但是,如何将 slidePart 转换为将显示在我的 Windows 窗体中的图像(在 imageList 或类似的东西中)?

最佳答案

找到一个方法:

SlidePart slidePart = (SlidePart)presentationPart.GetPartById(slidePartRelationshipId);

                    Slide slide = slidePart.Slide;
                    ImagePart imagePart = (ImagePart)slide.SlidePart.GetPartById("rId3");
                    System.Drawing.Image img = System.Drawing.Image.FromStream(imagePart.GetStream());

关于c# - 打开 xml 从 .pptx 文件获取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8026705/

相关文章:

c# - 封闭的 XML。将 DataTable 添加到现有 Excel 工作表

c# - 使用 OpenXML 更改段落中的颜色文本

c# - 抑制 xsi :nil but still show Empty Element when Serializing in . 网络

c# - 创建一个 MVVM 友好的对话策略

c# - 编辑表单中的 Asp.net mvc 计算字段

c# - 在自托管 ASP.NET Core 微服务中启动多个后台线程

c# - 替换段落 Open XML 中的文本

sql-server - 从 TSQL OPENXML 中的 xml 文档中选择节点文本值

c# - 在 openxml 中的书签后插入文本

c# - 使用 Microsoft Bot SDK 让机器人转发事件