Aspose.Word从word文档里提取图片
Aspose.Word是一款功能强大的word控件,可以对word文件进行创建、编辑、读取、修改、转换,合并,插入等操作,并且不需要安装任何第三方插件,下面我们简单介绍,Aspose.Word如果从word文件中提取图片并保存。
具体查看下面的代码:
C#
public void ExtractImagesToFiles()
{
Document doc = new Document(MyDir + "Image.SampleImages.doc");
NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true);
int imageIndex = 0;
foreach (Shape shape in shapes)
{
if (shape.HasImage)
{
string imageFileName = string.Format(
"Image.ExportImages.{0} Out{1}", imageIndex, FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType));
shape.ImageData.Save(MyDir + imageFileName);
imageIndex++;
}
}
// Newer Microsoft Word documents (such as DOCX) may contain a different type of image container called DrawingML.
// Repeat the process to extract these if they are present in the loaded document.
NodeCollection dmlShapes = doc.GetChildNodes(NodeType.DrawingML, true);
foreach (DrawingML dml in dmlShapes)
{
if (dml.HasImage)
{
string imageFileName = string.Format(
"Image.ExportImages.{0} Out{1}", imageIndex, FileFormatUtil.ImageTypeToExtension(dml.ImageData.ImageType));
dml.ImageData.Save(MyDir + imageFileName);
imageIndex++;
}
}
}
Visual Basic
Public Sub ExtractImagesToFiles()
Dim doc As New Document(MyDir & "Image.SampleImages.doc")
Dim shapes As NodeCollection = doc.GetChildNodes(NodeType.Shape, True)
Dim imageIndex As Integer = 0
For Each shape As Shape In shapes
If shape.HasImage Then
Dim imageFileName As String = String.Format("Image.ExportImages.{0} Out{1}", imageIndex, FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType))
shape.ImageData.Save(MyDir & imageFileName)
imageIndex += 1
End If
Next shape
' Newer Microsoft Word documents (such as DOCX) may contain a different type of image container called DrawingML.
' Repeat the process to extract these if they are present in the loaded document.
Dim dmlShapes As NodeCollection = doc.GetChildNodes(NodeType.DrawingML, True)
For Each dml As DrawingML In dmlShapes
If dml.HasImage Then
Dim imageFileName As String = String.Format("Image.ExportImages.{0} Out{1}", imageIndex, FileFormatUtil.ImageTypeToExtension(dml.ImageData.ImageType))
dml.ImageData.Save(MyDir & imageFileName)
imageIndex += 1
End If
Next dml
End Sub