【问题标题】:Editing Word images within Autoshapes using C#使用 C# 在 Autoshapes 中编辑 Word 图像
【发布时间】:2015-02-25 08:34:48
【问题描述】:

好的,这让我有一段时间感到困惑 - 我们的一位客户希望将他们的所有图像替换为一个 word 文档列表。自己找图片没问题,示例代码如下:

    Microsoft.Office.Interop.Word.Application wordDoc;
    wordDoc = new Microsoft.Office.Interop.Word.Application();
    object docName = @"c:\temp\Client.doc";


    object objBool = false;
    object objBoolTrue = true;
    object objNull = System.Reflection.Missing.Value;

    Document openDoc = null;

    openDoc = wordDoc.Documents.Open(ref docName, ref objBool, ref objBool, ref objBool, ref objNull,ref objNull, ref objNull, ref objNull, ref objNull, ref objNull, ref objNull, ref objNull, ref objNull, ref objNull, ref objNull, ref objNull);

    List<Microsoft.Office.Interop.Word.Range> ranges = new List<Microsoft.Office.Interop.Word.Range>();
    foreach (Microsoft.Office.Interop.Word.Shape s in openDoc.Shapes)
    {
      // do stuff here with comparing and replacing images
    }

但是我注意到它无法识别某些图像(无论它们在哪里,这都不是页眉或页脚问题)。在进一步的研究中,图像本身似乎不是一个普通的嵌入图像,而是一个 Autoshape。

因此,我的代码还必须能够检查文档中的自选图形并在需要时更改它们。然而,对于我的一生,我无法确定如何检查自选图形中的图像。

查找自选图形本身相当简单,如下所示:

ranges = new List<Microsoft.Office.Interop.Word.Range>();
foreach (Microsoft.Office.Interop.Word.Shape s in openDoc.Shapes)
{
...
}

但是,一旦我确定了自选图形,我就无法确定如何找到有关所附图像的信息。

有人知道我会怎么做吗?

【问题讨论】:

    标签: c# image ms-word


    【解决方案1】:

    您要么有一个分组图像,在这种情况下,您应该递归地爬过GroupItems,或者有一个文本框内的内联图像,在这种情况下,您应该查看TextFrame.TextRange.ShapeRange

    【讨论】:

    • 非常感谢您的回答。我还没有做任何事情,但你已经为我指明了正确的方向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多