0

我可以从 Word 文件中读取图像和形状,并务实地在 C# 中的图片框控件中显示它们吗?

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

所以我想做的是用 C# 读取文档并显示要在pictureBoxcontrol. 在 C# 中是否有可能,如果是,那么解决方案是什么。我在谷歌上搜索了很多,但没有找到。

4

3 回答 3

2

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

还要看看这个问题这个问题。

于 2013-06-14T06:10:59.563 回答
1

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

activeDocument.Shapes(x).select 

或者

activeDocument.InlineShapes(x).select 

您必须检查您的图像是内联形状还是形状。然后复制它

Selection.copy

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

if (Clipboard.ContainsImage())
{
   Image img = Clipboard.GetImage();
}
于 2013-06-14T06:48:03.777 回答
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());
于 2013-06-14T08:59:38.650 回答