在图文混排的文档中,我们可以根据需要将文档中的文字信息或者图片提取出来,通过C#代码可以提取Word和PDF文件中的文本和图片,那么同样的,我们也可以提取PPT幻灯片当中的文本和图片。本篇文档将讲述如何使用C#来实现提取PPT文本和图片的操作。首先也是需要安装组件Spire.Presentation,然后添加引用dll文件到项目中。下面是主要的代码步骤。

原文档:

1. 提取文本

步骤一:创建一个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);
}
}
}
}

步骤四:写入Txt文档

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

2. 提取图片

 这里提取图片有两种情况,一种是提取整个文档中的所有图片,另外一种是只提取文档中某一特定幻灯片中的图片。

     2.1提取所有图片

步骤一:初始化一个Presentation类实例,并加载文档

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

步骤二:遍历文档中图片,提取图片并保存

 for (int i = ; i < ppt.Images.Count; i++)
{
Image image = ppt.Images[i].Image;
image.Save(string.Format(@"..\..\Images{0}.png", i));
}

提取的图片已保存到项目文件夹下

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

步骤一:创建一个Presentation类实例,并加载文档

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

步骤二:获取第三张幻灯片,提取并保存图片

int i = ;
foreach (IShape s in PPT.Slides[].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++;
}
}

提取的第三张幻灯片中的图片已保存至指定位置

上文演示了如何提取文本和图片,步骤比较简单实用,希望对你有所帮助,感谢阅读!

如需转载请注明出处。

最新文章

  1. 利用ShareSDK进行第三方登录和分享
  2. 快速上手制作Icon Font
  3. find命令查找文件,并排除相应路径
  4. Deep Learning 5_深度学习UFLDL教程:PCA and Whitening_Exercise(斯坦福大学深度学习教程)
  5. bootstrap源码里的function加上了+号
  6. (剑指Offer)面试题29:数组中出现次数超过一半的数字
  7. UVALive Proving Equivalences (强连通分量,常规)
  8. poj1828
  9. java面板设计
  10. wpf ProgressBar使用
  11. iOS查错机制
  12. 基于IPV6数据包的分析(GNS3)
  13. Qt编写自定义控件9-导航按钮控件
  14. tensorFlow(六)应用-基于CNN破解验证码
  15. php手动搭建wamp环境(一)--之 Windows系统下PHP环境搭建
  16. 激活win10
  17. paramiko 实现ssh登录和sftp登录
  18. java keytool生成ssl加密密钥
  19. V模型与测试级别
  20. DRF的版本、认证、权限

热门文章

  1. [LeetCode] Maximize Distance to Closest Person 离最近的人的最大距离
  2. BUAA-OO-第一单元总结
  3. PTA第三次作业
  4. QEMU KVM Libvirt手册(10): KVM的各种限制
  5. [AI开发]Python+Tensorflow打造自己的计算机视觉API服务
  6. emWin洗衣机简易操作界面,含uCOS-III和FreeRTOS两个版本
  7. 【安富莱原创开源应用第3期】花式玩转网络摄像头之VNC远程桌面版本,稳定运行2年不死机
  8. Java面试大纲-java面试该做哪些准备,java开发达到这样的水平可以涨工资
  9. Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
  10. 【从零开始搭建自己的.NET Core Api框架】(六)泛型仓储的作用