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的步骤:orm
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++;
}图片