using System; using System.Collections.Generic; using System.Text; using System.Xml.Serialization; namespace TEAMModelOS.SDK.Module.PowerPointX.Model { public class PPTXContainer : PPTXPosition { public PPTXContainer() { Paragraphs = new List(); Paths = new List(); ShapeGuides = new List(); } /// /// p:sp /// public string Type { get; set; } //文字排版 横版horz 垂直vert public string TextLayout { get; set; } = "horz"; //图形是否闭合 public bool Close { get; set; } = false; public List Paragraphs{ get; set; } public List Paths { get; set; } //容器填充颜色 public string FillColor { get; set; } //是否有填充色 public bool Fill { get; set; } = true; //轮廓填充 public string LineColor { get; set; } //效果填充 public string EffectColor { get; set; } /// /// 换行 /// public string Wrap { get; set; } = "none"; //默认不换行 //Top Center Bottom public string Align { get; set; } = "Center"; public List ShapeGuides { get; set; } } public class PPTXShapeGuide { public string Name { get; set; } public string Fmla { get; set; } } public class PPTXParagraph { public PPTXParagraph() { Texts = new List(); } public List Texts { get; set; } } public abstract class PPTXPath { public string Type { get; set; } } //public abstract class PPTXClosePath :PPTXPath //{ // public bool Close { get; set; } = false; //} /// /// 起点 /// public class PPTXMoveToPath : PPTXPath { public PPTXMoveToPath() { Pts = new List { }; } public List Pts { get; set; } } /// /// 弧形 /// public class PPTXArcToPath : PPTXPath { public string WidthRadius { get; set; } public string HeightRadius { get; set; } public string StartAngle { get; set; } public string SwingAngle { get; set; } } /// /// 画线 /// public class PPTXLineToPath : PPTXPath { public PPTXLineToPath() { Pts = new List { }; } public List Pts { get; set; } } /// /// 三次贝塞尔曲线 /// public class PPTXCubicBezPath : PPTXPath { public PPTXCubicBezPath() { Pts = new List { }; } public List Pts { get; set; } }/// /// 二次贝塞尔曲线 /// public class PPTXQuadBezPath : PPTXPath { public PPTXQuadBezPath() { Pts = new List { }; } public List Pts { get; set; } } public class Point{ public double X { get; set; } public double Y { get; set; } } } /** * * accentBorderCallout1线形标注 1(带边框和强调线) accentBorderCallout2线形标注 2(带边框和强调线) accentBorderCallout3线形标注 3(带边框和强调线) accentCallout1线形标注 1(带强调线) accentCallout2线形标注 2(带强调线) accentCallout3线形标注 3(带强调线) actionButtonBackPrevious actionButtonBeginning actionButtonBlank actionButtonDocument actionButtonEnd actionButtonForwardNext actionButtonHelp actionButtonHome actionButtonInformation actionButtonMovie actionButtonReturn actionButtonSound arc 弧形 圆弧 弧线 起点 270° 终点 90° bentArrow圆角右箭头 bentConnector2 bentConnector3肘形连接符 bentConnector4 bentConnector5 bentUpArrow直角上箭头 bevel //棱台 TODO blockArc 空心弧 TODO 起点180° 终点正的84.55966666666667° 最小半径 外圆- 内圆 半径 borderCallout1线形标注 1 borderCallout2线形标注 2 borderCallout3线形标注 3 bracePair bracketPair callout1线形标注 1(无边框) callout2线形标注 2(无边框) callout3线形标注 3(无边框) can //圆柱型 TODO暂不解析 chartPlus chartStar chartX chevron燕尾形 长:3:1 左边缺一个单位的三角形 右边多一个单位三角形 chord 弦形 默认16200000 ---> 0 start 弧度:x=adj1/21600000*360 end 弧度:x=adj2/21600000*360 circularArrow环形箭头 cloud 云形 宽高比例拉伸 cloudCallout云形标注 corner L 形 百分比 默认 50000 50000 cornerTabs cube //立方体 TODO 初步对角线比例 curvedConnector2 curvedConnector3曲线连接符 curvedConnector4 curvedConnector5 curvedDownArrow上弧形箭头 弧形向上 箭头右下 curvedLeftArrow右弧形箭头 弧形向右 箭头向左下 curvedRightArrow左弧形箭头 弧形向左 箭头向右下 curvedUpArrow下弧形箭头 弧形向下 箭头右上 decagon //十边形 diagStripe//斜纹 斜梯形 最小宽度的比例 diamond //菱形 dodecagon//十二边形 donut //同心圆 TODO 半径比例 最小半径-val 得到内圆 外圆-内圆 doubleWave双波形 downArrow 下箭头 downArrowCallout下箭头标注 ellipse //椭圆或者圆形 ellipseRibbon前凸弯带形 ellipseRibbon2上凸弯带形 8 flowChartAlternateProcess 可选过程 圆角矩形 flowChartCollate对照 长宽2:1 两个等腰三角形 上下尖对尖 flowChartConnector接点 原型 flowChartDecision 决策 菱形 flowChartDelay 延期正方形右侧多个半圆 flowChartDisplay显示 正方形 左侧1/4高度等腰三角形 1/4右侧弧形 flowChartDocument 文档 矩形 下面部分波浪 flowChartExtract摘录 正方形里面的等腰三角形 向上 flowChartInputOutput 数据 平行四边形 flowChartInternalStorage 内部贮存 左上角横竖各一条线 flowChartMagneticDisk 磁盘 圆柱体 向上 宽高 2:1 压扁 flowChartMagneticDrum直接访问存储器 圆柱体 平躺 宽高 2:1 拉长 flowChartMagneticTape顺序访问存储器 圆形 小猪佩奇 下面多个矩形 flowChartManualInput 手动输入 矩形 上面部分向左倾斜一点 倾斜高度四分之一 flowChartManualOperation 手动操作 倒等腰梯形 flowChartMerge 合并 正方形里面的等腰三角形 向下 flowChartMultidocument 多文档 3个矩形 下面部分波浪 叠加 flowChartOfflineStorage flowChartOffpageConnector 离页连接符 正方形 左下角右下角各缺角一边高度为四分之一,一边长为一半的的三角形 flowChartOnlineStorage存储数据 矩形 左侧多个半圆 右侧缺半圆 flowChartOr或者 圆形经过圆形 两条横竖交叉的直线 flowChartPredefinedProcess 预定义过程 矩形 左右部分各有一条竖线 flowChartPreparation 准备 六边形 上下被压缩变长2倍边 flowChartProcess 流程图 矩形 flowChartPunchedCard 卡片 矩形右上角剪角最小宽度的1/4的三角形 flowChartPunchedTape 资料带 波浪形 flowChartSort 排序 两个等腰三角形 背对背 长宽2:1 flowChartSummingJunction汇总连接 圆形经过圆形 两条斜交叉的直线 flowChartTerminator 终止 最小边半径圆角矩形 folderCorner frame 图文框框 funnel gear6 gear9 halfFrame 半闭框 百分比 默认30000 30000 heart 心形 宽高拉伸 heptagon //七边形 hexagon //六边形1060704 *96/914400=111.36 58000*2*0.96/1000 homePlate五边形 长高 2:1 矩形加右侧1一个宽的三角形 horizontalScroll横卷形 irregularSeal2爆炸形2 leftArrow //左箭头 leftArrowCallout leftBrace leftBracket leftCircularArrow leftRightArrow //左右箭头 leftRightArrowCallout左右箭头标注 leftRightCircularArrow leftRightRibbon irregularSeal1爆炸形1 leftRightUpArrow丁字箭头 leftUpArrow直角双向箭头 向左 向上 lightningBolt 闪电 宽高拉伸 line直接连接符 线 lineInv mathDivide除号 mathEqual等号 mathMinus减号 mathMultiply乘号 mathNotEqual不等号 mathPlus加号 moon 新月形 TODO 0-87500 nonIsoscelesTrapezoid noSmoking 默认就行 TODO notchedRightArrow燕尾形箭头 octagon 八边形 //TODO parallelogram //平行四边形 val*0.96/1000 得到像素 pentagon //正五边形 宽高决定形变 pie //饼图 21600000 16200000 默认16200000 ---> 0 16200000/21600000 =3/4 start 弧度:x=adj1/21600000*360 end 弧度:x=adj2/21600000*360 pieWedge plaque 缺角圆角矩形 最小边0-50 比例 作为缺角半径 plaqueTabs plus 十字加形 最小边比例 0-50 quadArrow 十字箭头 TODO quadArrowCallout十字箭头标注 rect 矩形 ribbon前凸带形 ribbon2上凸带形 6" rightArrow 右箭头 控制粗细 粗细的百分比=val/100000 *cy 控制箭头长短 粗细的百分比=val/100000 *cy rightArrowCallout右箭头标注 rightBrace rightBracket round1Rect单圆角矩形 右上角圆角缺角 0-50000 = 50% 最小宽度的 百分比作为缺角 round2DiagRect 对角圆角矩形 左上角 右下角 圆角缺角0-50000 = 50% 最小宽度的 百分比作为缺角 右上角 左下角 圆角缺角0-50000 = 50% 最小宽度的 百分比作为缺角 round2SameRect 同侧圆角矩形 上侧圆角缺角0-50000 = 50% 最小宽度的 百分比作为缺角 下侧圆角缺角0-50000 = 50% 最小宽度的 百分比作为缺角 roundRect 圆角矩形 0-50000 = 50% 最小宽度的 百分比 作为半径 rtTriangle //直角三角形 宽高决定形变 smileyFace 笑脸 TODO 负数哭脸 正数笑脸 snip1Rect 剪去单角的矩形 右上角 0-50000 = 50% 最小宽度的 百分比作为缺角 snip2DiagRect剪去对角的矩形 左上角和右下角 0-50000 = 50% 最小宽度的 百分比作为缺角 右上角和左下角 0-50000 = 50% 最小宽度的 百分比作为缺角 snip2SameRect剪去同侧角的矩形 上侧 0-50000 = 50% 最小宽度的 百分比作为缺角 下侧 0-50000 = 50% 最小宽度的 百分比作为缺角 snipRoundRect 单圆角矩形 左上角圆角缺角0-50000 = 50% 最小宽度的 百分比作为缺角 右上角剪角缺角0-50000 = 50% 最小宽度的 百分比作为缺角 squareTabs star10 十角星 star12 十二角星 star16 十六角星 star24 二十四角星 star32 三十二角星 star4 四角星 star5 五角星 star6 六角星 star7 七角星 star8 八角星 straightConnector1直接箭头连接符 stripedRightArrow 虚尾箭头 sun 太阳 TODO 12500 至 46875 swooshArrow teardrop //泪滴型 暂不不解析 //TODO trapezoid //等腰梯形 //移动百分比 0-50 默认25 val/100000 triangle 三角形 //移动百分比 默认50 0-50-100% val/100000 upArrow //上箭头 upArrowCallout upDownArrow 上下箭头 upDownArrowCallout uturnArrow手杖形箭头 向右调头 verticalScroll竖卷形 wave 波浪形 wedgeEllipseCallout 椭圆形标注 wedgeRectCallout 矩形标注 wedgeRoundRectCallout 圆角矩形标注 */