如何使用C#从word文档中提取图片

作者:mrr 时间:2022-04-17 06:58:09 

图片和文字是word文档中两种最常见的对象,在微软word中,如果我们想要提取出一个文档内的图片,只需要右击图片选择另存为然后命名保存就可以了,今天这篇文章主要是实现如何使用C#从word文档中提取图片。

这里我准备了一个含有文字和图片的word文档:

如何使用C#从word文档中提取图片 

详细步骤与代码:

步骤1 : 添加引用。

新建一个Visual C#控制台项目,添加引用并使用如下命名空间:


using System;
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

步骤2 : 新建一个word文档对象并加载需要提取图片的word文档。

Document document = new Document("法国景点.docx ");

步骤3 : 遍历文档中的所有section,找到图片,将它们提取出来并保存。


int index = 0;
//获取文档的section
foreach (Section section in document.Sections)
{
//获取section中的段落
foreach (Paragraph paragraph in section.Paragraphs)
{
//获取段落中的文档对象
foreach (DocumentObject docObject in paragraph.ChildObjects)
{
//对对象的type进行判断,如果是图片,就提取出来
if (docObject.DocumentObjectType == DocumentObjectType.Picture)
{
DocPicture picture = docObject as DocPicture;
//给图片命名
String imageName = String.Format(@"images\Image-{0}.png", index);
//保存图片
picture.Image.Save(imageName, System.Drawing.Imaging.ImageFormat.Png);
index++;
}
}
}
}

提取出来的图片:

如何使用C#从word文档中提取图片 

全部代码:


using System;
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;
namespace Extract_image_from_word
{
class Program
{
static void Main(string[] args)
{
Document document = new Document("法国景点.docx");
int index = 0;
foreach (Section section in document.Sections)
{
foreach (Paragraph paragraph in section.Paragraphs)
{
foreach (DocumentObject docObject in paragraph.ChildObjects)
{
if (docObject.DocumentObjectType == DocumentObjectType.Picture)
{
DocPicture picture = docObject as DocPicture;
String imageName = String.Format(@"images\Image-{0}.png", index);
picture.Image.Save(imageName, System.Drawing.Imaging.ImageFormat.Png);
index++;
}
}
}
}
}
}
}

总结:

这里我使用的是E-iceblue公司的免费 word 组件,它除了可以从文档中提取图片,还可以提取文本,这里我只写了提取图片的,提取文本的也差不多,如有需要可以留言。

标签:word,文档,提取,图片
0
投稿

猜你喜欢

  • springboot整合spring-retry的实现示例

    2022-01-13 01:25:53
  • java反编译工具Bytecode-Viewer分享

    2021-05-29 04:39:07
  • 通过实例了解java spring使用构造器注入的原因

    2022-11-25 03:48:24
  • springboot项目以jar包运行的操作方法

    2023-11-10 07:47:43
  • java获取网络图片上传到OSS的方法

    2023-10-14 23:01:07
  • Java之OutputStreamWriter流案例详解

    2023-11-11 13:03:55
  • java中String的一些方法深入解析

    2023-11-25 21:48:56
  • C#带你玩扫雷(附源码)

    2021-11-04 05:54:23
  • java判断用户输入的是否至少含有N位小数的实例

    2021-06-01 02:56:42
  • Spring实战之属性占位符配置器用法示例

    2021-05-30 22:58:04
  • 关于Java中HashCode方法的深入理解

    2022-05-28 03:29:33
  • SpringBoot集成Jpa对数据进行排序、分页、条件查询和过滤操作

    2022-03-06 19:17:50
  • Dubbo retries 超时重试机制的问题原因分析及解决方案

    2023-11-29 08:22:38
  • java关键字final使用方法详解

    2023-11-28 22:38:04
  • java生成图片验证码示例程序

    2023-09-13 10:17:57
  • java文件下载代码实例(单文件下载和多文件打包下载)

    2023-02-16 00:38:37
  • 一文给你通俗易懂的讲解Java异常

    2021-12-20 14:40:56
  • 每日六道java新手入门面试题,通往自由的道路--多线程

    2022-12-13 16:04:07
  • Java创建对象(显式创建和隐含创建)

    2022-10-26 13:58:33
  • Java代码精简之道(推荐)

    2023-07-28 02:00:05
  • asp之家 软件编程 m.aspxhome.com