在阅读本文之前,我期望你能了解基础的 PPT 解析内容,或看我的入门级博客。本文将告诉大家如何从 PPT 里面解析出通用元素的 x 和 y 的值,以及元素的宽度和高度的值

在开始之前请看 C# dotnet 使用 OpenXml 解析 PPT 文件 在拿到 slidePart.Slide.CommonSlideData.ShapeTree 里面的元素,几乎所有元素都存在坐标和宽度高度,这里的元素我称为通用元素,也就是不是特定的如形状、图片元素

此时的元素应该是继承 OpenXmlElement 类,在这个类里面可以通过 GetFirstChild 找到 ShapeProperties 的值

            var shapeProperties = element.GetFirstChild<ShapeProperties>();

上面代码的 element 是 OpenXmlElement 类

拿到了 ShapeProperties 实际上就是 PPT 文件的 p:sppr 内容,在 PPT 里面将会用如下格式设置元素里面的值中 a:xfrm 就是 Transform2D 请看下面

<p:sppr><a:xfrm><a:off x="3292475" y="1300390"></a:off><a:ext cx="6096000" cy="3429000"></a:ext></a:xfrm><a:prstgeom prst="rect"><a:avlst></a:avlst></a:prstgeom>
</p:sppr>

此时通过 var transform2D = shapeProperties.GetFirstChild<Drawing.Transform2D>(); 就能拿到 a:xfrm 的值

等等,这里的 Drawing.Transform2D 是什么意思,我在命名空间里面添加这个代码

using Presentation = DocumentFormat.OpenXml.Presentation;
using Drawing = DocumentFormat.OpenXml.Drawing;
using ShapeProperties = DocumentFormat.OpenXml.Presentation.ShapeProperties;

拿到 Transform2D 可以再获取 Offset 也就是 a:off 拿到 x 和 y 的大小

            var offset = transform2D.GetFirstChild<Drawing.Offset>();var offsetX = new Emu(offset.X.Value);var offsetY = new Emu(offset.Y.Value);

在 PPT 里面,通用元素的 x 和 y 值单位是 Emu 上面的类是我自己定义的,有可以抄的代码,请看 C# dontet Office Open XML Unit Converter 我定义了和像素转换的代码

可以通过 Extents 也就是 a:ext 获取元素的宽度和高度,请看代码

            var extents = transform2D.GetFirstChild<Drawing.Extents>();var extentWidth = new Emu(extents.Cx);var extentHeight = new Emu(extents.Cy);

ShapeProperties Class (DocumentFormat.OpenXml.Drawing.Pictures)

知道了元素的坐标如何在 UWP 中设置元素的坐标请看 win10 uwp 拖动控件

我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

如有不方便在博客评论的问题,可以加我 QQ 2844808902 交流


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。


http://www.taodudu.cc/news/show-2888648.html

相关文章:

  • GO Strings-and-runes
  • Dart学习3、数据类型详解
  • Go语言学习(十)bytes包处理字节切片
  • Runes - 神符一览
  • golang:字符类型(byte和rune)
  • Flutter 核心编程二:Dart基础语法之基本数据类型,数组,方法,Runs,函数闭包,typedef,操作符
  • Flutter必备——Dart入门(上)
  • Flutter 开发中最实用的 Dart 语法知识
  • Go中rune类型浅析
  • Golang bytes源码分析
  • Strings、bytes and runes -- 就要学习 Go 语言
  • Gym - 101653T Runes [模拟]
  • Gym 101653T Runes (模拟)
  • GYM 100827 A.Runes(水~)
  • GYM 101653 T.Runes(水~)
  • Strings、bytes and runes -- 就要学习Go语言
  • Dart笔记(10):Runes
  • Strings, bytes, runes and characters in Go
  • Strings and Runes
  • codeforces gym 100827A Runes
  • Runes——Dart
  • Dart(5)-内置类型
  • Flutter学习之Dart语言基础(内置类型)
  • Dart基础语言 — Runes
  • SANGFOR SCSA——Windows系统基础
  • SANGFOR SCSA——信息安全概述
  • SANGFOR SCSA——linux系统基础
  • SCSA❀基础信息安全概述
  • SANGFOR SCSA——协议基础
  • 微博插件-微博图片全显示(页面样式本人优化版)

C# dotnet 使用 OpenXml 解析 PPT 元素的坐标和宽度高度相关推荐

  1. C# dotnet 使用 OpenXml 解析 PPT 里面的视频

    本文告诉大家如何从 PPTX 文件里面解析出视频 我期望看到本文的小伙伴是了解 OpenXML 的,如果想要解析 Office 的文档,我推荐使用使用 OpenXML SDK 这个开源的库,更多入门级 ...

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

    本文来和大家聊聊在 PPT 形状使用了 Style 样式的颜色画刷读取方法 在开始之前,期望大家已了解如何在 dotnet 应用里面读取 PPT 文件,如果还不了解读取方法,请参阅 C# dotnet ...

  3. dotnet OpenXML 读取 PPT 内嵌 ole 格式 Excel 表格的信息

    在 Office 中,可以在 PPT 里面插入表格,插入表格有好多不同的方法,对应 OpenXML 文档存储的更多不同的方式.本文来介绍如何读取 PPT 内嵌 ole 格式的 xls+ 表格的方法 在 ...

  4. python递归算法案例教案_Python电子教案2-1-Python程序实例解析.ppt

    Python电子教案2-1-Python程序实例解析.ppt 简单说,eval()的作用是将输入的字符串内容变成Python语句,并执行这个语句.实例代码1.1使用eval()函数将用户的部分输入(T ...

  5. 计算机算法讲解的ppt,智能计算几种经典算法解析.ppt

    <智能计算几种经典算法解析.ppt>由会员分享,可在线阅读,更多相关<智能计算几种经典算法解析.ppt(20页珍藏版)>请在装配图网上搜索. 1.智能计算几种经典算法解析,制作 ...

  6. dotnet core TargetFramework 解析顺序探索

    dotnet core TargetFramework 解析顺序测试 Intro 现在 dotnet 的 TargetFramework 越来越多,抛开 .NET Framework 不谈,如果一个类 ...

  7. jaxb 解析list元素_JAXB和根元素

    jaxb 解析list元素 @XmlRootElement是人们习惯于与JAXB(JSR-222)一起使用的注释. 目的是将根元素与类唯一关联. 由于JAXB类映射到复杂类型,因此一个类有可能对应于多 ...

  8. 【DotNet加密方式解析】-- 好文收藏

    索引: 目录索引 By -- 彭泽 一. DotNet加密方式解析--散列加密 笔记: 散列加密种类: 1.MD5  128位 2.SHA-1  160位 3.SHA-256  256位 4.SHA- ...

  9. 【JAVA_POI】解析PPT文档(ppt和pptx)4.1.2版本

    一.ppt和pptx区别 二.java中对PPT文档的解析 2.1引入的jar包 <dependency><groupId>org.apache.poi</groupId ...

最新文章

  1. 制作ui设计作品集要注意哪些
  2. NC:应对干旱 细菌崩了 真菌依然很稳(纯网络分析发Nature子刊)
  3. linux 查看锁机时间,3分钟短文|Linux 登陆痕迹查看,last 锁定所有可疑对象
  4. dubbo学习笔记 第四章构建dubbo的web应用 上
  5. 【转】HTML5 本地存储五种方案
  6. shiro spring boot thymeleaf
  7. S3C2440 中断相关寄存器小探
  8. 社区奖品之原木双面记事板
  9. [WPF系列]-Deep Zoom
  10. 【树链剖分】春季大扫除(P6805)
  11. mysql 横向扩展 中间件_mysql-proxy数据库中间件架构 | 架构师之路
  12. ECMAScript基础(三)-关键字
  13. Codeforces Round #564 (Div. 2) C. Nauuo and Cards
  14. ubuntu mate 开机自动启动ssh服务
  15. 【Spring笔记】Spring介绍IOC理论推导
  16. 大数据时代移动营销的十大趋势
  17. 微信表情存入mysql
  18. Open vSwitch: Provider 网络
  19. 201万年薪,华为天才少年路径可以复制吗
  20. 帮助你提高排版技巧的18个 PS 文字特效教程

热门文章

  1. 微前端应用及基于qiankun的微前端实践
  2. Codeforces 1593C Save More Mice
  3. EF Attatch()方法附加对象
  4. 求n以内的最大素数 ← C++
  5. Go Web 编程 PDF
  6. ECHAP:身份认证的安全协议
  7. 直接激光雷达里程计:基于稠密点云的快速定位
  8. 起步晚了20年,韩国芯片凭什么打破美日封锁,做到世界第1?
  9. WinSetupFromUSB制作多系统U盘引导启动
  10. 【降维打击】希尔伯特曲线