internal void LoadXlsx(TOpenXmlReader DataStream) { AutoPage = DataStream.GetAttributeAsBool("autoPage", false); if (DataStream.IsSimpleTag) { DataStream.NextTag(); return; } string StartElement = DataStream.RecordName(); if (!DataStream.NextTag()) { return; } while (!DataStream.AtEndElement(StartElement)) { switch (DataStream.RecordName()) { case "pages": Pages = DataStream.GetXml(); break; case "rangeSets": ReadRangeSets(DataStream); break; default: DataStream.GetXml(); //Shouldn't happen. break; } } }
private TShapePath ReadPath(TShapeGeom ShapeGeom) { TShapePath Result = new TShapePath(); if (DataStream.IsSimpleTag) { DataStream.NextTag(); return(Result); } Result.Width = DataStream.GetAttributeAsInt("w", 0); Result.Height = DataStream.GetAttributeAsInt("h", 0); Result.PathFill = GetPathFill(DataStream.GetAttribute("fill")); Result.PathStroke = DataStream.GetAttributeAsBool("stroke", true); Result.ExtrusionOk = DataStream.GetAttributeAsBool("extrusionOk", true); string StartElement = DataStream.RecordName(); if (!DataStream.NextTag()) { return(Result); } while (!DataStream.AtEndElement(StartElement)) { switch (DataStream.RecordName()) { case "close": Result.Actions.Add(new TShapeActionClose()); DataStream.FinishTag(); break; case "moveTo": Result.Actions.Add(new TShapeActionMoveTo(ReadPt(ShapeGeom))); break; case "lnTo": Result.Actions.Add(new TShapeActionLineTo(ReadPt(ShapeGeom))); break; case "arcTo": TShapeActionArcTo ArcTo = new TShapeActionArcTo(); ArcTo.WidthRadius = GetGuideFromAtt("wR", ShapeGeom); ArcTo.HeightRadius = GetGuideFromAtt("hR", ShapeGeom); ArcTo.StartAngle = GetGuideFromAtt("stAng", ShapeGeom); ArcTo.SwingAngle = GetGuideFromAtt("swAng", ShapeGeom); Result.Actions.Add(ArcTo); DataStream.FinishTag(); break; case "quadBezTo": Result.Actions.Add(new TShapeActionQuadBezierTo(ReadPts(ShapeGeom, "pt").ToArray())); break; case "cubicBezTo": Result.Actions.Add(new TShapeActionCubicBezierTo(ReadPts(ShapeGeom, "pt").ToArray())); break; default: DataStream.GetXml(); break; } } return(Result); }