将图像和形状从word文件传输到pictureBox控件

时间:2013-06-14 06:02:02

标签: c# ms-word

我可以从Word文件中读取图像和形状,然后用C#实际显示在图片框控件中吗?

实际上我有一个Word文件,其中我有多个答案的问题,一些问题也包含图像和形状。

所以我想要做的是阅读C#中的文档并显示要在pictureBoxcontrol中显示的图像和形状。那么它是否可能在C#中,如果它是什么解决方案。我在Google上搜索了很多但没有找到。

3 个答案:

答案 0 :(得分:2)

我暂时没有完成Word自动化,但我从未使用过此功能,但您可以尝试使用Range.Copy - 您必须找到各种Shape对象和图片,然后复制它们他们尝试将它们粘贴到你的图片框中。

另请查看此questionthis one

答案 1 :(得分:1)

您可以在word文档或c#代码中创建宏。 我不知道如何从你的c#代码“模拟”一个vba宏,但我知道你会在stackoverflow上找到很多解决方案。你需要的代码是类似的。

activeDocument.Shapes(x).select 

activeDocument.InlineShapes(x).select 

你必须检查你的图像是否为inlineshape或shape。然后用

复制它
Selection.copy

这是vba代码。 图像现在在剪贴板中,因此您需要按照c#代码检索它。

if (Clipboard.ContainsImage())
{
   Image img = Clipboard.GetImage();
}

答案 2 :(得分:1)

您可以像上面的代码一样遍历Word文档。 它基本上做的是,它需要每张图片,图表,表格。

foreach (NetOffice.WordApi.InlineShape s in docWord.InlineShapes)
{
      #region Set Shapes
      if (s.Type==NetOffice.WordApi.Enums.WdInlineShapeType.wdInlineShapePicture &&  s.AlternativeText.Contains("|"))
      {
             Clipboard.SetImage(s.Select());
      }
}

现在将其设置为PictureBoxControl:

pictureBox1.Image = new Bitmap(@"\Program Files\PictureBoxControl\tinyemulator_content.jpg");

来自剪贴板:

pictureBox1.Image = new Bitmap(Clipboard.GetImage());