指定形状的类型或形状范围。
名称 | 值 | 说明 |
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++; }