指定形状的类型或形状范围。

名称

说明

msoAutoShape

1

自选图形。

msoCallout

2

标注。

msoCanvas

20

画布。

msoChart

3

图。

msoComment

4

批注。

msoDiagram

21

图表。

msoEmbeddedOLEObject

7

嵌入的 OLE 对象。

msoFormControl

8

窗体控件。

msoFreeform

5

任意多边形。

msoGroup

6

组合。

msoIgxGraphic

24

SmartArt 图形

msoInk

22

墨迹。

msoInkComment

23

墨迹批注。

msoLine

9

线条。

msoLinkedOLEObject

10

链接 OLE 对象。

msoLinkedPicture

11

链接图片。

msoMedia

16

媒体。

msoOLEControlObject

12

OLE 控件对象。

msoPicture

13

图片。

msoPlaceholder

14

占位符。

msoScriptAnchor

18

脚本定位标记。

msoShapeTypeMixed

-2

混和形状类型。

msoTable

19

表。

msoTextBox

17

文本框。

msoTextEffect

15

文本效果。

InlineShape表示的类型其实不只是图片,还包括OLE, ACTIVE X等。 
下面是MSDN中的定义:Represents an object in the text layer of a document(表示文档中文本层的一个对象)。 
可以通过InlineShape的Type属性获得这个对象的具体类型。Type是一个WdInlineShapeType的枚举类型。WdInlineShapeType可以说下面的常数之一: 
wdInlineShapeEmbeddedOLEObject  嵌入式OLE对象 
wdInlineShapeHorizontalLine              水平线 
wdInlineShapeLinkedOLEObject         链接式OLE对象 
wdInlineShapeLinkedPicture               链接式图片 
wdInlineShapeLinkedPictureHorizontalLine(…) 
wdInlineShapeOLEControlObject        OLE控制对象 
wdInlineShapeOWSAnchor                OWS锚点 
wdInlineShapePicture                         嵌入式图片 
wdInlineShapePictureBullet                 图片占位符 
wdInlineShapePictureHorizontalLine    (…) 
wdInlineShapeScriptAnchor          (…) 
设置图片的“版式”为嵌入式那么这个图片在WORD文档中就用InlineShape来表示,而Shape表示的图片格式是其他的版式,处于Drawing层。不过其他的特性基本上是一致的。 
  
下面是要用到的一些变量:(初始化部分没有写) 
ApplicationClass wordApp; 
Document wordDoc; 
object missing; 
List<InlineShape> allShape;    //用InlineShape类型保存图片 
List<Image> allImage;          //用Image类型保存图片 
  
先来看看提取InlineShape的步骤: 
1.返回当前文档中所有InlineShapes。如果是嵌入式图片就加入集合中。 
InlineShapes insh = le="COLOR: black">wordDoc.InlineShapes; 
for (int i = 0; i < insh.Count; i++) 

if (insh[i].Type == WdInlineShapeType.wdInlineShapePicture) 
allShape.Add(insh[i]); 

2.先选中一个图片,再通过Selection发送到剪贴板,再从剪贴板得到一个图片对象。 
Microsoft.Office.Interop.Word.Selection sel; 
System.Drawing.Image returnImage = null; 
foreach (InlineShape ins in allShape) 

ins.Select(); 
sel = wordApp.Selection; 
if (sel.Type == WdSelectionType.wdSelectionInlineShape) 

sel.CopyAsPicture(); 
if (Clipboard.ContainsImage()) 

returnImage = Clipboard.GetImage(); 
allImage.Add(returnImage); 



  
下面是保存图片到文件中,Image类型的Save方法可以完成这个工作。文件类型可以说JPG,GIF,BMP等。 
int i = 0; 
foreach (Image im in allImage) 

im.Save("c://图片" + i.ToString() + ".jpg",ImageFormat.Jpeg); 
i++; 
}

MsoShapeType /InlineShape枚举的更多相关文章

  1. 提取WORD中的所有InlineShape图片并保存成文件

    InlineShape表示的类型其实不只是图片,还包括OLE, ACTIVE X等. 下面是MSDN中的定义:Represents an object in the text layer of a d ...

  2. Swift enum(枚举)使用范例

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  3. 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)

    建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...

  4. Objective-C枚举的几种定义方式与使用

    假设我们需要表示网络连接状态,可以用下列枚举表示: enum CSConnectionState { CSConnectionStateDisconnected, CSConnectionStateC ...

  5. Help Hanzo (素数筛+区间枚举)

    Help Hanzo 题意:求a~b间素数个数(1 ≤ a ≤ b < 231, b - a ≤ 100000).     (全题在文末) 题解: a~b枚举必定TLE,普通打表MLE,真是头疼 ...

  6. 枚举:enum

    枚举 所谓枚举就是指定好取值范围,所有内容只能从指定范围取得. 例如,想定义一个color类,他只能有RED,GREEN,BLUE三种植. 使用简单类完成颜色固定取值问题. 1,就是说,一个类只能完成 ...

  7. .NET 基础一步步一幕幕[方法、结构、枚举]

    方法.结构.枚举 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值,写void 方法名:P ...

  8. Asp.Net 将枚举类型(enum)绑定到ListControl(DropDownList)控件

    在开发过程中一些状态的表示使用到枚举类型,那么如何将枚举类型直接绑定到ListControl(DropDownList)是本次的主题,废话不多说了,直接代码: 首先看工具类代码: /// <su ...

  9. 用枚举enum替代int常量

    枚举的好处: 1. 类型安全性 2.使用方便性 public class EnumDemo { enum Color{ RED(3),BLUE(5),BLACK(8),YELLOW(13),GREEN ...

随机推荐

  1. Stable Matching 稳定匹配 婚姻算法 shapley 算法

    作者:jostree  转载请注明出处 http://www.cnblogs.com/jostree/p/4051286.html 稳定匹配问题:有N男N女,每个人对于异性都一个排名,先需要得到一种稳 ...

  2. Photoshop快捷键

    ctrl+del :铺后景色alt+del:铺前景色ctrl+d:取消选框ctrl+t:拉伸(挡住文字)TAB:显示(隐藏)工具栏ctrl+alt+i:反选ctrl+r:辅佐线ctrl+j:复制并添加 ...

  3. win7 蛋疼的时间格式转化

    win7系统 获得系统时间为 2015年1月1日 星期5 10:10 数据库中时间格式 是不认识的 转化为 DateTime.Now.ToString("yyyy-MM-dd HH:mm:s ...

  4. sublime 设置文件默认打开方式

    win7,sublime text 3 无法关联文件 删除 HKEY_CURRENT_USER\Software\Classes\Applications下的Sublime_Text.exe项.你就发 ...

  5. 重学C语言 -- printf,scanf

     printf();    用来显示格式串的内容          注意: 参数不可以换行,否则会出一个警告.       格式串中占位符比表达式数量多     会显示一个无意义值 格式串中占位符比表 ...

  6. 关于SQL优化的一个小试例子

    原SQL: select ta.serialno,       ta.accepttime,       ta.subsnumber,       ta.subsname,       ta.cont ...

  7. JS-------DOM0级事件处理和DOM2级事件处理-------简单记法

    0级DOM 分为2个:一是在标签内写onclick事件  二是在JS写onlicke=function(){}函数 1) <input id="myButton" type= ...

  8. poj 1113 Mall

    Mall 水题:注意题目上面有一个至少离城堡的距离为L,其实思考一下就知道是指离凸包(凸多边形)的距离为L,这时很容易知道外围的圆的圆心角叠加之后就是一个整圆:和poj2187一样使用graham形成 ...

  9. Java 内存区域

    Java虚拟机锁管理的内存包括以下几个运行时数据区域: 1.程序计数器: 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器.在虚拟机的概念模型里,字节码解释器工作时 ...

  10. 一步步学习ASP.NET MVC3 (1)——基础知识

    请注明转载地址:http://www.cnblogs.com/arhat 首先在这里我想声明一下,这个ASP.NET MVC3系列是我在授课过程中的一些经验,有什么不对的地方,请大家指出,我们共同的学 ...