Ejemplo n.º 1
0
 public Builder(IPreSettings preSettings, PlaceholderFontService fontService, SlidePart sdkSldPart, IPlaceholderService placeholderService)
 {
     _preSettings        = preSettings ?? throw new ArgumentNullException(nameof(preSettings));
     _fontService        = fontService ?? throw new ArgumentNullException(nameof(fontService));
     _sdkSldPart         = sdkSldPart ?? throw new ArgumentNullException(nameof(sdkSldPart));
     _placeholderService = placeholderService;
 }
Ejemplo n.º 2
0
        public IList <ShapeEx> FromSldPart(SlidePart sdkSldPart)
        {
            var sldPhFontService    = new PlaceholderFontService(sdkSldPart); //TODO: make DI
            var phService           = new PlaceholderService(sdkSldPart.SlideLayoutPart);
            var transformFactory    = new LocationParser(phService);
            var geometryFactory     = new GeometryFactory(phService);
            var shapeContextBuilder = new ShapeContext.Builder(_preSettings, sldPhFontService, sdkSldPart);

            var chartGrFrameHandler  = new ChartGraphicFrameHandler(shapeContextBuilder, transformFactory);
            var tableGrFrameHandler  = new TableGraphicFrameHandler(shapeContextBuilder, transformFactory);
            var oleGrFrameHandler    = new OleGraphicFrameHandler(shapeContextBuilder, transformFactory);
            var sdkShapeHandler      = new SdkShapeHandler(shapeContextBuilder, transformFactory, geometryFactory);
            var pictureHandler       = new PictureHandler(shapeContextBuilder, transformFactory, geometryFactory, sdkSldPart);
            var sdkGroupShapeHandler = new SdkGroupShapeHandler(shapeContextBuilder, transformFactory, geometryFactory, sdkSldPart);

            sdkShapeHandler.Successor      = sdkGroupShapeHandler;
            sdkGroupShapeHandler.Successor = oleGrFrameHandler;
            // OLE objects handler must be before pictures handler, cause OLE container can contain p:pic elements,
            // thereby defining OLE as a picture
            oleGrFrameHandler.Successor   = pictureHandler;
            pictureHandler.Successor      = chartGrFrameHandler;
            chartGrFrameHandler.Successor = tableGrFrameHandler;

            var sdkShapeTree = sdkSldPart.Slide.CommonSlideData.ShapeTree;
            var shapes       = new List <ShapeEx>(sdkShapeTree.Count());

            foreach (var openXmlElement in sdkShapeTree)
            {
                var shape = sdkShapeHandler.Create(openXmlElement);
                if (shape != null)
                {
                    shapes.Add(shape);
                }
            }

            return(shapes);
        }
Ejemplo n.º 3
0
 public Builder(IPreSettings preSettings, PlaceholderFontService fontService, SlidePart sdkSldPart) :
     this(preSettings, fontService, sdkSldPart, new PlaceholderService(sdkSldPart.SlideLayoutPart))
 {
 }
Ejemplo n.º 4
0
 public Builder(IPreSettings preSettings, PlaceholderFontService fontService, SlidePart sdkSldPart)
 {
     _preSettings = preSettings;
     _fontService = fontService;
     _sdkSldPart  = sdkSldPart;
 }