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

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

本文是使用 WPF 做个 PowerPoint 系列博客,本文来告诉大家如何解析 PPT 里面的文本描边效果, WPF 应用绘制出来,实现像素级相同 背景知识 开始之前,期望你了解了 PPT 解析入门知识...如对 PPT 解析了解很少,请参阅 C# dotnet 使用 OpenXml 解析 PPT 文件 PPT 里面可以给文本某些文字设置描边效果,描边效果从 OpenXML 层上是不属于特效,只是属于边框属性...,进行判断 获取文本框文本,可以使用如下代码 var textBody = shape.TextBody!...代码 本文所有代码和测试文件放在github 和 gitee 欢迎访问 可以通过如下方式获取本文源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,命令行里面输入以下代码,即可获取到本文代码...gitee 源,如果 gitee 不能访问,请替换为 github 源 git remote remove origin git remote add origin https://github.com

94220

dotnet OpenXML 文本删除线解析方法

本文来告诉大家如何解析读取 OpenXML 里面存放文本删除线,本文使用 PowerPoint 作为例子来告诉大家如何读取然后 WPF 应用里面显示 开始之前,期望大家已了解如何在 dotnet...应用里面读取 PPT 文件,如果还不了解读取方法,请参阅 C# dotnet 使用 OpenXml 解析 PPT 文件 期望阅读本文之前,先阅读 dotnet OpenXML 简单聊聊 PPT 文本解析...以下是本文效果 OpenXML 文档,将文本删除线放在了文本 Run 属性里面,大概内容如下 <a:rPr lang="en-US...同时下划线和删除线<em>的</em>样式也是特别多<em>的</em> 如删除线<em>的</em> TextStrikeValues <em>的</em>枚举,<em>在</em> ECMA 376 <em>的</em>第 20.1.10.78 章可以了解到有单线条<em>的</em>删除线和双线条<em>的</em>删除线,<em>在</em> <em>OpenXML</em>...Canvas 是放在 XAML <em>的</em>控件,本文所有代码放在github 和 gitee 欢迎<em>访问</em> 可以通过如下方式获取本文<em>的</em>源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,<em>在</em>命令行里面输入以下代码

85610
您找到你想要的搜索结果了吗?
是的
没有找到

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

本文来告诉大家, OpenXML BodyProperties NormalAutoFit FontScale 属性缩放文本框文本字号方法 通过 ECMA 376 文档可以了解到 BodyProperties...开始之前,先使用 C# dotnet 使用 OpenXml 解析 PPT 文件 方法读取测试文档。...获取文本内容, WPF 显示代码如下 foreach (var paragraph in textBody.Elements<DocumentFormat.OpenXml.Drawing.Paragraph...PPT 相同 本文所有代码和测试文件放在github 和 gitee 欢迎访问 可以通过如下方式获取本文源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,命令行里面输入以下代码...以上使用是 gitee 源,如果 gitee 不能访问,请替换为 github 源 git remote remove origin git remote add origin https://

62130

C# 使用openxml解析PPTX文本内容

前言       本文讨论仅针对微软Office 2007以后(OOXML定义)PowerPoint文档,Office 2007以前用二进制格式定义(ppt格式)文档不在本文讨论范围。...DocumentFormat.OpenXml用于加载解析pptx文档,FreeSpire.Doc用于解析pptx嵌入doc文档内容,详见解析嵌入doc文本。...1、直接保存在slide*.xml文件节点数据;2、以oleObject对象形式存储word文档;3、以oleObject对象形式存储bin文件。...对象slide*.xml文件记录形式如下图: progId值为“Word.Document.8”表示嵌入对象是Office 2007以前数据格式,值为“Word.Document.12”表示嵌入对象是...Office 2007以后OOXML定义数据格式直接通过DocumentFormat.OpenXml解析,需要注意解析word段落需要用DocumentFormat.OpenXml.Wordprocessing.Paragraph

34510

dotnet OpenXML 解析 PPT 文本字体获取详解

OpenXML PPT 文本字体是一个比较复杂概念,即使 OpenXML SDK 辅助下,也需要自己写很多逻辑。... OpenXML SDK 里面有这个定义,请看代码 var textBodyListStyle = textBody.ListStyle; 我准备了这份简洁文档,这份文档将需要用到本文说讲到大部分知识才能解析出实际字体是哪个...; var textBody = shape.TextBody; var textBodyListStyle = textBody.ListStyle; Debug.Assert(textBodyListStyle.ChildElements.Count...此时就需要用到 defaultTextStyle 定义内容,开始写代码之前,先看一下文档里面是如何定义 测试文档里面的 Presentation.xml 是这样定义,这份文档放在 github...github 欢迎小伙伴访问,此时就能拿到字体 如果此时 Theme1.xml 定义是如下呢 <a:latin typeface="Calibri" panose

1.4K30

dotnet OpenXML 幻灯片 PPTX Slide Id 和页面序号关系

使用 OpenXML SDK 进行 Office 文档解析时,对幻灯片 PPTX 文档页面解析也许会遇到页面顺序问题,本文告诉大家 Office 文档里面页面的序号和顺序之间关系以及如何读取页面序号...开始之前,我期望你是了解一些 PPT 解析相关知识,入门级博客请看 C# dotnet 使用 OpenXml 解析 PPT 文件 C# dotnet 使用 OpenXml 解析 PPT 文件...这篇博客没有详细告诉大家页面顺序问题,但是按照 C# dotnet 使用 OpenXml 解析 PPT 文件 这篇博客写法就是能拿到对页面顺序 ECMA 376 标准说明, Presentation.xml...p:sldIdLst 将会存放在 PPT 画布里面多个页面之间顺序,上面代码页面的 Slide Id 是 id 这个属性,也就是当前文档只有一个页面,这个页面的 Slide Id 是 277 值...MsoTriState.msoFalse, MsoTriState.msoFalse); foreach (Microsoft.Office.Interop.PowerPoint.Slide

70310

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

本文告诉大家如何从 PPTX 文件里面解析出视频 我期望看到本文小伙伴是了解 OpenXML ,如果想要解析 Office 文档,我推荐使用使用 OpenXML SDK 这个开源库,更多入门级博客请看...C# dotnet 使用 OpenXml 解析 PPT 文件 我做了一个简单 PPT 文件,这个文件里面只有一页,这一页上面有一个视频。...r:link 拿到对应资源, PPT 里面,用 GetPartById 获取 ChildrenRelationshipParts 资源,用 GetReferenceRelationship 拿到...ReferenceRelationshipList 资源 PPT 里面的视频放在 ReferenceRelationshipList 使用下面代码拿到 var openXmlPart...(), "林德熙是逗比.mp4"); File.WriteAllBytes(file, ReadAllBytes(stream)); 代码放在 github 欢迎小伙伴访问

63420

dotnet OpenXML 利用合并表格单元格 PPT 文档插入不可见额外版权信息

本文告诉大家如何利用 Office 对于 OpenXML 支持特性, PPT 表格里面,通过合并单元格存放一些额外信息,这些信息对用户来说是不可见,但是进行拷贝表格等时候,可以保存此信息内容...开始之前,期望大家已了解很多 OpenXML 知识,详细请看 Office 使用 OpenXML SDK 解析文档博客目录 PPT 表格里面,采用了 RowSpan 用来表示单元格跨行,对应在下一行单元格将会被标记...例如我对第一行第一个单元格设置合并单元格,合并行,那么第二行第一列单元格将被标记 vMerge="1" 表示被合并,如下面表格 Office 读取 OpenXML 文档,将无视 vMerge...="1" 存在,也就是此属性只是给开发者看而已,无论是否存在都不会影响到单元格合并 但事实上,依然可以标记了 vMerge="1" 单元格上面添加内容,例如以下有删减 OpenXML 文档...本文以上测试文件和代码放在github 和 gitee 欢迎访问 可以通过如下方式获取本文源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,命令行里面输入以下代码,即可获取到本文代码

94510

特定环境安装指定版本Docker

通常用官方提供安装脚本或软件源安装都是安装比较新 Docker 版本,有时我们需要在一些特定环境服务器上安装指定版本 Docker。今天我们就来讲一讲如何安装指定版本 Docker 。...hkp://pgp.mit.edu:80 –recv-keys 58118E89F3A912897C070ADBF76221572C52609D 新增一个 docker.list 文件,在其中增加对应软件安装源...docker.list deb https://apt.dockerproject.org/repo ubuntu-xenial main CentOS 新增一个 docker.repo 文件,在其中增加对应软件安装源...raw=true | sh 使用需要 Docker 版本替换以下脚本 ,目前该脚本支持 Docker 版本: 1.10.3 1.11.2 1.12.1 1.12.2 1.12.3 1.12.4...1.12.5 1.12.6 1.13.0 1.13.1 17.03.0 17.03.1 17.04.0 注:脚本使用 USTC 软件包仓库,已基于 Ubuntu_Xenial , CentOS7 以及

3.7K20

dotnet OpenXML PPTX 表格单元格加上 VerticalMerge 或 HorizontalMerge 将导致 WPS 丢失文本

此行为与 Office PowerPoint 不同,预计是 WPS 坑 如以下核心代码,设置表格单元格 VerticalMerge 和 HorizontalMerge 属性 A.TableCell...如下图为我使用代码生成文档,分别在 WPS 和 Office PowerPoint 打开效果 从上图可见 WPS 表格单元格内丢失了文本 默认从 Office PowerPoint 创建表格...如果表格单元格没有合并,是没有设置 VerticalMerge 和 HorizontalMerge 属性,这就意味着如果遇到 VerticalMerge 和 HorizontalMerge 属性被设置,那必定只有设置为...); return graphicFrame1; } 本文代码放在 github 和 gitee 上,可以使用如下命令行拉取代码 先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,命令行里面输入以下代码...以上使用是 gitee 源,如果 gitee 不能访问,请替换为 github 源。

6010

【DB笔试面试839】Oracle,如何限定特定IP访问数据库?

♣ 问题 Oracle,如何限定特定IP访问数据库?...♣ 答案 总体来说有3种办法可以限定特定IP访问数据库,第一种是利用登录触发器,如下: CREATE OR REPLACE TRIGGER CHK_IP_LHR AFTER LOGON ON DATABASE...否则,这些用户还是会正常登录到数据库,只是将相应报错信息写入到告警日志。所以,拥有IMP_FULL_DATABASE和DBA角色用户以及SYS和EXFSYS用户将不能通过这种方式限制登录。...IP地址列表,多个IP地址使用逗号分开 TCP.EXCLUDED_NODES=(IP1,IP2,……) #禁止访问数据库IP地址列表,多个IP地址使用逗号分开 之后重新启动监听器即可,若禁止访问...⑥ 这个配置适用于Oracle 9i及其以上版本,Oracle 9i之前版本使用文件protocol.ora。 ⑦ 服务器上直接连接数据库不受影响。 ⑧ 这种限制方式是通过监听器来限制

1.4K30

dotnet OpenXML 形状 Outline LineWidth 线条轮廓粗细宽度行为

本文来和大家聊聊 OpenXML 里面的给 PPT 用形状里面的线条宽度定义,以及 PowerPoint行为 本文属于 OpenXML 系列博客,前后文请参阅 Office 使用 OpenXML...SDK 解析文档博客目录 OpenXML 里面,定义形状轮廓是通过 a:ln 也就是 OpenXML SDK 里面定义 DocumentFormat.OpenXml.Drawing.Outline...将上面文档使用 PowerPoint 打开,可以看到画布没有缩放时界面如下 接着将 PowerPoint 画布缩放到最大,可以看到形状轮廓粗细依然没有任何变化,保持屏幕一个像素大小 通过...PowerPoint 属性面板可以看到形状宽度确实是 0 大小 以上文档放在 github 和 gitee 欢迎访问 可以继续在当前代码仓库里面输入以下命令获取 git pull origin...如下面文档值,通过 dotnet OpenXML 解压缩文档为文件夹工具 制作新 PPT 文档, PowerPoint 打开 <p:cNvPr

53830

字符串删除特定字符

首先我们考虑如何在字符串删除一个字符。由于字符串内存分配方式是连续分配。我们从字符串当中删除一个字符,需要把后面所有的字符往前移动一个字节位置。...具体实现,我们可以定义两个指针(pFast和pSlow),初始时候都指向第一字符起始位置。当pFast指向字符是需要删除字符,则pFast直接跳过,指向下一个字符。...这样,前面被pFast跳过字符相当于被删除了。用这种方法,整个删除O(n)时间内就可以完成。 接下来我们考虑如何在一个字符串查找一个字符。当然,最简单办法就是从头到尾扫描整个字符串。...我们可以新建一个大小为256数组,把所有元素都初始化为0。然后对于字符串每一个字符,把它ASCII码映射成索引,把数组该索引对应元素设为1。...这个时候,要查找一个字符就变得很快了:根据这个字符ASCII码,在数组对应下标找到该元素,如果为0,表示字符串没有该字符,否则字符串包含该字符。此时,查找一个字符时间复杂度是O(1)。

8.9K90

flashC#应用

这个动画是Flash做,而且嵌入到程序简直做到无缝融合,因为右键点击它也不会有那特有而烦人Flash右键菜单。 因此将Flash融合到WinForm能够增强程序多媒体效果和炫丽外观。...现在我们就来看看在C#桌面程序如何插入Flash视频,而且去掉烦人右键菜单。...首先要插入Flash就必须使用Flash控件,工具栏右键选择“选择项…”,然后“COM组件”面板下点击“浏览”按钮,本机电脑C:\WINDOWS\system32\Macromed\Flash\目录里选择...打开VS2008,新建一个Windows程序,然后把刚才我们选择Flash控件Shockwave Flash Object拖到窗体,这时窗体中会出现一个白色矩形框,Name属性我们设置为Myflash...该类包含各种Flash事件和属性,在这里我们只对右键菜单事件感兴趣,因此我们去重写该事件。

1.7K10

dotnet OpenXML 转换 PathFillModeValues 为颜色特效

OpenXml 预设形状,有一些形状设置了 PathFillModeValues 枚举,此枚举提供了亮暗蒙层特效。具体特效是让形状选择一个画刷,画刷上加上特效。...如立体几何 Cube 形状, Cube 不同面有不同颜色,颜色亮度不同 接下来通过 OpenXML SDK 实现读取 PPTX 文件,解析 Cube 预设形状,界面绘制,让填充和 PowerPoint...Test.pptx 可以通过本文末尾拿到下载地址 开始之前,期望大家已了解如何在 dotnet 应用里面读取 PPT 文件,如果还不了解读取方法,请参阅 C# dotnet 使用 OpenXml 解析...不过通过编写代码形式也是可以,详细请看 dotnet OpenXML SDK 形状几何 Geometry 计算公式含义 为了简化代码, GetPresetGeometryPath 方法里面使用是我用公式引擎计算输出字符串...,运行代码可以看到上图效果 本文所有代码和测试文件放在 github 和 gitee 欢迎访问 可以通过如下方式获取本文代码 先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,命令行里面输入以下代码

81220

C# SQLiteC#安装与操作

SQLite 介绍 SQLite,是一款轻型数据库,用于本地数据储存。...先说说优点,它占用资源非常低,嵌入式设备需要几百K内存就够了;作为轻量级数据库,他处理速度也足够快;支持容量级别为T级;独立: 没有额外依赖;开源;支持多种语言; 我用途 项目开发,...因为数据库实时数据同步,需要记录更新时间,系统日志等等数据;当然,你也可以选择写ini和xml等等配置文件来解决,但是都如数据库可读性高不是。 安装 1....引用 .NET 驱动 http://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki 这三个文件,项目中,引用之后就可以进行创建数据库查询数据操作...2.使用vs提供包管理工具Nuget进行项目引用。 Nuget包管理工具 搜索SQLite安装对应包,下载完成后就自动项目中引用了。

2K21

dotnet OpenXML 继承组合颜色 GrpFill 属性

OpenXML 颜色画刷填充,有特殊填充是 GrpFill 属性,对应 OpenXML SDK 定义 DocumentFormat.OpenXml.Drawing.GroupFill 类型 本文属于...OpenXML 系列博客,前后文请参阅 Office 使用 OpenXML SDK 解析文档博客目录 颜色画刷定义,如形状填充色,形状放入到组合里面时,可以让形状颜色继承组合颜色。...RGB 值,因此就截图此时文档从 PowerPoint 打开界面,不标注每个矩形颜色 可以看到左边矩形采用了 565656 颜色,而另一个矩形采用自己定义 F6F656 颜色。...github 和 gitee 欢迎访问 可以通过如下方式获取本文源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,命令行里面输入以下代码,即可获取到本文代码 git init... PowerPoint 行为是此元素将丢失填充色,相当于没有填充 如以下文档内容,有一个形状使用了 grpFill 但是没有放在组合里面

55250

FluentValidationC# WPF应用

其实它也可以用于WPF属性验证,本文主要也是讲解该组件WPF使用,FluentValidation官网是: https://fluentvalidation.net/ 。...本文需要实现功能unsetunset 提供WPF界面输入验证,采用MVVM方式,需要以下功能: 能验证ViewModel定义基本数据类型属性:int\string等; 能验证ViewModel定义复杂属性...复杂属性:我遇到问题是,怎么验证ViewModel对象属性子属性?...创建验证器 验证属性写法有两种: 可以实体属性上方添加特性(本文不作特别说明,百度文章介绍很多); 通过代码形式添加,如下方,创建一个验证器类,继承自AbstractValidator,在此验证器构造函数写规则验证属性...表示关联集合项验证器。

12610
领券