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

名称

说明

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. 数独的C++解法

    grid.h #ifndef _GRID_H_ #define _GRID_H_ #include <set> #include <cstddef> class Grid { ...

  2. 【转】SQL删除重复数据方法

    例如: id           name         value 1               a                 pp 2               a           ...

  3. CentOS7 firewall的使用

    # 查看区域 firewall-cmd --get-zones # 查看默认区域 firewall-cmd --get-default-zone # 给区域添加永久性服务 firewall-cmd - ...

  4. BrowserSync:跨浏览器实时同步预览

    BrowserSync:跨浏览器实时同步预览 2016.09.11 官方网站:https://www.browsersync.io/ 项目仓库:https://github.com/Browsersy ...

  5. 使用jQuery.FileUpload插件和服Backload组件自定义上传文件夹

    在零配置情况下,文件的上传文件夹是根目录下的Files文件夹,如何自定义文件的上传文件夹呢? □ 在web.config中配置 1: <configuration> 2: <conf ...

  6. PHP页面中文乱码分析

    php出现出现乱码的原因:页面文件的编码方式(.html,.php等).html.head中指定浏览器的编码方式.MySql数据库传输的编码方式.Apache字符集. PHP页面中文乱码出现的原因有几 ...

  7. CentOS添加RPMforge软件源

    1.查看CentOS版本 cat /etc/redhat-release 2.查看系统位数 uname -i 3.下载rpm包 wget "rpm地址" CentOS 6: i68 ...

  8. Tips of Python!

    Tips of Python!(Python 2.7) (不定期更新中-) 1. raw_input() 和 input(): raw_input() 将输入原封不动的保存为一个字符串 输入 1 + ...

  9. CODEVS 1069关押罪犯

    题目描述 Description S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极 不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨 ...

  10. linux下监控jvm 使用的方法

    之前一直用jconsole监控jvm,图形界面简单易用,最近因为需要在纯linux下进行操作,所以总结了一下 linux下监控jvm的例子,这次主要用到了jstat工具, 各个参数意义: jstat ...