首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何通过openxml获取形状中文本的字体大小?

通过openxml获取形状中文本的字体大小,可以按照以下步骤进行操作:

  1. 首先,使用Open XML SDK库来处理Open XML文件格式。该库提供了用于读取和修改Open XML文档的API。
  2. 打开要处理的Open XML文档,可以是Word文档(.docx)或PowerPoint演示文稿(.pptx)。
  3. 使用Open XML SDK的API,遍历文档中的所有形状(Shape)对象。
  4. 对于每个形状对象,检查其是否包含文本(Text)内容。如果包含文本内容,则获取该文本内容的字体大小。
  5. 获取字体大小的方法是通过访问形状对象的文本框(TextBox)属性,然后获取文本框的文本段(TextParagraph)集合。对于每个文本段,可以获取其字体大小。
  6. 最后,将获取到的字体大小进行处理,可以输出到控制台或保存到文件中。

以下是一个示例代码片段,演示了如何使用Open XML SDK获取形状中文本的字体大小:

代码语言:csharp
复制
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Presentation;
using DocumentFormat.OpenXml.Wordprocessing;

public class OpenXmlHelper
{
    public static void GetShapeTextFontSize(string filePath)
    {
        using (PresentationDocument presentationDoc = PresentationDocument.Open(filePath, false))
        {
            PresentationPart presentationPart = presentationDoc.PresentationPart;
            foreach (SlidePart slidePart in presentationPart.SlideParts)
            {
                foreach (Shape shape in slidePart.Slide.Descendants<Shape>())
                {
                    if (shape.TextBody != null)
                    {
                        foreach (TextParagraph paragraph in shape.TextBody.Descendants<TextParagraph>())
                        {
                            foreach (TextRun textRun in paragraph.Descendants<TextRun>())
                            {
                                if (textRun.RunProperties != null && textRun.RunProperties.FontSize != null)
                                {
                                    double fontSize = Convert.ToDouble(textRun.RunProperties.FontSize.Val) / 100;
                                    Console.WriteLine("Shape: {0}, Font Size: {1}", shape.InnerText, fontSize);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

请注意,上述示例代码是使用C#语言和Open XML SDK库编写的,用于处理PowerPoint演示文稿(.pptx)文件。如果要处理Word文档(.docx)文件,可以使用类似的代码,只需将PresentationDocument替换为WordprocessingDocument即可。

此外,根据具体需求,你可以根据Open XML SDK的API文档进一步扩展代码,以满足其他需求,如获取字体颜色、字体样式等信息。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云对象存储(COS):提供高可靠、低成本的云端存储服务,适用于存储和处理任意类型的文件。
  • 腾讯云函数计算(SCF):无服务器计算服务,可帮助开发者更轻松地构建和运行云端应用程序。
  • 腾讯云人工智能(AI):提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等,可用于开发智能化的应用程序。
  • 腾讯云区块链(BCS):提供高性能、可扩展的区块链服务,可用于构建和部署区块链应用程序。
  • 腾讯云视频处理(VOD):提供全面的视频处理服务,包括转码、截图、水印等功能,可用于处理和管理视频内容。
  • 腾讯云物联网(IoT):提供全面的物联网解决方案,包括设备接入、数据管理、应用开发等,可用于构建和管理物联网应用程序。

请注意,以上腾讯云产品仅作为示例,你可以根据具体需求选择适合的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

dotnet OpenXML 如何判断是形状还是文本

OpenXML 格式里面,其实不存在文本这个元素,所有都是形状。但是在 PPT 界面看到文本框是什么呢?其实他是特别的形状。...而几乎所有的形状都可以输入文本,因此区分形状文本意义不会特别大,只是在做解析时候才会碰到 在 OpenXML PML 也就是 PPT 使用格式里面,在 dotnet OpenXML 解析 PPT...页面元素文档格式 告诉大家都是形状 那么文本框是什么形状?...其实文本框是特别的形状 在 PPT 里面拖入文本框,然后使用 OpenXML 解压缩文档为文件夹工具 解压缩,此时可以看到在页面里元素大概内容如下 ...-- 忽略 --> 也就是说文本框也是 p:sp 也就是 Shape 元素,但是在 p:nvSpPr->p:cNvSpPr->txBox 有属性表示是文本框 在 dotnet 里面通过

73210

dotnet OpenXML SDK 形状 rect Shape Text Rectangle 属性对文本坐标影响

在 Office 里面,对于形状,可以通过 a:rect 指定文本坐标 在 PPT 里面,有文档里面存在自定义形状大概如下 <!...如下图,在形状里面的文本会先通过形状 a:rect 拿到文本框相对于形状矩形范围,然后文本又相对于文本框有一定边距 ?...在 OpenXML 里面,根据 ECMA 376 20.1.9.22 文档内容,形状 a:rect 决定文本外框矩形范围。...决定文本文本框里面的边距 因此文本形状里面会受到 a:rect 和 a:bodyPr 影响 在 OpenXML SDK 辅助读取形状 a:rect 可以使用如下代码 using...(var presentationDocument = DocumentFormat.OpenXml.Packaging.PresentationDocument.Open("自定义形状.pptx",

59520
  • dotnet OpenXML 解析 PPT 页面元素文档格式

    本文告诉大家在 OpenXML 里面的 PPT 页面 Slide 元素文档格式 是否小伙伴还记得如何使用 OpenXML SDK 获取一份 PPTX 文件某一个页面?...虽然 ShapeTree 命名是形状,但实际上所有元素都可以当成形状使用 例如在 ShapeTree 里面放一个文本文本本身就是 DocumentFormat.OpenXml.Presentation.Shape...形状形状,而文本框也是形状 获取页面里面的形状方法如下 foreach (var openXmlElement in shapeTree) { if (openXmlElement is DocumentFormat.OpenXml.Presentation.Shape...,这部分就需要每个元素自己去解析了 在 PPT 里面所有文本都是形状,只是文本框是有趣形状,而其他形状大部分都是可以添加文本。...当然强大 Word 可不止文本这一项 现在市面大部分 PPT 解析工具和软件都只是实现了基础元素基础属性,例如 通用颜色 通用动画基础动画 占位符 形状 形状线条 形状样式 文本

    1.1K20

    dotnet OpenXML SDK 文本占位符解析

    在使用 OpenXML SDK 解析 PPT 文档文本占位符时候,需要对 PPT 格式有一定了解,尽管整个 OpenXML SDK 包括文档等都很详细。...但是有一些细节文档上虽然有写,但是没有强调一下,就被我忽略了 什么是文本占位符,其实这是在 PPT 添加概念,在 PPT 里面用户可以编辑模版文件,在这里定义某个占位符文本样式和坐标等 如何制作占位符请看...- 知乎 想要解析占位符还需要先学会如何使用占位符才好理解占位符是如何OpenXML 里面文本形状,也就是 DocumentFormat.OpenXml.Presentation.Shape...元素,可以使用下面代码获取页面的形状 using (var presentationDocument = DocumentFormat.OpenXml.Packaging.PresentationDocument.Open...也就是元素最终样式是先尝试获取元素本文样式,如果元素本文获取不到样式,那么尝试运行占位符元素,如果可以找到占位符元素,那么尝试获取占位符元素对应样式 那么如何通过 placeholderShape

    1K30

    dotnet OpenXML WPF 解析实现 PPT 文本描边效果

    本文是使用 WPF 做个 PowerPoint 系列博客,本文来告诉大家如何解析 PPT 里面的文本描边效果,在 WPF 应用绘制出来,实现像素级相同 背景知识 在开始之前,期望你了解了 PPT 解析入门知识...如对 PPT 解析了解很少,请参阅 C# dotnet 使用 OpenXml 解析 PPT 文件 在 PPT 里面可以给文本某些文字设置描边效果,描边效果从 OpenXML 层上是不属于特效,只是属于边框属性...ShapeTypeValues.Rectangle); Debug.Assert(shapeProperties.GetFirstChild() is not null); 以上只是告诉大家可以如何获取形状...,需要在自己业务代码里面,进行判断 获取文本文本,可以使用如下代码 var textBody = shape.TextBody!...; 通过 win10 uwp 颜色转换 方法可以将 colorText 转换为 SolidColorBrush 对象 再获取文本内容,大概就完成了 // 默认字体前景色是黑色

    97820

    pandas | 如何在DataFrame通过索引高效获取数据?

    今天是pandas数据处理专题第三篇文章,我们来聊聊DataFrame索引。 上篇文章当中我们简单介绍了一下DataFrame这个数据结构一些常见用法,从整体上大概了解了一下这个数据结构。...行索引其实对应于Series当中Index,也就是对应Series索引。所以我们一般把行索引称为Index,而把列索引称为columns。...这个时候可以取巧,我们可以通过iloc找出对应行之后,再通过列索引方式去查询列。 ? 这里我们在iloc之后又加了一个方括号,这其实不是固定用法,而是两个语句。...比如我想要单独查询第2行,我们通过df[2]来查询是会报错。因为pandas会混淆不知道我们究竟是想要查询一列还是一行,所以这个时候只能通过iloc或者是loc进行。...比如我们想要查询分数大于200行,可以直接在方框写入查询条件df['score'] > 200。 ?

    13.1K10

    dotnet OpenXML 文本 BodyProperties FontScale 与文本字号缩放

    本文来告诉大家,在 OpenXML BodyProperties NormalAutoFit FontScale 属性缩放文本文本字号方法 通过 ECMA 376 文档可以了解到 BodyProperties...dotnet OpenXML 文本 BodyProperties 属性作用 通过 ECMA 376 21.1.2.1.3 章可以了解到使用 NormalAutoFit FontScale 属性是按照百分比缩放文本框...Test.pptx"); using var presentationDocument = PresentationDocument.Open(file.FullName, false); 获取首页第一个形状元素...; 此形状 OpenXML 内容如下 <p:cNvSpPr txBox=...Office PPT 相同 本文所有代码和测试文件放在github 和 gitee 欢迎访问 可以通过如下方式获取本文源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码

    65930

    dotnet OpenXML 简单聊聊 PPT 文本解析

    本文将和小伙伴介绍 PPT 文本存放方式 在 PPT 文本框也是形状,只是形状里面添加了特殊设置。...而没有添加特殊设置形状也可以添加文本,在 PPT 文本使用 包含,这就是本文主要和大家介绍内容 阅读本文,你将能大概了解如何开始入手 PPT 文本解析,以及了解相应工作量...此时文本将不引用全局和占位符等样式信息,此时文本将包含自己所有信息,此时文本解析是最简单 简单文本在 里面将会包含一个 值,这个值对应在 OpenXML...也就是在 有啥属性和值都可以在 BodyProperties 这个类里面找到,当然有些可选值只能通过 GetFirstChild 方法获取了,这部分就不细说了 需要科普,放在...其实不一定,因为在 PPT 属性是有继承,从页面继承 SlideLayout 属性,从 SlideLayout 继承 SlideMaster 属性。

    1.2K10

    dotnet OpenXML 读取 PPT 形状边框定义在 Style 颜色画刷

    里面,通过 a:ln 表示 Outline 轮廓,也就是咱 WPF 形状元素边框。...接着读取 内容,用来覆盖作为实际颜色 下面我将给大家演示如何在 WPF 读取 PPT 形状 Style 边框颜色和在界面里面将此显示出来...; 此颜色是 SchemeColor 颜色,按照 dotnet OpenXML 如何获取 schemeClr 颜色 文档方法进行读取,读取时用到辅助方法本文就不列出,还请参阅以上引用博客。...; // 读取 SchemeColor 方法请参阅如下文档 // [dotnet OpenXML 如何获取 schemeClr...本文以上更新测试文件和代码放在github 和 gitee 欢迎访问 可以通过如下方式获取本文源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文代码

    1K20

    在 Django 获取已渲染 HTML 文本

    在Django,你可以通过多种方式获取已渲染HTML文本。这通常取决于你希望在哪个阶段获取HTML文本。下面就是我在实际操作遇到问题,并且通过我日夜奋斗终于找到解决方案。...以下是一个示例代码,展示了如何在视图中将已渲染 HTML 文本存储在模板变量:def loginfrm(request): """ 登录表单视图 """ # 渲染登录表单 HTML...HTTP 响应对象包含渲染后 HTML 文本。最后,您还可以使用 RequestContext 对象来获取已渲染 HTML 文本。...您也可以使用 RequestContext 对象来获取已渲染 HTML 文本。...这些方法可以帮助我们在Django获取已渲染HTML文本,然后我们可以根据需要进行进一步处理或显示。

    11110

    dotnet 在 OpenXML SDK HasValue 是什么含义

    OpenXML SDK 里面对于很多值,如字符串等值,都包含一个 HasValue 属性。刚入门小伙伴会认为这就是一个和可空类型一样属性,表示这个属性是不是为空。...,而刚好在 OpenXML SDK 里面存在大量类型都是可能为空。...例如尝试获取文本字体大小 Int32Value fontSize = run.RunProperties.FontSize; 此时拿到了 fontSize 但是可能在 PPT 里面没有定义这个属性...,也就是 fontSize 为空,此时如果没有判断就开始使用,将会在某些有趣课件里面在这里炸掉 但是如果使用下面代码判断,将会如何?...fontSize 是空,尝试获取属性将会炸掉 正确做法是使用下面代码 if (fontSize !

    69220

    dotnet OpenXml SDK 形状填充渐变色主题色

    形状填充里面使用渐变色是可以一部分属性放在主题里面,主要找到主题里面的画刷,替换掉形状自己定义内容,才是形状画刷 我拿到一份有趣课件,从这份课件表现上,可以找到在一个 Shape 元素里面的...,也就是没有 a:gs 定义颜色 这个问题是 OpenXML a:gradFill without a:gsLst 渐变色里面没有 GradientStopList 值 而在这个形状一般都可以看到 ShapeStyle... 而这个样式要属性是 idx 属性,表示属于主题哪个样式 那么在 OpenXML SDK 里面如何获取主题,如果是在 Slide 页面的元素可以通过下面的代码获取主题...将会被形状填充用到,如果形状填充颜色也是渐变色,如果这个渐变色没有设置 a:gsLst 值,那么将会采用主题里面的 a:gsLst 值。...如果形状自己定义了就使用形状定义 请看下图就知道如何获取 大部分存在继承关系和联系都在 OpenXML SDK 里面写出来关系了,只有这些比较边角功能需要自己实现 而渐变色各个属性行为请看

    46510

    dotnet OpenXML 元素 cNvPr NonVisual Drawing Properties 属性作用

    表示等 本文 OpneXMl SDK 获取代码前提都有以下代码 public void Foo(NonVisualDrawingProperties nonVisualDrawingProperties...例如在 Slide 页面里面的多个元素,可以通过这个 id 作为区分,而在一个组合元素里面,允许组合里面的元素 id 和 Slide 页面的其他元素 id 是重复 而且这个 id 标识是允许重复,...在 OpenXML SDK 读取方法如下 var id = nonVisualDrawingProperties.Id; 测试课件请点击 元素id形状.pptx 下载 name 用于表示元素名字...也用来给辅助模块使用,如屏幕阅读器 官方说法是 标题和说明提供表格、图示和其他对象包含信息可选、基于文本表示法 在 OpenXML SDK 读取方法如下 var title = nonVisualDrawingProperties.Title...也可以用在不支持当前元素时候显示文本OpenXML SDK 读取方法如下 var description = nonVisualDrawingProperties.Description

    98130
    领券