internal SCSlideLayout GetSlideLayoutBySlide(SCSlide slide) { SlideLayoutPart inputSlideLayoutPart = slide.SlidePart.SlideLayoutPart; return(CollectionItems.SelectMany(sm => sm.SlideLayouts) .First(sl => sl.SlideLayoutPart == inputSlideLayoutPart)); }
internal static ShapeCollection CreateForSlide(SlidePart slidePart, SCSlide slide) { var phService = new PlaceholderService(slidePart.SlideLayoutPart); var transformFactory = new LocationParser(phService); var geometryFactory = new GeometryFactory(phService); var shapeContextBuilder = new ShapeContext.Builder(slidePart); var chartGrFrameHandler = new ChartGraphicFrameHandler(); var tableGrFrameHandler = new TableGraphicFrameHandler(shapeContextBuilder, transformFactory); var oleGrFrameHandler = new OleGraphicFrameHandler(shapeContextBuilder, transformFactory); var pShapeHandler = new AutoShapeCreator(shapeContextBuilder, transformFactory); var pictureHandler = new PictureHandler(shapeContextBuilder, transformFactory, geometryFactory); var sdkGroupShapeHandler = new PGroupShapeHandler(shapeContextBuilder, transformFactory, geometryFactory, slidePart); pShapeHandler.Successor = sdkGroupShapeHandler; sdkGroupShapeHandler.Successor = oleGrFrameHandler; oleGrFrameHandler.Successor = pictureHandler; pictureHandler.Successor = chartGrFrameHandler; chartGrFrameHandler.Successor = tableGrFrameHandler; P.ShapeTree shapeTree = slidePart.Slide.CommonSlideData.ShapeTree; var shapes = new List <IShape>(shapeTree.Count()); foreach (OpenXmlCompositeElement compositeElement in shapeTree.OfType <OpenXmlCompositeElement>()) { IShape shape = pShapeHandler.Create(compositeElement, slide); if (shape != null) { shapes.Add(shape); } } return(new ShapeCollection(shapes)); }
public override IShape Create(OpenXmlCompositeElement pShapeTreeChild, SCSlide slide) { P.Picture pPicture; if (pShapeTreeChild is P.Picture treePic) { pPicture = treePic; } else { var framePic = pShapeTreeChild.Descendants <P.Picture>().FirstOrDefault(); pPicture = framePic; } if (pPicture != null) { var pBlipFill = pPicture.GetFirstChild <P.BlipFill>(); var blipRelateId = pBlipFill?.Blip?.Embed?.Value; if (blipRelateId == null) { return(null); } var spContext = _shapeContextBuilder.Build(pShapeTreeChild); var picture = new SlidePicture(slide, blipRelateId, spContext, pPicture); return(picture); } return(Successor?.Create(pShapeTreeChild, slide)); }
public override IShape Create(OpenXmlCompositeElement pShapeTreeChild, SCSlide slide) { if (pShapeTreeChild is P.Shape pShape) { ShapeContext shapeContext = _shapeContextBuilder.Build(pShapeTreeChild); ILocation innerTransform = _transformFactory.FromComposite(pShape); var autoShape = new SlideAutoShape(innerTransform, shapeContext, pShape, slide); return(autoShape); } return(Successor?.Create(pShapeTreeChild, slide)); }
/// <summary> /// Initializes a new instance of the <see cref="SlideChart" /> class. /// </summary> internal SlideChart(P.GraphicFrame pGraphicFrame, SCSlide slide) : base(slide, pGraphicFrame) { _pGraphicFrame = pGraphicFrame; _firstSeries = new Lazy <OpenXmlElement>(GetFirstSeries); _xValues = new Lazy <LibraryCollection <double> >(GetXValues); _seriesCollection = new Lazy <SeriesCollection>(() => Collections.SeriesCollection.Create(this, _cXCharts)); _categories = new Lazy <CategoryCollection>(() => CategoryCollection.Create(this, _firstSeries.Value, Type)); _chartType = new Lazy <ChartType>(GetChartType); ChartWorkbook = new ChartWorkbook(this); Init(); //TODO: convert to lazy loading }
private List <SCSlide> GetSlides() { int slidesCount = this.presentationPart.SlideParts.Count(); var slides = new List <SCSlide>(slidesCount); for (var slideIndex = 0; slideIndex < slidesCount; slideIndex++) { SlidePart slidePart = this.presentationPart.GetSlidePartByIndex(slideIndex); int slideNumber = slideIndex + 1; var newSlide = new SCSlide(this.parentPresentation, slidePart, slideNumber); slides.Add(newSlide); } return(slides); }
public override IShape Create(OpenXmlCompositeElement pShapeTreeChild, SCSlide slide) { if (pShapeTreeChild is P.GraphicFrame pGraphicFrame) { A.GraphicData aGraphicData = pShapeTreeChild.GetFirstChild <A.Graphic>().GetFirstChild <A.GraphicData>(); if (aGraphicData.Uri.Value.Equals(Uri, StringComparison.Ordinal)) { SlideChart chart = new(pGraphicFrame, slide); return(chart); } } return(Successor?.Create(pShapeTreeChild, slide)); }
public override IShape Create(OpenXmlCompositeElement pShapeTreeChild, SCSlide slide) { if (pShapeTreeChild is P.GraphicFrame pGraphicFrame) { var grData = pShapeTreeChild.GetFirstChild <A.Graphic>().GetFirstChild <A.GraphicData>(); if (grData.Uri.Value.Equals(Uri, StringComparison.Ordinal)) { var spContext = _shapeContextBuilder.Build(pShapeTreeChild); var innerTransform = _transformFactory.FromComposite(pGraphicFrame); var oleObject = new SlideOLEObject(pGraphicFrame, spContext, slide); return(oleObject); } } return(Successor?.Create(pShapeTreeChild, slide)); }
public override IShape Create(OpenXmlCompositeElement pShapeTreeChild, SCSlide slide) { if (pShapeTreeChild is P.GroupShape pGroupShape) { var pShapeHandler = new AutoShapeCreator(_shapeContextBuilder, _transformFactory); var oleGrFrameHandler = new OleGraphicFrameHandler(_shapeContextBuilder, _transformFactory); var pictureHandler = new PictureHandler(_shapeContextBuilder, _transformFactory, _geometryFactory); var pGroupShapeHandler = new PGroupShapeHandler(_shapeContextBuilder, _transformFactory, _geometryFactory, _slidePart); var chartGrFrameHandler = new ChartGraphicFrameHandler(); var tableGrFrameHandler = new TableGraphicFrameHandler(_shapeContextBuilder, _transformFactory); pShapeHandler.Successor = pGroupShapeHandler; pGroupShapeHandler.Successor = oleGrFrameHandler; // OLE objects handler must be before pictures handler, cause OLE container can contain p:pic elements, thereby OLE as a picture oleGrFrameHandler.Successor = pictureHandler; pictureHandler.Successor = chartGrFrameHandler; chartGrFrameHandler.Successor = tableGrFrameHandler; var groupedShapes = new List <IShape>(pGroupShape.Count()); foreach (var item in pGroupShape.OfType <OpenXmlCompositeElement>()) { var groupedShape = pShapeHandler.Create(item, slide); if (groupedShape != null) { groupedShapes.Add(groupedShape); } } var spContext = _shapeContextBuilder.Build(pShapeTreeChild); var transformGroup = pGroupShape.GroupShapeProperties.TransformGroup; var innerTransform = new NonPlaceholderTransform(transformGroup); var groupShape = new SlideGroupShape(innerTransform, spContext, groupedShapes, pGroupShape, slide); return(groupShape); } return(Successor?.Create(pShapeTreeChild, slide)); }
/// <summary> /// Creates shape from child element of the <see cref="P.ShapeTree" /> element. /// </summary> public abstract IShape Create(OpenXmlCompositeElement pShapeTreeChild, SCSlide slide);