【问题标题】:Removing the image placeholder (picture) in Word using OpenXML使用 OpenXML 在 Word 中删除图像占位符(图片)
【发布时间】:2020-12-15 16:47:16
【问题描述】:

我有一个正在使用 OpenXML 处理的 Word 文件。我在那里只有一个图片内容控件,并且我已成功地将图片(“内容”)添加到该图片内容控件中。

现在一切都很好,但我不知道如何删除占位符图片。也就是说,我在插入的图片中间有那个“带有监视器、太阳和山的小图标”。你知道,插入图片内容控件时看到的图标。我可以通过 VBA 计算内容控件的数量,它说只有一个,所以没有两个控件相互重叠。

如果我删除目标内容控件(使用 remove-method),整个内容控件(包括正确设置的图片)都会被删除。

是否有类似“placeholderimage.Hide”的方法或我应该使用的东西?

我把内容设置成这样的图片:

        DocumentFormat.OpenXml.Drawing.Blip blip = targetpicturecontrol.Descendants<DocumentFormat.OpenXml.Drawing.Blip>().FirstOrDefault(); 
        blip.Embed = mainPart.GetIdOfPart(imagePart);

【问题讨论】:

  • 我发现这可以通过内容控件属性手动完成,显示为:无而不是边界框。我仍然需要弄清楚如何在代码中设置该部分,尽管我知道它是 XML 中的

标签: image ms-word openxml


【解决方案1】:

此代码隐藏(或删除,无论如何)占位符

private static void RemovePlaceHolder(SdtProperties targetproperties)
        {
            Appearance appearance = new Appearance();
            appearance.Val = new EnumValue<SdtAppearance>();
            SdtAppearance sdtAppearance = new SdtAppearance();
            sdtAppearance = SdtAppearance.Hidden;
            appearance.Val.Value = sdtAppearance;
            targetproperties.AppendChild(appearance);
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-15
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多