使用open xml从word文档中提取Visio图表?

时间:2016-11-23 11:57:08

标签: c# parsing openxml openxml-sdk

我正在尝试解析word文档,它有visio图和图像。我无法使用C#Open XML提取图表并以visio格式保存(.vsd,.vdx,.vsdx,.vsdm)。

1 个答案:

答案 0 :(得分:0)

我找到并回答了我自己的问题。下面是代码,如果它的任何一个..

下面的代码将帮助您获取word文档中的所有图像。

foreach (ImagePart imagePart in doc.MainDocumentPart.ImageParts)
{
    var uri = imagePart.Uri;
    var IdR = doc.MainDocumentPart.GetIdOfPart(imagePart);
    string FileExtension = uri.OriginalString.Split('.').Last();
    var filename = uri.ToString().Split('/').Last();
    stream = doc.Package.GetPart(uri).GetStream();
    Bitmap b = new Bitmap(stream);
    string FilePath = @"C:\test"." + FileExtension;
    b.Save(FilePath);
}

下面将帮助您获取Word文档中的嵌入对象,如:Visio,MP3视频。

var IdR = doc.MainDocumentPart.GetIdOfPart(embeddedobjectpart);
string FileExtension = embeddedobjectpart.Uri.OriginalString.Split('.').Last();
FileExtension = "vsd";
stream = doc.Package.GetPart(embeddedobjectpart.Uri).GetStream();
long length = stream.Length;
byte[] byteStream = new byte[length];
stream.Read(byteStream, 0, (int)length);
string FilePath =@"C:\test"." + "." + FileExtension;
fstream = new FileStream(FilePath, FileMode.OpenOrCreate)
fstream.Write(byteStream, 0, (int)length);
fstream.Close();