You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Open XML库提取PPTX中字体颜色并关联对应文本?

提取PPTX中字体颜色及对应文本的Open XML解决方案

你当前的代码只能获取到RGB颜色值,但无法关联到对应的文本。核心思路是从RgbColorModelHex的父节点往上追溯,找到它所属的Run(文本运行块),再从Run中提取文本内容。

修改后的完整代码

' 遍历幻灯片中的所有RgbColorModelHex元素
Dim RGBColors_ As IEnumerable(Of A.RgbColorModelHex) = slide.Slide.Descendants(Of A.RgbColorModelHex)
For Each clr In RGBColors_
    ' 获取颜色的十六进制值
    Dim colorHex As String = clr.Val.Value

    ' 从RgbColorModelHex往上找父节点RunProperties
    Dim runProps As A.RunProperties = clr.Parent(Of A.RunProperties)()
    If runProps IsNot Nothing Then
        ' 找到RunProperties所属的Run对象
        Dim run As A.Run = runProps.Parent(Of A.Run)()
        If run IsNot Nothing Then
            ' 提取Run中的所有文本内容并拼接
            Dim textContent As String = String.Join("", run.Descendants(Of A.Text).Select(Function(t) t.Text))
            
            ' 输出颜色和对应文本(可根据需求替换为存储逻辑)
            Console.WriteLine($"颜色: #{colorHex}, 文本: {textContent}")
        End If
    End If
Next

关键逻辑说明

  • 追溯父节点:RgbColorModelHex的直接父节点通常是Color,而Color的父节点是RunProperties(文本运行属性),RunProperties属于Run(承载文本的最小单元)。
  • 提取文本:每个Run下会有一个或多个Text元素,把这些元素的内容拼接起来就是该颜色对应的完整文本。
  • 空值判断:加入IsNot Nothing的判断,避免因PPTX结构异常导致的空引用错误。

内容的提问来源于stack exchange,提问作者AirdropBuzz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 08:02:03