C#如何提取PPT里文本和图片

1008人浏览 / 0人评论 / 添加收藏

C# 如何提取PPT文本和图片

PPT是一种常用的演示工具,在各行各业都扮演着不可或缺的作用在处理办公文档的过程中会遇到需要提取文档文本或者图片的情况如果需要操作的文档包含的文字和图片不是很多的时候,我们尚可手动一点点把内容复制粘贴整理出来,但对于较大的文档,文字和图片内容都比较多的情况,又该如何准确无误处理本篇文章提供了实现提取PPT文本和图片的方法。

使用工具 Spire.Presentation

:安装类库后不要忘了添加引用dll文件,同时添加相应的命名空间。

具体操作可参考下面的代码。

原文档:

1.提取文本 

全部代码如下:

C#

using System;

using System.Text;

using Spire.Presentation;

using System.IO;

using System.Diagnostics;

 

namespace ExtractText_PPT

{

    class Program

    {

        static void Main(string[] args)

        {

            //创建一个Presentation实例并加载文档

            Presentation presentation = new Presentation(@"C:\Users\Administrator\Desktop\sample.pptx"FileFormat.Pptx2010);

 

            //创建一个StringBuilder

            StringBuilder sb = new StringBuilder();

            //遍历文档,提取文本内容

            foreach (ISlide slide in presentation.Slides)

            {

                foreach (IShape shape in slide.Shapes)

                {

                    if (shape is IAutoShape)

                    {

                        foreach (TextParagraph tp in (shape as IAutoShape).TextFrame.Paragraphs)

                        {

                            sb.Append(tp.Text + Environment.NewLine);

                        }

                    }

 

                }

            }

            //保存文档

            File.WriteAllText("target.txt", sb.ToString());

            Process.Start("target.txt");

        }

    }

}

调试运行该项目程序,生成文档(可在该项目文件夹下bin>Debug查看)

效果示例:

2.提取图片

2.1提取文档中所有图片

C#

using Spire.Presentation;

using System.Drawing;

 

namespace ExtractImage_PPT

{

    class Program

    {

        static void Main(string[] args)

        {

            //初始化一个Presentation类实例,并加载文档

            Presentation ppt = new Presentation();

            ppt.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pptx");

 

            //遍历文档

            for (int i = 0; i < ppt.Images.Count; i++)

            {

                Image image = ppt.Images[i].Image;

                //提取图片

                image.Save(string.Format(@"..\..\Images{0}.png", i));

            }

        }

    }

}

效果示例:

2.2提取特定幻灯片中的图片

C#

using System.Drawing;

using Spire.Presentation;

 

namespace ExtractImageFromSpecialSlides_PPT

{

    class Program

    {

        static void Main(string[] args)

        {

            //创建一个Presentation类实例,并加载文档

            Presentation PPT = new Presentation();

            PPT.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pptx");

 

            //遍历文档,获取第四张幻灯片,提取图片

            int i = 0;

            foreach (IShape s in PPT.Slides[3].Shapes)

            {

                if (s is SlidePicture)

                {

                    SlidePicture ps = s as SlidePicture;

                    ps.PictureFill.Picture.EmbedImage.Image.Save(string.Format("{0}.png", i));

                    i++;

                }

                if (s is PictureShape)

                {

                    PictureShape ps = s as PictureShape;

                    ps.EmbedImage.Image.Save(string.Format("{0}.png", i));

                    i++;

                }

            }

 

        }

    }

}

 

效果示例:

以上全部内容为本文提供的关于提取PPT文档中文本和图片内容的方法讲述希望对你有所帮助。

本文

全部评论