Search code examples
c#asp.net-mvc-4aspose-slides

How to get text from slide in C# using Aspose


i am getting all shapes in slides of ppt file now i want to get text from those shapes how can i do this

here is my method where i am getting shapes of all slides in ppt file

public void Main(string[] args)
    {
        // The path to the documents directory.
        string dataDir = Path.GetFullPath(@"C:\Users\Vipin\Desktop\");
        //Load the desired the presentation
        Presentation pres = new Presentation(dataDir + "Android.ppt");
        using (Presentation prestg = new Presentation(dataDir + "Android.ppt"))
        {


            //Accessing a slide using its slide index
            int slideCount = prestg.Slides.Count();
            for (int i = 0; i <= slideCount - 1; i++)
            {
                ISlide slide = pres.Slides[i];
                foreach (IShape shap in slide.Shapes)
                {
                    int slideCountNumber = i + 1;

                    float shapeHeight = shap.Frame.Height;
                    float shapeWidth = shap.Frame.Width;
                    Debug.Write("slide Number: " + slideCountNumber + " shape width = " + shapeWidth + " shapeHeight = " + shapeHeight);

                }
            }

        }
    }

now ho can i get the text from it


Solution

  • aspose will give u truncated text if u don't have the license of it. so it will be better for you if you will use Microsoft.Office.Interop.PowerPoint

    use as below

    public void ReadSlide(){
    
            string filePath= @"C:\Users\UserName\Slide.pptx";
    
            Microsoft.Office.Interop.PowerPoint.Application PowerPoint_App = new Microsoft.Office.Interop.PowerPoint.Application();
            Microsoft.Office.Interop.PowerPoint.Presentations multi_presentations = PowerPoint_App.Presentations;
            Microsoft.Office.Interop.PowerPoint.Presentation presentation = multi_presentations.Open(filePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
    
            string presentation_textforParent = "";
            foreach (var item in presentation.Slides[1].Shapes)
            {
                var shape = (Microsoft.Office.Interop.PowerPoint.Shape)item;
                if (shape.HasTextFrame == MsoTriState.msoTrue)
                {
                    if (shape.TextFrame.HasText == MsoTriState.msoTrue)
                    {
                        var textRange = shape.TextFrame.TextRange;
                        var text = textRange.Text;
    
                        presentation_textforParent += text + " ";
                    }
                }
            }
    

    }