C# 提取PPT文本和图片的实现方案
2024-08-26 00:20:21
在图文混排的文档中,我们可以根据需要将文档中的文字信息或者图片提取出来,通过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++;
}
}
提取的第三张幻灯片中的图片已保存至指定位置
上文演示了如何提取文本和图片,步骤比较简单实用,希望对你有所帮助,感谢阅读!
如需转载请注明出处。
最新文章
- 利用ShareSDK进行第三方登录和分享
- 快速上手制作Icon Font
- find命令查找文件,并排除相应路径
- Deep Learning 5_深度学习UFLDL教程:PCA and Whitening_Exercise(斯坦福大学深度学习教程)
- bootstrap源码里的function加上了+号
- (剑指Offer)面试题29:数组中出现次数超过一半的数字
- UVALive Proving Equivalences (强连通分量,常规)
- poj1828
- java面板设计
- wpf ProgressBar使用
- iOS查错机制
- 基于IPV6数据包的分析(GNS3)
- Qt编写自定义控件9-导航按钮控件
- tensorFlow(六)应用-基于CNN破解验证码
- php手动搭建wamp环境(一)--之 Windows系统下PHP环境搭建
- 激活win10
- paramiko 实现ssh登录和sftp登录
- java keytool生成ssl加密密钥
- V模型与测试级别
- DRF的版本、认证、权限
热门文章
- [LeetCode] Maximize Distance to Closest Person 离最近的人的最大距离
- BUAA-OO-第一单元总结
- PTA第三次作业
- QEMU KVM Libvirt手册(10): KVM的各种限制
- [AI开发]Python+Tensorflow打造自己的计算机视觉API服务
- emWin洗衣机简易操作界面,含uCOS-III和FreeRTOS两个版本
- 【安富莱原创开源应用第3期】花式玩转网络摄像头之VNC远程桌面版本,稳定运行2年不死机
- Java面试大纲-java面试该做哪些准备,java开发达到这样的水平可以涨工资
- Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
- 【从零开始搭建自己的.NET Core Api框架】(六)泛型仓储的作用