Download Files:ImageOperationsInWord.zip

简介

在这篇文章中我们可以学到在C#程序中使用一个Word文档对图像的各种操作。图像会比阅读文字更有吸引力,而且图像是与内容紧密相关的。有时图像可以将内容描述的更为清晰,就像使用图表显示某一周期内的数据变化。

Spire.Doc for .NET是一个的基于.NET 的专业Word组件,它不仅可以在脱离微软office自动化的情况下快速地生成、打开、修改、保存Word文档 ,还支持用户使用C#将图像插入Word并根据页面设置它的大小。这篇就是介绍给大家一个简单的方法来插入图像----使用Spire.Doc for .NET。

以下就是我们要学习的操作步骤:

1、在Word文档中插入一张图片。

2、从Word文档中提取一张图片。

3、在Word文档中将图片替换成文字。

在进行这些操作之前我们要先创建Word文档。在这里我使用Spire.Doc for .NET来创建文档并完成后续的操作。

创建一个控制台程序来做演示。根据以下步骤:

1、打开Visual Studio

2、"File" -> "New" -> "Project..."

3、选择C#语言然后选择控制台程序并命名为“ImageOperationInWord”

4、单击OK。

在Word中插入图片

首先,创建新的Word文档并为之添加章节和段。然后,使用p.AppendPicture(Image)方法将图像插入到新段中。设置图像的高度和宽度属性来规定图片大小。使用以下代码来用C#把图片插入到Word中。

Namespace 使用:

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

在Word文档中创建并插入图像:

 private static void InsertImage()  

{  
 //Create Document  
  Document document = new Document();  
  Section s = document.AddSection();  
  Paragraph p = s.AddParagraph();  
 
  //Insert Image and Set Its Size  
  DocPicture Pic = p.AppendPicture(Image.FromFile(@"D:\C# Corner.png"));  
  Pic.Width = ;  
  Pic.Height = ;     //Save and Launch  
  document.SaveToFile("Image.docx", FileFormat.Docx);  
  System.Diagnostics.Process.Start("Image.docx");  
 }    

结果

从Word文档中提取图片

在这里我们学习下如何在C#中从已存在的Word文档中提取图片并将图片保存到指定的路径。图片是一种属于段落项目的文档对象。Spire.Doc for .NET 提供了一个DocumentObject类来存储文档中的图像,并且还提供DocPicture类来获得和设置文档中的图像。在这里我使用了ExtractImages.docx并在其中保存了两幅图。在输出图像文件夹中我们可以看到红色框中的来自Word文档的两幅图像。

提取Word图片代码:

 private static void ExtractImages()  
 {  
     //Load document  
     Document document = new Document(@"D:\ExtractImages.docx");  
     int index = ;  
   
     //Get Each Section of Document  
     foreach (Section section in document.Sections)  
     {  
         //Get Each Paragraph of Section  
         foreach (Paragraph paragraph in section.Paragraphs)  
         {  
            //Get Each Document Object of Paragraph Items  
             foreach (DocumentObject docObject in paragraph.ChildObjects)  
             {  
                 //If Type of Document Object is Picture, Extract.  
                 if (docObject.DocumentObjectType == DocumentObjectType.Picture)  
                 {  
                     DocPicture pic = docObject as DocPicture;  
                     String imgName = String.Format(@"D:\Extracted_Image-{}.png", index);  
  
                     //Save Image  
                     pic.Image.Save(imgName, System.Drawing.Imaging.ImageFormat.Png);  
                     index++;  
                 }  
             }  
         }  
     }  
 }  

   结果

在Word文档中将图片替换为文字

我们来看下 Spire.Doc是如何帮助开发者们解决他们关于office技术的程序问题的。观察以上问题的描述,我们最终是想使用相应的“C# Corner Demo Example - {image index}” 来将Word文件中的每幅图都替换掉。我们还是用下面的演示代码来解决吧。

Word文档中的图片替换为文字的代码:

 
 private static void ReplaceImageWithText()  
 {  
     Document doc = new Document(@"D:\ExtractImages.docx");  
     int j = ;  
     foreach (Section sec in doc.Sections)  
    {  
         foreach (Paragraph para in sec.Paragraphs)  
         {  
             List<DocumentObject> images = new List<DocumentObject>();  
             foreach (DocumentObject docObj in para.ChildObjects)  
   
            {  
                 if (docObj.DocumentObjectType == DocumentObjectType.Picture)  
                 {  
                     images.Add(docObj);  
                }  
             }  
             foreach (DocumentObject pic in images)  
             {  
                 int index = para.ChildObjects.IndexOf(pic);  
                 TextRange range = new TextRange(doc);  
                 range.Text = string.Format("C# Corner Demo Example {}", j);  
                para.ChildObjects.Insert(index, range);  
                 para.ChildObjects.Remove(pic);  
                 j++;  
     }
     }  
     doc.SaveToFile(@"D:\result.docx", FileFormat.Docx);  
     System.Diagnostics.Process.Start(@"D:\result.docx");  
 }   

在替换前

将图片替换为文字后

注意:更详细的代码请下载最上面的附加的压缩包。

总结

希望大家看完后都理解了如何以编程方式在Word文档中对图像进行操作。如果大家有其他的关于图像操作的好建议,欢迎讨论哦。

关于Spire.Doc的更多内容点击这里

C# Word文档中插入、提取图片,文字替换图片的更多相关文章

  1. C#/VB.NET 在Word文档中插入分页符

    分页符是分页的一种符号,上一页结束以及下一页开始的位置.通查用于在指定位置强制分页.本文将分为两部分来介绍如何在Word文档中插入分页符.并附上C#/VB.NET以供参考,详情请阅读以下内容. 在特定 ...

  2. python3在word文档中查找多行文字是否存在

    工作中碰到这样一个情况:有多个关键词存在文本文档txt中,想查找下在某个较大的word文档中,这些关键词是否都含有,没有关键词的显示出来. 因为关键词比较多,并且这个工作还是经常会有的,这个情况我试着 ...

  3. WORD文档中插入页码的问题

    原文链接:http://www.360doc.com/content/11/0216/15/849254_93539436.shtml 一.页码从第二页开始1.选择“插入-页码”,打开“页码”对话框. ...

  4. 在word文档中如何插入Mathtype公式

    将mathtype公式插入到word文档中,是mathtype公式编辑器最基本的操作.当在Mathtype数学公式编辑器中编辑好公式之后,点击文件->更新XXX文档(XXX为当前编辑的word文 ...

  5. 利用Python-docx 读写 Word 文档中的正文、表格、段落、字体等

    前言: 前两篇博客介绍了 Python 的 docx 模块对 Word 文档的写操作,这篇博客将介绍如何用 docx 模块读取已有 Word 文档中的信息. 本篇博客主要内容有: 1.获取文档的章节信 ...

  6. Java 在 Word 文档中使用新文本替换指定文本

    创作一份文案,经常会高频率地使用某些词汇,如地名.人名.人物职位等,若表述有误,就需要整体撤换.文本将介绍如何使用Spire.Doc for Java,在Java程序中对Word文档中的指定文本进行替 ...

  7. C# 提取Word文档中的图片

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

  8. 在LaTeX文档中插入图片的几种常用的方法

    LaTeX中一般只直接支持插入eps(Encapsulated PostScript)格式的图形文件, 因此在图片插入latex文档之前应先设法得到图片的eps格式的文件. 在LaTeX文档中插入图片 ...

  9. aspose.words复制插入同一word文档中的某个页面

    选择word模板 Document doc = new Document(Server.MapPath("~\\templet") + "\\" + name. ...

随机推荐

  1. CRT破解版

    1.先去https://www.ttrar.com/html/VanDyke-SecureCRT.html上面下载一个CRT软件 2.下载一个注册机 http://www.ddooo.com/soft ...

  2. Shell语言

    1.shell脚本规范以.sh结尾 2.运行 3.赋予权限,查询shell的执行过程 输出时间的 输出日历 输出一年的日历 修改语言 计算机 read –t 3 –p “1111111111”   # ...

  3. Hadoop 集群安装(主节点安装)

    1.下载安装包及测试文档 切换目录到/tmp view plain copy cd /tmp 下载Hadoop安装包 view plain copy wget http://192.168.1.100 ...

  4. [安卓] 20、基于蓝牙BLE的广播包高频快速搜索

    前言: 之前介绍过很多蓝牙beacon.搜索.连接.通讯的文章.不过最近我发现:之前写的蓝牙广播包搜索的工程,搜索频率太慢,而且不能一直保持搜索状态.因此,这里探讨下高频蓝牙广播包扫描 -- 蓝牙BL ...

  5. 微信小程序setData()方法的详解以及对数组/json操作

    此篇文章是本人对setData方法的一些理解,是查阅文档和查找一些其他资料综述的,有所不足希望指正! 直接进入正题! 一.setData()方法: 1.参数接受一个对象,以key,value的形式表示 ...

  6. Javascript高级编程学习笔记(85)—— Canvas(2)2D上下文

    2D上下文 使用2D上下文提供的方法可以绘制简单的2D图形,如矩形,弧线和路径; 2D上下文的坐标开始域<canvas>元素的左上角,原点坐标为(0,0) 后续所有操作的计算都基于原点,x ...

  7. Python开发虚拟环境使用virtualenvwrapper的搭建及pycharm链接步骤

    virtualenv 是一个创建隔绝的Python环境的工具.virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包.创建的环境是独立的,互不干扰,无需sudo ...

  8. [Swift]LeetCode70. 爬楼梯 | Climbing Stairs

    You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...

  9. [Swift]LeetCode295. 数据流的中位数 | Find Median from Data Stream

    Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...

  10. [Swift]LeetCode732. 我的日程安排表 III | My Calendar III

    Implement a MyCalendarThree class to store your events. A new event can always be added. Your class ...