Пример #1
0
        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;
                }
            }
        }
Пример #2
0
        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);
        }