提取WORD中的全部InlineShape圖片並保存成文件

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

相關文章
相關標籤/搜索