C# 提取PPT文本和图片的实现方案

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

原文档:

1. 提取文本

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

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

步骤二:创建一个StringBuilder对象

StringBuilder sb = newStringBuilder();

步骤三:遍历幻灯片及幻灯片中的图形,提取文本内容

 foreach (ISlide slide in presentation.Slides)
            {
                foreach (IShape shape in slide.Shapes)
                {
                    if (shape isIAutoShape)
                    {
                        foreach (TextParagraph tp in (shape asIAutoShape).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 = newPresentation();
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.提取特定幻灯片中的图片

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

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

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

int i = 0;
foreach (IShape s inPPT.Slides[2].Shapes)
{
    if (s isSlidePicture)
    {
        SlidePicture ps = s asSlidePicture;
       ps.PictureFill.Picture.EmbedImage.Image.Save(string.Format("{0}.png", i));
        i++;
    }
    if (s isPictureShape)
    {
        PictureShape ps = s asPictureShape;
        ps.EmbedImage.Image.Save(string.Format("{0}.png", i));
        i++;
    }
}

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

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

(如需转载,请注明出处和作者)

时间: 2024-10-11 15:33:45

C# 提取PPT文本和图片的实现方案的相关文章

C# 提取PDF文本和图片

任务要求: 提取PDF文档中的文本 提取PDF文档中的图片 所需工具: Free Spire.PDF for .NET 4.3 (免费版) 实现代码: [示例 1 ]提取文本 using Spire.Pdf; using System; using System.IO; using System.Text; namespace ExtractText { class Program { static void Main(string[] args) { //加载文档 PdfDocument do

C#如何提取PPT中 SmartArt文本和批注中的文本

提取文本的情况在工作和学习中常会遇到,在前面的文章中,已经讲述了如何提取PPT中文本框里的文本,在本篇文章中,将介绍如何使用C#代码语言提取PPT文档中SmartArt和批注中的文本.同样的,程序里面需要使用到 Free Spire.PPT for .NET,在编写代码前,需先安装,并添引用dll文件到项目程序中,同时也要添加到命名空间. 1.提取SmartArt中的文本 原始文件: (在幻灯片2中插入了SmartArt图形,包含文本内容) using Spire.Presentation.Di

Java 提取Word中的文本和图片

本文将介绍通过Java来提取或读取Word文档中文本和图片的方法.这里提取文本和图片包括同时提取文档正文当中以及页眉.页脚中的的文本和图片. 使用工具:Free Spire.Doc for Java (免费版) Jar文件导入方法(参考): 方法1:下载jar文件包.下载后解压文件,并将lib文件夹下的Spire.Doc.jar文件导入到java程序.导入效果参考如下: 方法2:可通过maven导入.参考导入方法. 测试文档如下: Java代码示例(供参考) [示例1]提取Word中的文本 im

PDFBox的使用——分页提取PDF文本

需求:用java分页提取PDF文本. PDFBox是一个很好的可以满足上述需求的开源工具. 1.PDF文档结构 要解析PDF文本,我们首先要了解PDF文件的结构. 关于PDF文档,最重要的几点: 一,PDF文档内容比较复杂,比如有纯文本(可以提取出其中的文字,可以用PDF软件中的“复制”功能).图片(无法使用PDF软件中的“复制”功能).表单.视频.音频等,总之形式比较复杂: 二,PDF文件采用二进制流与纯文字混合的编码模式,并且没有采用 Unicode 等标准字符编码方式,其字符编码采用 Ad

迅捷pdf转换器——如何提取pdf中的图片

对于PDF文件的转换,我们最常遇到的情况是把PDF文件转换成Word格式的情况,不过在一些特殊的情况下,我们也会遇到一些特殊的转换工作,比如将pdf转换成jpg格式的文件就比较少见.PDF转换成图片,转换出来的就是一张张的图片,像是扫描过的PDF文件,文字和图片合并成的文件,单独将图片提取出来,只需要里面的图片要怎么办,最简单的方法:利用迅捷PDF转换器的“PDF图片获取”功能直接提取图片. 迅捷PDF转换器正式为上班一族打造的一款专业软件.软件采用OCR技术,它就像是一台袖珍型扫描仪,帮助用户

Java 读取PDF中的文本和图片

本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法.分别调用方法extractText()和extractImages()来读取. 使用工具:Free Spire.PDF for Java(免费版)Jar文件获取导入:方法1:通过官网下载jar文件包.下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar文件导入java程序.导入后如下图: 方法2: 可通过maven仓库安装导入,可参考导入方法. Java代码示例[示例1]读取PDF中的文本 import com.spir

左图有文本,图片自由缩放

核心点有两个,大盒子设置box-sizing:border-box,这样的话设置padding值后就不会有横向滚动条 然后就是图片左浮动,文本有浮动,这样就能让文本和图片之间有间隔. 由于采用百分比布局,图片就能在窗口变化的时候,自由缩放了. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</

kindeditor文本编辑器删除文本中图片路径出错

string[] imgname; MODEL.Strategy modelMenu = bllMenu.GetModel(int.Parse(strId)); imgname = getPicUrl.getPicUrls(modelMenu.SContent).Split('|'); foreach (string c in imgname) { ImageHelper.DeleteImg(HttpContext.Current.Server.MapPath(c)); } kindeditor

【将txt文本转图片】

[测试类] 1 public static void main(String[] args) 2 { 3 try 4 { 5 File textFile = new File("F:\\java56班\\eclipse-SDK-4.2-win32\\1.txt"); 6 File imageFile = new File("F:\\java56班\\eclipse-SDK-4.2-win32\\1.png"); 7 TextToImage texttoimage =