MsoShapeType /InlineShape枚举
指定形状的类型或形状范围。
名称 |
值 |
说明 |
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枚举的更多相关文章
- 提取WORD中的所有InlineShape图片并保存成文件
InlineShape表示的类型其实不只是图片,还包括OLE, ACTIVE X等. 下面是MSDN中的定义:Represents an object in the text layer of a d ...
- Swift enum(枚举)使用范例
//: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...
- 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)
建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...
- Objective-C枚举的几种定义方式与使用
假设我们需要表示网络连接状态,可以用下列枚举表示: enum CSConnectionState { CSConnectionStateDisconnected, CSConnectionStateC ...
- Help Hanzo (素数筛+区间枚举)
Help Hanzo 题意:求a~b间素数个数(1 ≤ a ≤ b < 231, b - a ≤ 100000). (全题在文末) 题解: a~b枚举必定TLE,普通打表MLE,真是头疼 ...
- 枚举:enum
枚举 所谓枚举就是指定好取值范围,所有内容只能从指定范围取得. 例如,想定义一个color类,他只能有RED,GREEN,BLUE三种植. 使用简单类完成颜色固定取值问题. 1,就是说,一个类只能完成 ...
- .NET 基础一步步一幕幕[方法、结构、枚举]
方法.结构.枚举 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值,写void 方法名:P ...
- Asp.Net 将枚举类型(enum)绑定到ListControl(DropDownList)控件
在开发过程中一些状态的表示使用到枚举类型,那么如何将枚举类型直接绑定到ListControl(DropDownList)是本次的主题,废话不多说了,直接代码: 首先看工具类代码: /// <su ...
- 用枚举enum替代int常量
枚举的好处: 1. 类型安全性 2.使用方便性 public class EnumDemo { enum Color{ RED(3),BLUE(5),BLACK(8),YELLOW(13),GREEN ...
随机推荐
- SQL技巧之分类汇总
数据表结构username type numaaaa 玉米 1212aaaa 玉米 212bbb 小麦 2323bbb .... 只有两种产品 玉米和小麦,玉米价格1.5,小麦价格 ...
- C#关于编码、解码相关问题
编码.解码技术是我们在程序中开发中经常使用到的,对一些敏感信息的存储,比如密码之类的,我们一般是不会直接以明文直接存储到数据库的,而是会通过各种算法,可以是现成的MD5(一种散列算法).或者是Hash ...
- 动态获取爱奇艺上传视频mp4格式url地址
有时候,在工作中有些客户需要用到视频,我们大家都知道视频是非常的耗费流量的,因此,如果因为项目要求客户单独买台视频服务器是非常划不来的.那么将视频上传到优酷,爱奇艺等视频网站来托管那是一件很好的解决方 ...
- AngularJS(1)随笔
ng-app 指令告诉 AngularJS,<div> 元素是 AngularJS 应用程序 的"所有者". ng-model 指令把输入域的值绑定到应用程序变量 na ...
- VC窗口最大化方法
一.主框架窗口最大化 一般方法 1.修改App::InitInstance中的 m_pMainWnd->ShowWindow(m_nCmdShow);m_pMainWnd->UpdateW ...
- Java学习-集合(转)
在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处充斥着集合类的身影!java中集合大家族的成员实在是太丰富了,有常用的ArrayList. ...
- mysql 自定义排序顺序
mysql 自定义排序顺序 实例如:在sql语句中加入ORDER BY FIELD(status,3,4,0,2,1)语句可定义排序顺序 SELECT tsdvoucher0_.VOUCHER_ID ...
- python机器学习库
http://scikit-learn.org/stable/install.html
- Oracle常用查看表结构命令
获取表: select table_name from user_tables; //当前用户的表 select table_name from all_tables; //所有用户的表 select ...
- POj 2186 Popular Cows[连通分量]
题目大意:给出N头牛,有M种关系u, v.代表u牛崇拜v牛.要求找出有多少头牛被所有牛崇拜着题目链接:http://poj.org/problem?id=2186解题思路:1>求出强连通分量,标 ...