C#保存PPT Shape(MSOPICTURE)作为image w/ office.interop



我有一个带有多个图像的PPT幻灯片甲板。我正在迭代每张幻灯片和每个形状。我想将每种类型的msopicture形状保存为图像:

            foreach (PPT.Slide slide in pptDoc.Slides)
            {
                foreach (PPT.Shape shape in slide.Shapes)
                {
                    if (shape.Type == Microsoft.Office.Core.MsoShapeType.msoPicture)
                    {
                        Image img;
                        //???? Save shape as image
                        img.Save(filename);
                    }
                }
            }

您可以使用Shape.Export()方法从单个形状创建图像。

例如:

foreach (PPT.Slide slide in pptDoc.Slides)
{
    foreach (PPT.Shape shape in slide.Shapes)
    {
        if (shape.Type == Microsoft.Office.Core.MsoShapeType.msoPicture)
        {
            shape.Export(filename, Microsoft.Office.Interop.PowerPoint.PpShapeFormat.ppShapeFormatPNG);
        }
    }
}

最新更新