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文档中文本和图片内容的方法讲述,希望对你有所帮助。
本文完。
全部评论