在Word文档中查找图像的安全方法

问题描述 投票:0回答:1

我创建了一个简单的 C# 方法,目的是查明 Word 文档是否包含图像:

public bool ContainsImage(string fileName)
{
   using (var wordDocument = WordprocessingDocument.Open(fileName, false))
   {
      return wordDocument.MainDocumentPart.Document.Descendants<Graphic>().Any();
   }
}

这适用于我的示例文件,但我很困惑它是否适用于每个 docx 文档。 我研究了处理 Word 文档中图像的解决方案,发现了很多不同的方法来检测图像:

  • Decendants<Graphic>()
    - 按描述工作
  • Decendants<Inline>()
    - 也有效
  • Decendants<Drawing>()
    - 不起作用
  • Decendants<Picture>()
    - 不起作用

正确的做法是什么?我不在乎图像位于文档中的位置,只要它可见即可。无论它是在背景中、在前面还是在文本之间等等,都没有关系。 这些对象(图形、内联、绘图、图片)之间有什么区别?

c# ms-word openxml
1个回答
0
投票

我认为最好的选择是

Decendants<Inline>()
,因为它会根据您的要求获取所有图像。

您也可以使用

Decendants<Graphic>()
获取所有图像,但它还会获取图形、图表等元素,这些不是您要查找的图像。

我不知道

Decendants<Picture>()
,但是
Decendants<Drawing>()
不是你需要的,因为图像不是图画。

© www.soinside.com 2019 - 2024. All rights reserved.