我可以从 Word 文件中读取图像和形状,并务实地在 C# 中的图片框控件中显示它们吗?
实际上,我有一个 Word 文件,其中有多个答案的问题,有些问题还包含图像和形状。
所以我想做的是用 C# 读取文档并显示要在pictureBoxcontrol
. 在 C# 中是否有可能,如果是,那么解决方案是什么。我在谷歌上搜索了很多,但没有找到。
我有一段时间没有做过 Word 自动化,也从未使用过此功能,但您可以尝试使用Range.Copy
- 您必须找到各种Shape
对象和图像,复制它们,然后他们尝试将它们粘贴到您的图片框中。
您可以在 Word 文档或 C# 代码中创建宏。我不知道如何从你的 c# 代码中“模拟”一个 vba 宏,但我知道你会在 stackoverflow 上找到很多解决方案。您需要的代码类似于。
activeDocument.Shapes(x).select
或者
activeDocument.InlineShapes(x).select
您必须检查您的图像是内联形状还是形状。然后复制它
Selection.copy
那是vba代码。该图像现在在您的剪贴板中,因此您需要按照 c# 代码来检索它。
if (Clipboard.ContainsImage())
{
Image img = Clipboard.GetImage();
}
您可以像上面的代码一样循环浏览您的 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());