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++;
}圖片