首页 > 解决方案 > 如何通过 OpenXML 将图像设置为矩形?

问题描述

我有一个Rectange模板文件PPTX和设置name ="Img"

我想将图像设置为Rectange

这是我的代码,但我不能调用shape.Append(part);

// Open the source document as read/write. 
using (var presentationDocument = PresentationDocument.Open(strFile, true))
{
    
    var presentationPart = presentationDocument.PresentationPart;
    var templatePart = GetSlidePartsInOrder( presentationPart).Last();
    for(int i = 0; i < 2; i++)
    {
        int ifile = i + 1;
        string path = @"F:\AUTOM\t"+ ifile+".png";
        var newSlidePart = CloneSlide(templatePart);
        // Get the shape tree that contains the shape to change.
        P.ShapeTree tree = newSlidePart.Slide.CommonSlideData.ShapeTree;
        var shapes = from shape in newSlidePart.Slide.Descendants < P.Shape>()                                 
                     select shape;
        foreach (var shape in shapes)
        {
            if(shape.OuterXml.Contains("name=\"Img\""))
            {
                var part = newSlidePart.AddImagePart(ImageExtension(path));                         
                using (var stream = File.OpenRead(path))
                {
                    part.FeedData(stream);
                }                            
                **//shape.Append(part);**
               
            }
            else
            {
                // Specify the text of the title shape.
                foreach (Paragraph paragraph in shape.Descendants().OfType<Paragraph>())
                {
                    foreach (Run run in paragraph.Elements<Run>())
                    {                                
                        run.Text = new Text("Your new text");
                        
                    }
                }
            }
        }

        AppendSlide(presentationPart, newSlidePart);
    }
   

    // Save the modified presentation.
    presentationPart.Presentation.Save();

    DeleteTemplateSlide(presentationDocument);
}

如何通过 OpenXML 将图像设置为矩形?

标签: openxmlopenxml-sdk

解决方案


推荐阅读