【发布时间】:2017-03-24 15:59:53
【问题描述】:
我正在制作 C# 应用程序,它应该从 doc 文件中提取图像并在 Pictureboxes 中显示所有提取的图像。我有以下代码:
错误的解决方案
using Microsoft.Office.Interop.Word;
public IDataObject ImageData { get; private set; }
public List<Image> GetImages(Document doc)
{
List<Image> image = new List<Image>();
foreach (InlineShape shape in doc.InlineShapes)
{
shape.Range.Select();
if (shape.Type == WdInlineShapeType.wdInlineShapePicture)
{
doc.ActiveWindow.Selection.Range.CopyAsPicture();
ImageData = Clipboard.GetDataObject();
Image img = (Image)ImageData.GetData(DataFormats.Bitmap);
image.Add(img);
/*
bmp.Save("C:\\Users\\Akshay\\Pictures\\bitmaps\\test" + i.ToString() + ".bmp");
*/
}
}
return image;
}
问题是,如果我在我的 doc 文件的第 2 页上插入图像,那么 img 会变为 null。如果我在第 1 页中插入所有图像,那么它工作得非常好。 我很想知道上述代码中的错误是什么。 任何帮助将不胜感激。
【问题讨论】:
标签: c# image winforms office-interop