【发布时间】:2013-06-14 06:02:01
【问题描述】:
我可以从 Word 文件中读取图像和形状,并在 C# 中的图片框控件中实用地显示它们吗?
实际上,我有一个 Word 文件,其中有多个答案的问题,有些问题还包含图像和形状。
所以我想做的是用 C# 读取文档并显示要在pictureBoxcontrol 中显示的图像和形状。在 C# 中是否有可能,如果是,那么解决方案是什么。我在 Google 上搜索了很多,但没有找到。
【问题讨论】:
我可以从 Word 文件中读取图像和形状,并在 C# 中的图片框控件中实用地显示它们吗?
实际上,我有一个 Word 文件,其中有多个答案的问题,有些问题还包含图像和形状。
所以我想做的是用 C# 读取文档并显示要在pictureBoxcontrol 中显示的图像和形状。在 C# 中是否有可能,如果是,那么解决方案是什么。我在 Google 上搜索了很多,但没有找到。
【问题讨论】:
我已经有一段时间没有进行 Word 自动化了,也从未使用过此功能,但您可以尝试使用 Range.Copy - 您必须找到各种 Shape 对象和图像,复制它们并尝试粘贴将它们放入您的图片框中。
【讨论】:
您可以像上面的代码一样循环浏览您的 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());
【讨论】:
Clipboard.SetImage(s.Select()); 上给出错误“参数类型无效不能分配给参数类型'System.Drawing.Image'”所以我是如何解决这个错误的。请帮助我,因为我已经接受了您的回答,但现在面临问题\
您可以在 Word 文档或 C# 代码中创建宏。 我不知道如何从你的 c# 代码中“模拟”一个 vba 宏,但我知道你会在 stackoverflow 上找到很多解决方案。您需要的代码类似于。
activeDocument.Shapes(x).select
或
activeDocument.InlineShapes(x).select
您必须检查您的图像是内联形状还是形状。然后用
复制它Selection.copy
这是 vba 代码。 该图像现在在您的剪贴板中,因此您需要按照 c# 代码来检索它。
if (Clipboard.ContainsImage())
{
Image img = Clipboard.GetImage();
}
【讨论】: