Exemple #1
0
        internal static Slide InsertSlide(this PresentationPart presentationPart, string layoutName)
        {
            UInt32 slideId = 256U;

            slideId += Convert.ToUInt32(presentationPart.Presentation.SlideIdList.Count());

            Slide slide = new Slide(new CommonSlideData(new ShapeTree()));

            SlidePart sPart = presentationPart.AddNewPart <SlidePart>();

            slide.Save(sPart);

            SlideMasterPart smPart = presentationPart.SlideMasterParts.First();
            SlideLayoutPart slPart = smPart.SlideLayoutParts.SingleOrDefault
                                         (sl => sl.SlideLayout.CommonSlideData.Name.Value.Equals(layoutName));

            if (slPart == null)
            {
                throw new Exception("The slide layout " + layoutName + " is not found");
            }
            sPart.AddPart <SlideLayoutPart>(slPart);

            sPart.Slide.CommonSlideData = (CommonSlideData)smPart.SlideLayoutParts.SingleOrDefault(
                sl => sl.SlideLayout.CommonSlideData.Name.Value.Equals(layoutName)).SlideLayout.CommonSlideData.Clone();

            SlideId newSlideId = presentationPart.Presentation.SlideIdList.AppendChild <SlideId>(new SlideId());

            newSlideId.Id             = slideId;
            newSlideId.RelationshipId = presentationPart.GetIdOfPart(sPart);

            return(GetSlideByRelationshipId(presentationPart, newSlideId.RelationshipId));
        }
Exemple #2
0
        private Slide insertSlide(PresentationPart presentationPart, string layoutName)
        {
            UInt32          slideId         = 256U;
            var             slideIdList     = presentationPart.Presentation.SlideIdList;
            SlideMasterPart slideMasterPart = presentationPart.SlideMasterParts.First();
            SlideLayoutPart slideLayoutPart = slideMasterPart.SlideLayoutParts.First();

            if (slideIdList == null)
            {
                presentationPart.Presentation.SlideIdList = new SlideIdList();
                slideIdList = presentationPart.Presentation.SlideIdList;
            }

            slideId += Convert.ToUInt32(slideIdList.Count());
            Slide     slide     = new Slide(new CommonSlideData(new ShapeTree()));
            SlidePart slidePart = presentationPart.AddNewPart <SlidePart>();

            slide.Save(slidePart);

            slidePart.AddPart <SlideLayoutPart>(slideLayoutPart);
            slidePart.Slide.CommonSlideData = (CommonSlideData)slideLayoutPart.SlideLayout.CommonSlideData.Clone();
            SlideId newSlideId = presentationPart.Presentation.SlideIdList.AppendChild <SlideId>(new SlideId());

            newSlideId.Id             = slideId;
            newSlideId.RelationshipId = presentationPart.GetIdOfPart(slidePart);

            return(getSlideByRelationShipId(presentationPart, newSlideId.RelationshipId));
        }
Exemple #3
0
        internal static void AppendSlideMaster(PresentationPart presentationPart, SlideMaster slideMaster, IEnumerable <SlideLayout> slideLayouts)
        {
            // append a new SlideMasterPart
            SlideMasterPart slideMasterPart = presentationPart.AddNewPartDefaultId <SlideMasterPart>();

            // clear SlideLayoutIdList and rebuild it
            slideMaster.SlideLayoutIdList = new SlideLayoutIdList();

            foreach (SlideLayout slideLayout in slideLayouts)
            {
                SlideLayoutPart slideLayoutPart = slideMasterPart.AddNewPartDefaultId <SlideLayoutPart>(out string slideLayoutPartId);
                slideLayoutPart.CreateRelationshipToPartDefaultId(slideMasterPart);
                slideLayout.Save(slideLayoutPart);

                // add to SlideLayoutIdList
                slideMaster.SlideLayoutIdList.AppendChild(new SlideLayoutId()
                {
                    Id             = slideMaster.SlideLayoutIdList.Elements <SlideLayoutId>().Select(sl => sl.Id.Value).DefaultIfEmpty(2147483648u).Max() + 1,
                    RelationshipId = slideMasterPart.GetIdOfPart(slideLayoutPart)
                });
            }

            slideMasterPart.CreateRelationshipToPartDefaultId(presentationPart.ThemePart);
            slideMaster.Save(slideMasterPart);

            AddSlideMasterToSlideMasterIdList(presentationPart, slideMasterPart);
        }
Exemple #4
0
 internal static SlideLayout[] ExtractSlideLayouts(SlideMasterPart slideMasterPart)
 {
     return(slideMasterPart.SlideMaster.SlideLayoutIdList
            .Elements <SlideLayoutId>()
            .Select(id => (slideMasterPart.GetPartById(id.RelationshipId) as SlideLayoutPart).SlideLayout)
            .ToArray());
 }
Exemple #5
0
        public static ThemePart CreateTheme(SlideMasterPart slideMasterPart1)
        {
            ThemePart themePart1 = slideMasterPart1.AddNewPart <ThemePart>("rId12");

            GeneratePartContent(themePart1);
            return(themePart1);
        }
        public SlideLayoutPart AddLayoutPartWithInstanceId(UInt32 instanceId)
        {
            SlideMasterPart masterPart = _ctx.GetOrCreateMasterMappingByMasterId(this.MasterId).MasterPart;
            SlideLayoutPart layoutPart = masterPart.AddSlideLayoutPart();

            this.InstanceIdToLayoutPart.Add(instanceId, layoutPart);
            return(layoutPart);
        }
Exemple #7
0
        public static void Copy(Stream sourcePresentationStream, uint copiedSlidePosition, Stream destPresentationStream)
        {
            using (var destDoc = PresentationDocument.Open(destPresentationStream, true))
            {
                var sourceDoc            = PresentationDocument.Open(sourcePresentationStream, false);
                var destPresentationPart = destDoc.PresentationPart;
                var destPresentation     = destPresentationPart.Presentation;

                //_uniqueId = GetMaxIdFromChild(destPresentation.SlideMasterIdList);
                //uint maxId = GetMaxIdFromChild(destPresentation.SlideIdList);

                var sourcePresentationPart = sourceDoc.PresentationPart;
                var sourcePresentation     = sourcePresentationPart.Presentation;

                int copiedSlideIndex = (int)--copiedSlidePosition;

                int countSlidesInSourcePresentation = sourcePresentation.SlideIdList.Count();
                if (copiedSlideIndex < 0 || copiedSlideIndex >= countSlidesInSourcePresentation)
                {
                    throw new ArgumentOutOfRangeException(nameof(copiedSlidePosition));
                }

                SlideId   copiedSlideId   = sourcePresentationPart.Presentation.SlideIdList.ChildElements[copiedSlideIndex] as SlideId;
                SlidePart copiedSlidePart = sourcePresentationPart.GetPartById(copiedSlideId.RelationshipId) as SlidePart;

                SlidePart addedSlidePart = destPresentationPart.AddPart <SlidePart>(copiedSlidePart);

                SlideMasterPart addedSlideMasterPart = destPresentationPart.AddPart(addedSlidePart.SlideLayoutPart.SlideMasterPart);


                //// Create new slide ID
                //maxId++;
                //SlideId slideId = new SlideId
                //{
                //    Id = maxId,
                //    RelationshipId = destDoc.PresentationPart.GetIdOfPart(addedSlidePart)
                //};
                //destPresentation.SlideIdList.Append(slideId);

                //// Create new master slide ID
                //_uniqueId++;
                //SlideMasterId slideMaterId = new SlideMasterId
                //{
                //    Id = _uniqueId,
                //    RelationshipId = destDoc.PresentationPart.GetIdOfPart(addedSlideMasterPart)
                //};
                //destDoc.PresentationPart.Presentation.SlideMasterIdList.Append(slideMaterId);

                // change slide layout ID
                FixSlideLayoutIds(destDoc.PresentationPart);

                destDoc.PresentationPart.Presentation.Save();
            }
            sourcePresentationStream.Close();
            destPresentationStream.Close();
        }
        private static List <SlidePart> CreateImageSlideParts(PresentationPart presentationPart, List <SvgDocument> svgDocs)
        {
            int           id = 256;
            string        relId;
            SlideId       newSlideId;
            SlideLayoutId newSlideLayoutId;
            uint          uniqueId   = GetMaxUniqueId(presentationPart);
            uint          maxSlideId = GetMaxSlideId(presentationPart.Presentation.SlideIdList);
            // get first slide master part: template
            SlideMasterPart slideMasterPart = presentationPart.SlideMasterParts.First();

            List <SlidePart> slideParts = new List <SlidePart>();

            for (int i = 0; i < svgDocs.Count; i++)
            {
                id++;
                using (MemoryStream ms = new MemoryStream())
                {
                    using (System.Drawing.Bitmap image = svgDocs[i].Draw())
                    {
                        image.Save(ms, ImageFormat.Bmp);
                        ms.Seek(0, SeekOrigin.Begin);
                        relId = "rId" + id;
                        // add new slide part
                        SlidePart slidePart = presentationPart.AddNewPart <SlidePart>(relId);

                        // add image part to slide part
                        ImagePart imagePart = slidePart.AddImagePart(ImagePartType.Bmp, relId);
                        imagePart.FeedData(ms);
                        // add image slide
                        CreateImageSlide(relId).Save(slidePart);

                        // add slide layout part to slide part
                        SlideLayoutPart slideLayoutPart = slidePart.AddNewPart <SlideLayoutPart>();
                        CreateSlideLayoutPart().Save(slideLayoutPart);
                        slideMasterPart.AddPart(slideLayoutPart);
                        slideLayoutPart.AddPart(slideMasterPart);

                        uniqueId++;
                        newSlideLayoutId = new SlideLayoutId();
                        newSlideLayoutId.RelationshipId = slideMasterPart.GetIdOfPart(slideLayoutPart);
                        newSlideLayoutId.Id             = uniqueId;
                        slideMasterPart.SlideMaster.SlideLayoutIdList.Append(newSlideLayoutId);

                        // add slide part to presentaion slide list
                        maxSlideId++;
                        newSlideId = new SlideId();
                        newSlideId.RelationshipId = relId;
                        newSlideId.Id             = maxSlideId;
                        presentationPart.Presentation.SlideIdList.Append(newSlideId);
                    }
                }
            }
            slideMasterPart.SlideMaster.Save();
            return(slideParts);
        }
Exemple #9
0
        /// <summary>
        /// Lấy chủ đề
        /// </summary>
        /// <param name="design"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        public ETheme GetETheme(pp.Design design, int count)
        {
            ETheme etheme = new ETheme();

            etheme.Name      = design.Name;
            etheme.ID        = ObjectElementsHelper.RandomString(10);
            etheme.ThemeName = design.Name;
            EColorManagment eColorManagment = new EColorManagment();

            eColorManagment     = GetEColorManagment(design.SlideMaster.Theme.ThemeColorScheme);
            etheme.Colors       = eColorManagment;
            etheme.SelectedFont = GetFontTheme(design.SlideMaster.Theme.ThemeFontScheme);
            ESlideMaster eSlideMaster = new ESlideMaster();

            eSlideMaster.ThemesName = etheme.Name;
            eSlideMaster.Name       = etheme.Name;
            eSlideMaster.MainLayer  = new PageLayer();
            SlideMasterPart slideMasterPart = GetSlideMasterPart(count);

            eSlideMaster.MainLayer.Background = GetFillColorSlideMaster(design.SlideMaster.Background.Fill, slideMasterPart.SlideMaster?.CommonSlideData, slideMasterPart);
            eSlideMaster.ID = ObjectElementsHelper.RandomString(12);
            foreach (pp.Shape shape in design.SlideMaster.Shapes)
            {
                eSlideMaster.MainLayer.Children.Add(GetShape(shape, shape.Type, design.SlideMaster.TimeLine, slideMasterPart));
            }
            SetIsBackgroundShape(eSlideMaster.MainLayer);

            int countLayoutMaster = 0;

            foreach (pp.CustomLayout layout in design.SlideMaster.CustomLayouts)
            {
                SlideLayoutPart slideLayoutPart = GetSlideLayoutPart(countLayoutMaster++, slideMasterPart);
                ELayoutMaster   eLayoutMaster   = new ELayoutMaster();
                eLayoutMaster.ID                   = ObjectElementsHelper.RandomString(13);
                eLayoutMaster.MainLayer            = new PageLayer();
                eLayoutMaster.MainLayer.Background = GetFillColorSlideMaster(layout.Background.Fill, slideLayoutPart.SlideLayout?.CommonSlideData, slideLayoutPart);
                if (eLayoutMaster.MainLayer.Background == null)
                {
                    eLayoutMaster.MainLayer.Background = eSlideMaster.MainLayer.Background;
                }
                foreach (pp.Shape shape in layout.Shapes)
                {
                    eLayoutMaster.MainLayer.Children.Add(GetShape(shape, shape.Type, design.SlideMaster.TimeLine, slideLayoutPart));
                }
                SetIsBackgroundShape(eLayoutMaster.MainLayer);
                eLayoutMaster.SlideName        = layout.Name;
                eLayoutMaster.LayoutName       = layout.Name;
                eLayoutMaster.IsHideBackground = layout.DisplayMasterShapes != MsoTriState.msoTrue;

                eSlideMaster.LayoutMasters.Add(eLayoutMaster);
            }

            etheme.SlideMasters.Add(eSlideMaster);
            return(etheme);
        }
Exemple #10
0
        static void Main(string[] args)
        {
            int copiedSlidePosition = 1;

            using (PresentationDocument destDoc = PresentationDocument.Open(@"C:\a.pptx", true))
            {
                using (var sourceDoc = PresentationDocument.Open(@"C:\b.pptx", false))
                {
                    var destPresentationPart = destDoc.PresentationPart;
                    var destPresentation     = destPresentationPart.Presentation;

                    var sourcePresentationPart          = sourceDoc.PresentationPart;
                    var sourcePresentation              = sourcePresentationPart.Presentation;
                    int countSlidesInSourcePresentation = sourcePresentation.SlideIdList.Count();

                    int copiedSlideIndex = (int)--copiedSlidePosition;

                    if (copiedSlideIndex < 0 || copiedSlideIndex >= countSlidesInSourcePresentation)
                    {
                        throw new ArgumentOutOfRangeException(nameof(copiedSlidePosition));
                    }

                    SlideId   copiedSlideId   = sourcePresentationPart.Presentation.SlideIdList.ChildElements[copiedSlideIndex] as SlideId;
                    SlidePart copiedSlidePart = sourcePresentationPart.GetPartById(copiedSlideId.RelationshipId) as SlidePart;

                    SlidePart addedSlidePart = destPresentationPart.AddPart <SlidePart>(copiedSlidePart);

                    SlideMasterPart addedSlideMasterPart = destPresentationPart.AddPart(addedSlidePart.SlideLayoutPart.SlideMasterPart);

                    UInt32  maxId   = 1;
                    SlideId slideId = new SlideId
                    {
                        Id             = maxId,
                        RelationshipId = destDoc.PresentationPart.GetIdOfPart(addedSlidePart)
                    };
                    destPresentation.SlideIdList.Append(slideId);

                    // Create new master slide ID
                    UInt32 _uniqueId = 1;

                    SlideMasterId slideMaterId = new SlideMasterId
                    {
                        Id             = _uniqueId,
                        RelationshipId = destDoc.PresentationPart.GetIdOfPart(addedSlideMasterPart)
                    };
                    destDoc.PresentationPart.Presentation.SlideMasterIdList.Append(slideMaterId);

                    // change slide layout ID
                    FixSlideLayoutIds(destDoc.PresentationPart);

                    destDoc.PresentationPart.Presentation.Save();
                }
            }
        }
Exemple #11
0
        internal static void AppendSlideMasterFromPart(PresentationPart presentationPart, PresentationPart sourcePresentationPart, SlideMasterPart themeSlideMasterPart)
        {
            SlideMasterPart slideMasterPart = presentationPart.AddPart(themeSlideMasterPart, presentationPart.GetNextRelationshipId());

            AddSlideMasterToSlideMasterIdList(presentationPart, slideMasterPart);

            /*IDictionary<OpenXmlPart, OpenXmlPart> mapping = new Dictionary<OpenXmlPart, OpenXmlPart>()
             * {
             *  { sourcePresentationPart, presentationPart }
             * };
             *
             * CopyPartRecursive(presentationPart, sourcePresentationPart.ThemePart, presentationPart.GetNextRelationshipId(), mapping);*/
        }
        public SlideLayoutPart GetOrCreateLayoutPartForTitleMasterId(UInt32 titleMasterId)
        {
            SlideMasterPart masterPart = _ctx.GetOrCreateMasterMappingByMasterId(this.MasterId).MasterPart;

            if (!this.TitleMasterIdToLayoutPart.ContainsKey(titleMasterId))
            {
                Slide           titleMaster = _ctx.Ppt.FindMasterRecordById(titleMasterId);
                SlideLayoutPart layoutPart  = masterPart.AddSlideLayoutPart();
                new TitleMasterMapping(_ctx, layoutPart).Apply(titleMaster);
                this.TitleMasterIdToLayoutPart.Add(titleMasterId, layoutPart);
            }

            return(this.TitleMasterIdToLayoutPart[titleMasterId]);
        }
Exemple #13
0
        private void insert(PresentationPart presentationPart, List <String> imgList)
        {
            int  idx        = 1;
            uint uid        = UInt32.MaxValue;
            var  slideParts = presentationPart.SlideParts;

            string            slideMasterRid    = "rId" + idx;
            SlideMasterIdList slideMasterIdList = new SlideMasterIdList(new SlideMasterId()
            {
                Id = uid, RelationshipId = slideMasterRid
            });
            SlideIdList slideIdList = new SlideIdList();
            SlideSize   slideSize   = new SlideSize()
            {
                Cx = 9144000, Cy = 6858000, Type = SlideSizeValues.Screen4x3
            };
            NotesSize notesSize = new NotesSize()
            {
                Cx = 6858000, Cy = 9144000
            };
            DefaultTextStyle defaultTextStyle = new DefaultTextStyle();

            presentationPart.Presentation.Append(slideMasterIdList, slideIdList, slideSize, notesSize, defaultTextStyle);

            SlideLayoutPart layoutPart = null;
            SlideMasterPart masterPart = null;
            ThemePart       themePart  = null;

            foreach (string imgPath in imgList)
            {
                String imgIdx   = "rId" + (900 + idx);
                String slideIdx = "rId" + (idx + 1);
                String themeIdx = "rId" + (idx + 4);

                var slidePart = CreateSlidePart(presentationPart, slideIdx, uid = uid - 10);
                if (null == layoutPart)
                {
                    layoutPart = CreateSlideLayoutPart(slidePart, slideMasterRid, uid = uid - 10);
                    masterPart = CreateSlideMasterPart(layoutPart, slideMasterRid, uid = uid - 10);
                    themePart  = CreateTheme(masterPart, themeIdx);
                    masterPart.AddPart(layoutPart, slideMasterRid);
                    presentationPart.AddPart(masterPart, slideMasterRid);
                    presentationPart.AddPart(themePart, themeIdx);
                }

                //insert(slidePart, imgPath, imgIdx, uid = uid - 10);
                idx += 5;
            }
            presentationPart.Presentation.Save();
        }
        private static SlideMasterPart CreateSlideMasterPart(SlideLayoutPart slideLayoutPart1)
        {
            SlideMasterPart slideMasterPart1 = slideLayoutPart1.AddNewPart <SlideMasterPart>("rId1");
            SlideMaster     slideMaster      = new SlideMaster(
                new CommonSlideData(new ShapeTree(
                                        new P.NonVisualGroupShapeProperties(
                                            new P.NonVisualDrawingProperties()
            {
                Id = (UInt32Value)1U, Name = ""
            },
                                            new P.NonVisualGroupShapeDrawingProperties(),
                                            new ApplicationNonVisualDrawingProperties()),
                                        new GroupShapeProperties(new TransformGroup()),
                                        new P.Shape(
                                            new P.NonVisualShapeProperties(
                                                new P.NonVisualDrawingProperties()
            {
                Id = (UInt32Value)2U, Name = "Title Placeholder 1"
            },
                                                new P.NonVisualShapeDrawingProperties(new ShapeLocks()
            {
                NoGrouping = true
            }),
                                                new ApplicationNonVisualDrawingProperties(new PlaceholderShape()
            {
                Type = PlaceholderValues.Title
            })),
                                            new P.ShapeProperties(),
                                            new P.TextBody(
                                                new BodyProperties(),
                                                new ListStyle(),
                                                new Paragraph(new D.Run(new D.Text()
            {
                Text = "Create slide Master This presentation has been created by Kashish Jhaveri"
            })))))),
                new P.ColorMap()
            {
                Background1 = D.ColorSchemeIndexValues.Light1, Text1 = D.ColorSchemeIndexValues.Dark1, Background2 = D.ColorSchemeIndexValues.Light2, Text2 = D.ColorSchemeIndexValues.Dark2, Accent1 = D.ColorSchemeIndexValues.Accent1, Accent2 = D.ColorSchemeIndexValues.Accent2, Accent3 = D.ColorSchemeIndexValues.Accent3, Accent4 = D.ColorSchemeIndexValues.Accent4, Accent5 = D.ColorSchemeIndexValues.Accent5, Accent6 = D.ColorSchemeIndexValues.Accent6, Hyperlink = D.ColorSchemeIndexValues.Hyperlink, FollowedHyperlink = D.ColorSchemeIndexValues.FollowedHyperlink
            },
                new SlideLayoutIdList(new SlideLayoutId()
            {
                Id = (UInt32Value)2147483649U, RelationshipId = "rId1"
            }),
                new TextStyles(new TitleStyle(), new BodyStyle(), new OtherStyle()));

            slideMasterPart1.SlideMaster = slideMaster;

            return(slideMasterPart1);
        }
        public SlideLayoutPart GetOrCreateLayoutPartByCode(string xml)
        {
            SlideMasterPart masterPart = _ctx.GetOrCreateMasterMappingByMasterId(this.MasterId).MasterPart;

            if (!this.CodeToLayoutPart.ContainsKey(xml))
            {
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xml);

                SlideLayoutPart layoutPart = masterPart.AddSlideLayoutPart();
                doc.WriteTo(layoutPart.XmlWriter);
                layoutPart.XmlWriter.Flush();
                CodeToLayoutPart.Add(xml, layoutPart);
            }

            return(CodeToLayoutPart[xml]);
        }
Exemple #16
0
        private static SlideMasterPart CreateSlideMasterPart(SlideLayoutPart slideLayoutPart1)
        {
            SlideMasterPart slideMasterPart1 = slideLayoutPart1.AddNewPart <SlideMasterPart>("rId1");

            P.SlideMaster slideMaster = new P.SlideMaster(
                new P.CommonSlideData(new P.ShapeTree(
                                          new P.NonVisualGroupShapeProperties(
                                              new P.NonVisualDrawingProperties()
            {
                Id = 1U, Name = string.Empty
            },
                                              new P.NonVisualGroupShapeDrawingProperties(),
                                              new P.ApplicationNonVisualDrawingProperties()),
                                          new P.GroupShapeProperties(new D.TransformGroup()),
                                          new P.Shape(
                                              new P.NonVisualShapeProperties(
                                                  new P.NonVisualDrawingProperties()
            {
                Id = 2U, Name = "Title Placeholder 1"
            },
                                                  new P.NonVisualShapeDrawingProperties(new D.ShapeLocks()
            {
                NoGrouping = true
            }),
                                                  new P.ApplicationNonVisualDrawingProperties(new P.PlaceholderShape()
            {
                Type = P.PlaceholderValues.Title
            })),
                                              new P.ShapeProperties(),
                                              new P.TextBody(
                                                  new D.BodyProperties(),
                                                  new D.ListStyle(),
                                                  new D.Paragraph())))),
                new P.ColorMap()
            {
                Background1 = D.ColorSchemeIndexValues.Light1, Text1 = D.ColorSchemeIndexValues.Dark1, Background2 = D.ColorSchemeIndexValues.Light2, Text2 = D.ColorSchemeIndexValues.Dark2, Accent1 = D.ColorSchemeIndexValues.Accent1, Accent2 = D.ColorSchemeIndexValues.Accent2, Accent3 = D.ColorSchemeIndexValues.Accent3, Accent4 = D.ColorSchemeIndexValues.Accent4, Accent5 = D.ColorSchemeIndexValues.Accent5, Accent6 = D.ColorSchemeIndexValues.Accent6, Hyperlink = D.ColorSchemeIndexValues.Hyperlink, FollowedHyperlink = D.ColorSchemeIndexValues.FollowedHyperlink
            },
                new P.SlideLayoutIdList(new P.SlideLayoutId()
            {
                Id = 2147483649U, RelationshipId = "rId1"
            }),
                new P.TextStyles(new P.TitleStyle(), new P.BodyStyle(), new P.OtherStyle()));
            slideMasterPart1.SlideMaster = slideMaster;

            return(slideMasterPart1);
        }
Exemple #17
0
        private static SlideMasterPart CreateSlideMasterPart(SlideLayoutPart slideLayoutPart, string masterIdx, uint uid)
        {
            SlideMasterPart slideMasterPart = slideLayoutPart.AddNewPart <SlideMasterPart>(masterIdx);
            SlideMaster     slideMaster     = new SlideMaster(new CommonSlideData(new ShapeTree(new ShapeTree(
                                                                                                    new P.NonVisualGroupShapeProperties(
                                                                                                        new P.NonVisualDrawingProperties()
            {
                Id = (UInt32Value)1U, Name = ""
            },
                                                                                                        new P.NonVisualGroupShapeDrawingProperties(),
                                                                                                        new ApplicationNonVisualDrawingProperties()),
                                                                                                    new GroupShapeProperties(new TransformGroup())))));

            slideMasterPart.SlideMaster = slideMaster;

            return(slideMasterPart);
        }
        /// <summary>
        /// Insert a new Slide into PowerPoint
        /// </summary>
        /// <param name="presentationPart">Presentation Part</param>
        /// <param name="layoutName">Layout of the new Slide</param>
        /// <returns>Slide Instance</returns>
        public Slide InsertSlide(PresentationPart presentationPart, string layoutName)
        {
            UInt32 slideId = 256U;

            // Get the Slide Id collection of the presentation document
            var slideIdList = presentationPart.Presentation.SlideIdList;

            if (slideIdList == null)
            {
                throw new NullReferenceException("The number of slide is empty, please select a ppt with a slide at least again");
            }

            slideId += Convert.ToUInt32(slideIdList.Count());

            // Creates a Slide instance and adds its children.
            Slide slide = new Slide(new CommonSlideData(new ShapeTree()));

            SlidePart slidePart = presentationPart.AddNewPart <SlidePart>();

            slide.Save(slidePart);

            // Get SlideMasterPart and SlideLayoutPart from the existing Presentation Part
            SlideMasterPart slideMasterPart = presentationPart.SlideMasterParts.First();
            SlideLayoutPart slideLayoutPart = slideMasterPart.SlideLayoutParts.SingleOrDefault
                                                  (sl => sl.SlideLayout.CommonSlideData.Name.Value.Equals(layoutName, StringComparison.OrdinalIgnoreCase));

            if (slideLayoutPart == null)
            {
                throw new Exception("The slide layout " + layoutName + " is not found");
            }

            slidePart.AddPart <SlideLayoutPart>(slideLayoutPart);

            slidePart.Slide.CommonSlideData = (CommonSlideData)slideMasterPart.SlideLayoutParts.SingleOrDefault(
                sl => sl.SlideLayout.CommonSlideData.Name.Value.Equals(layoutName)).SlideLayout.CommonSlideData.Clone();

            // Create SlideId instance and Set property
            SlideId newSlideId = presentationPart.Presentation.SlideIdList.AppendChild <SlideId>(new SlideId());

            newSlideId.Id             = slideId;
            newSlideId.RelationshipId = presentationPart.GetIdOfPart(slidePart);

            return(GetSlideByRelationShipId(presentationPart, newSlideId.RelationshipId));
        }
Exemple #19
0
        public static void CreatePresentationPart(PresentationPart part, PPTXSetting FileSettings, PPTXSlideLayoutGroup SlideLayouts)
        {
            var partCreator = new DefaultPresentationPart();

            partCreator._CreatePresentationPart(part);

            SlidePart slidePart1 = DefaultSlidePart.CreateSlidePart(part, "rId2", FileSettings);

            // 1枚目のスライド追加
            var topLayoutPart = new SlideLayout_TitleSlide();

            topLayoutPart.Init(EPPTXSlideLayoutType.TitleSlide, SlideLayouts);
            SlideLayoutPart slideLayoutPart1 = topLayoutPart.CreateSlideLayoutPart(slidePart1);
            SlideMasterPart slideMasterPart1 = DefaultSlideMasterPart.CreateSlideMasterPart(slideLayoutPart1, "rId1");
            ThemePart       themePart1       = DefaultTheme.CreateTheme(slideMasterPart1);

            slideMasterPart1.AddPart(slideLayoutPart1, "rId1");
            part.AddPart(slideMasterPart1, "rId1");
            part.AddPart(themePart1, "rId5");

            // 残りのスライドレイアウトを追加
            foreach (EPPTXSlideLayoutType layoutType in Enum.GetValues(typeof(EPPTXSlideLayoutType)))
            {
                if (layoutType == EPPTXSlideLayoutType.TitleSlide)
                {
                    continue;
                }

                var otherLayoutPartType = Type.GetType($"MDToPPTX.PPTX.DefaultParts.SlideLayouts.SlideLayout_{layoutType.ToString()}");
                if (otherLayoutPartType == null)
                {
                    continue;
                }
                SlideLayoutPartBase otherLayoutPart = Activator.CreateInstance(otherLayoutPartType) as SlideLayoutPartBase;
                if (otherLayoutPart != null)
                {
                    otherLayoutPart.Init(layoutType, SlideLayouts);
                    SlideLayoutPart otherSlideLayoutPart = otherLayoutPart.CreateSlideLayoutPart(slideMasterPart1);

                    otherSlideLayoutPart.AddPart(slideMasterPart1, "rId1");
                }
            }
        }
        public SlideLayoutPart GetOrCreateLayoutPartByLayoutType(SlideLayoutType type,
                                                                 PlaceholderEnum[] placeholderTypes)
        {
            SlideMasterPart masterPart     = _ctx.GetOrCreateMasterMappingByMasterId(this.MasterId).MasterPart;
            string          layoutFilename = Utils.SlideLayoutTypeToFilename(type, placeholderTypes);


            if (!this.LayoutFilenameToLayoutPart.ContainsKey(layoutFilename))
            {
                XmlDocument slideLayoutDoc = Utils.GetDefaultDocument("slideLayouts." + layoutFilename);

                SlideLayoutPart layoutPart = masterPart.AddSlideLayoutPart();
                slideLayoutDoc.WriteTo(layoutPart.XmlWriter);
                layoutPart.XmlWriter.Flush();

                this.LayoutFilenameToLayoutPart.Add(layoutFilename, layoutPart);
            }

            return(this.LayoutFilenameToLayoutPart[layoutFilename]);
        }
Exemple #21
0
 public SlideLayoutPart GetSlideLayoutPart(int _slideLayoutIndex, SlideMasterPart slideMasterPart)
 {
     if (slideMasterPart != null && slideMasterPart.SlideMaster != null)
     {
         SlideMaster slideMaster = slideMasterPart.SlideMaster;
         if (slideMaster.SlideLayoutIdList != null)
         {
             DocumentFormat.OpenXml.OpenXmlElementList slideIds = slideMaster.SlideLayoutIdList.ChildElements;
             // If the slide ID is in range...
             if (_slideLayoutIndex < slideIds.Count)
             {
                 // Get the relationship ID of the slide.
                 string slidePartRelationshipId = (slideIds[_slideLayoutIndex] as SlideLayoutId).RelationshipId;
                 return((SlideLayoutPart)slideMasterPart.GetPartById(slidePartRelationshipId));
                 // Get the specified slide part from the relationship ID.
             }
         }
     }
     return(null);
 }
Exemple #22
0
        public static void GetThemePart(int _slideIndex)
        {
            if (presentationPart != null && presentationPart.Presentation != null)
            {
                Presentation presentation = presentationPart.Presentation;
                if (presentation.SlideMasterIdList != null)
                {
                    DocumentFormat.OpenXml.OpenXmlElementList slideIds = presentation.SlideMasterIdList.ChildElements;

                    // If the slide ID is in range...
                    if (_slideIndex < slideIds.Count)
                    {
                        // Get the relationship ID of the slide.
                        string slidePartRelationshipId = (slideIds[_slideIndex] as SlideMasterId).RelationshipId;

                        // Get the specified slide part from the relationship ID.
                        themePart = (SlideMasterPart)presentationPart.GetPartById(slidePartRelationshipId);
                    }
                }
            }
        }
Exemple #23
0
        internal static Slide InsertSlide(this PresentationPart presentationPart, string layoutName)
        {
            //1) create the slide
            Slide slide = new Slide(new CommonSlideData(new ShapeTree()));

            ////2) specify non-visual properties of the new slide
            //NonVisualGroupShapeProperties nonVisualProperties = slide.CommonSlideData.ShapeTree.AppendChild(new NonVisualGroupShapeProperties());
            //nonVisualProperties.NonVisualDrawingProperties = new NonVisualDrawingProperties() { Id = 1, Name = "" };
            //nonVisualProperties.NonVisualGroupShapeDrawingProperties = new NonVisualGroupShapeDrawingProperties();
            //nonVisualProperties.ApplicationNonVisualDrawingProperties = new ApplicationNonVisualDrawingProperties();

            ////3) Specify the group shape properties of the new slide.
            //slide.CommonSlideData.ShapeTree.AppendChild(new GroupShapeProperties());

            //4) create slide part for the new slide inside the presentation part
            SlidePart sPart = presentationPart.AddNewPart <SlidePart>();

            slide.Save(sPart);

            //5) set the slidelayout
            SlideMasterPart smPart = presentationPart.SlideMasterParts.First();
            SlideLayoutPart slPart = smPart.SlideLayoutParts.SingleOrDefault(sl => sl.SlideLayout.CommonSlideData.Name.Value.Equals(layoutName));

            sPart.AddPart <SlideLayoutPart>(slPart);

            //sPart.CommonSlideData = (CommonSlideData)smPart.SlideLayoutParts.SingleOrDefault(
            //    sl => sl.SlideLayout.CommonSlideData.Name.Value.Equals(layoutName)).SlideLayout.CommonSlideData.Clone();

            //6) set the slideid
            UInt32 slideId = 256U;

            slideId += Convert.ToUInt32(presentationPart.Presentation.SlideIdList.Count());
            SlideId newSlideId = presentationPart.Presentation.SlideIdList.AppendChild <SlideId>(new SlideId());

            newSlideId.Id             = slideId;
            newSlideId.RelationshipId = presentationPart.GetIdOfPart(sPart);

            return(GetSlideByRelationshipId(presentationPart, newSlideId.RelationshipId));
        }
        private void CreateParts(PresentationDocument document, PresentationGenerationData data)
        {
            ExtendedFilePropertiesPart extendedFilePropertiesPart1 = document.AddNewPart <ExtendedFilePropertiesPart>("rId3");

            GenerateExtendedFilePropertiesPartHelper.GenerateExtendedFilePropertiesPart1Content(extendedFilePropertiesPart1);

            PresentationPart presentationPart1 = document.AddPresentationPart();

            GeneratePresentationPartHelper.GeneratePresentationPart1Content(presentationPart1);

            CommentAuthorsPart commentAuthorsPart1 = presentationPart1.AddNewPart <CommentAuthorsPart>("rId8");

            GenerateCommentAuthorsPartHelper.GenerateCommentAuthorsPart1Content(commentAuthorsPart1);

            CustomXmlPart customXmlPart1 = presentationPart1.AddNewPart <CustomXmlPart>("application/xml", "rId3");

            GenerateCustomXmlPartHelper.GenerateCustomXmlPart1Content(customXmlPart1);

            CustomXmlPropertiesPart customXmlPropertiesPart1 = customXmlPart1.AddNewPart <CustomXmlPropertiesPart>("rId1");

            GenerateCustomXmlPropertiesPartHelper.GenerateCustomXmlPropertiesPart1Content(customXmlPropertiesPart1);

            HandoutMasterPart handoutMasterPart1 = presentationPart1.AddNewPart <HandoutMasterPart>("rId7");

            GenerateHandoutMasterPartHelper.GenerateHandoutMasterPart1Content(handoutMasterPart1);

            ThemePart themePart1 = handoutMasterPart1.AddNewPart <ThemePart>("rId1");

            GenerateThemePartHelper.GenerateThemePart1Content(themePart1);

            TableStylesPart tableStylesPart1 = presentationPart1.AddNewPart <TableStylesPart>("rId12");

            GenerateTableStylesPartHelper.GenerateTableStylesPart1Content(tableStylesPart1);

            CustomXmlPart customXmlPart2 = presentationPart1.AddNewPart <CustomXmlPart>("application/xml", "rId2");

            GenerateCustomXmlPartHelper.GenerateCustomXmlPart2Content(customXmlPart2);

            CustomXmlPropertiesPart customXmlPropertiesPart2 = customXmlPart2.AddNewPart <CustomXmlPropertiesPart>("rId1");

            GenerateCustomXmlPropertiesPartHelper.GenerateCustomXmlPropertiesPart2Content(customXmlPropertiesPart2);

            CustomXmlPart customXmlPart3 = presentationPart1.AddNewPart <CustomXmlPart>("application/xml", "rId1");

            GenerateCustomXmlPartHelper.GenerateCustomXmlPart3Content(customXmlPart3);

            CustomXmlPropertiesPart customXmlPropertiesPart3 = customXmlPart3.AddNewPart <CustomXmlPropertiesPart>("rId1");

            GenerateCustomXmlPropertiesPartHelper.GenerateCustomXmlPropertiesPart3Content(customXmlPropertiesPart3);

            NotesMasterPart notesMasterPart1 = presentationPart1.AddNewPart <NotesMasterPart>("rId6");

            GenerateNotesMasterPartHelper.GenerateNotesMasterPart1Content(notesMasterPart1);

            ThemePart themePart2 = notesMasterPart1.AddNewPart <ThemePart>("rId1");

            GenerateThemePartHelper.GenerateThemePart2Content(themePart2);

            ThemePart themePart3 = presentationPart1.AddNewPart <ThemePart>("rId11");

            GenerateThemePartHelper.GenerateThemePart3Content(themePart3);

            SlidePart slidePart1 = presentationPart1.AddNewPart <SlidePart>("rId5");

            GenerateSlidePartHelper.GenerateSlidePart1Content(slidePart1, data);

            var pictureType = string.Empty;

            if (!string.IsNullOrEmpty(data.PictureType))
            {
                pictureType = data.PictureType;
            }
            else
            {
                pictureType = "image/png";
            }

            ImagePart imagePart1 = slidePart1.AddNewPart <ImagePart>(pictureType, "rId3");

            GenerateImagePartHelper.GenerateImagePart1Content(imagePart1, data.PictureContent);

            NotesSlidePart notesSlidePart1 = slidePart1.AddNewPart <NotesSlidePart>("rId2");

            GenerateNotesSlidePartHelper.GenerateNotesSlidePart1Content(notesSlidePart1);

            notesSlidePart1.AddPart(slidePart1, "rId2");

            notesSlidePart1.AddPart(notesMasterPart1, "rId1");

            SlideLayoutPart slideLayoutPart1 = slidePart1.AddNewPart <SlideLayoutPart>("rId1");

            GenerateSlideLayoutPartHelper.GenerateSlideLayoutPart1Content(slideLayoutPart1);

            SlideMasterPart slideMasterPart1 = slideLayoutPart1.AddNewPart <SlideMasterPart>("rId1");

            GenerateSlideMasterPartHelper.GenerateSlideMasterPart1Content(slideMasterPart1);

            SlideLayoutPart slideLayoutPart2 = slideMasterPart1.AddNewPart <SlideLayoutPart>("rId8");

            GenerateSlideLayoutPartHelper.GenerateSlideLayoutPart2Content(slideLayoutPart2);

            slideLayoutPart2.AddPart(slideMasterPart1, "rId1");

            ImagePart imagePart2 = slideMasterPart1.AddNewPart <ImagePart>("image/jpeg", "rId13");

            GenerateImagePartHelper.GenerateImagePart2Content(imagePart2);

            SlideLayoutPart slideLayoutPart3 = slideMasterPart1.AddNewPart <SlideLayoutPart>("rId3");

            GenerateSlideLayoutPartHelper.GenerateSlideLayoutPart3Content(slideLayoutPart3);

            slideLayoutPart3.AddPart(slideMasterPart1, "rId1");

            SlideLayoutPart slideLayoutPart4 = slideMasterPart1.AddNewPart <SlideLayoutPart>("rId7");

            GenerateSlideLayoutPartHelper.GenerateSlideLayoutPart4Content(slideLayoutPart4);

            slideLayoutPart4.AddPart(slideMasterPart1, "rId1");

            slideMasterPart1.AddPart(themePart3, "rId12");

            slideMasterPart1.AddPart(slideLayoutPart1, "rId2");

            SlideLayoutPart slideLayoutPart5 = slideMasterPart1.AddNewPart <SlideLayoutPart>("rId1");

            GenerateSlideLayoutPartHelper.GenerateSlideLayoutPart5Content(slideLayoutPart5);

            ImagePart imagePart3 = slideLayoutPart5.AddNewPart <ImagePart>("image/jpeg", "rId3");

            GenerateImagePartHelper.GenerateImagePart3Content(imagePart3);

            ImagePart imagePart4 = slideLayoutPart5.AddNewPart <ImagePart>("image/png", "rId2");

            GenerateImagePartHelper.GenerateImagePart4Content(imagePart4);

            slideLayoutPart5.AddPart(slideMasterPart1, "rId1");

            SlideLayoutPart slideLayoutPart6 = slideMasterPart1.AddNewPart <SlideLayoutPart>("rId6");

            GenerateSlideLayoutPartHelper.GenerateSlideLayoutPart6Content(slideLayoutPart6);

            slideLayoutPart6.AddPart(slideMasterPart1, "rId1");

            SlideLayoutPart slideLayoutPart7 = slideMasterPart1.AddNewPart <SlideLayoutPart>("rId11");

            GenerateSlideLayoutPartHelper.GenerateSlideLayoutPart7Content(slideLayoutPart7);

            slideLayoutPart7.AddPart(slideMasterPart1, "rId1");

            SlideLayoutPart slideLayoutPart8 = slideMasterPart1.AddNewPart <SlideLayoutPart>("rId5");

            GenerateSlideLayoutPartHelper.GenerateSlideLayoutPart8Content(slideLayoutPart8);

            slideLayoutPart8.AddPart(slideMasterPart1, "rId1");

            SlideLayoutPart slideLayoutPart9 = slideMasterPart1.AddNewPart <SlideLayoutPart>("rId10");

            GenerateSlideLayoutPartHelper.GenerateSlideLayoutPart9Content(slideLayoutPart9);

            slideLayoutPart9.AddPart(slideMasterPart1, "rId1");

            SlideLayoutPart slideLayoutPart10 = slideMasterPart1.AddNewPart <SlideLayoutPart>("rId4");

            GenerateSlideLayoutPartHelper.GenerateSlideLayoutPart10Content(slideLayoutPart10);

            slideLayoutPart10.AddPart(slideMasterPart1, "rId1");

            SlideLayoutPart slideLayoutPart11 = slideMasterPart1.AddNewPart <SlideLayoutPart>("rId9");

            GenerateSlideLayoutPartHelper.GenerateSlideLayoutPart11Content(slideLayoutPart11);

            slideLayoutPart11.AddPart(slideMasterPart1, "rId1");

            ViewPropertiesPart viewPropertiesPart1 = presentationPart1.AddNewPart <ViewPropertiesPart>("rId10");

            GenerateViewPropertiesPartHelper.GenerateViewPropertiesPart1Content(viewPropertiesPart1);

            presentationPart1.AddPart(slideMasterPart1, "rId4");

            PresentationPropertiesPart presentationPropertiesPart1 = presentationPart1.AddNewPart <PresentationPropertiesPart>("rId9");

            GeneratePresentationPropertiesPartHelper.GeneratePresentationPropertiesPart1Content(presentationPropertiesPart1);

            CustomFilePropertiesPart customFilePropertiesPart1 = document.AddNewPart <CustomFilePropertiesPart>("rId4");

            CustomFilePropertiesPartHelper.GenerateCustomFilePropertiesPart1Content(customFilePropertiesPart1);

            SetPackageProperties(document);
        }
        private static ThemePart CreateTheme(SlideMasterPart slideMasterPart1)
        {
            ThemePart themePart1 = slideMasterPart1.AddNewPart <ThemePart>("rId5");

            D.Theme theme1 = new D.Theme()
            {
                Name = "Office Theme"
            };

            D.ThemeElements themeElements1 = new D.ThemeElements(
                new D.ColorScheme(
                    new D.Dark1Color(new D.SystemColor()
            {
                Val = D.SystemColorValues.WindowText, LastColor = "000000"
            }),
                    new D.Light1Color(new D.SystemColor()
            {
                Val = D.SystemColorValues.Window, LastColor = "FFFFFF"
            }),
                    new D.Dark2Color(new D.RgbColorModelHex()
            {
                Val = "1F497D"
            }),
                    new D.Light2Color(new D.RgbColorModelHex()
            {
                Val = "EEECE1"
            }),
                    new D.Accent1Color(new D.RgbColorModelHex()
            {
                Val = "4F81BD"
            }),
                    new D.Accent2Color(new D.RgbColorModelHex()
            {
                Val = "C0504D"
            }),
                    new D.Accent3Color(new D.RgbColorModelHex()
            {
                Val = "9BBB59"
            }),
                    new D.Accent4Color(new D.RgbColorModelHex()
            {
                Val = "8064A2"
            }),
                    new D.Accent5Color(new D.RgbColorModelHex()
            {
                Val = "4BACC6"
            }),
                    new D.Accent6Color(new D.RgbColorModelHex()
            {
                Val = "F79646"
            }),
                    new D.Hyperlink(new D.RgbColorModelHex()
            {
                Val = "0000FF"
            }),
                    new D.FollowedHyperlinkColor(new D.RgbColorModelHex()
            {
                Val = "800080"
            }))
            {
                Name = "Office"
            },
                new D.FontScheme(
                    new D.MajorFont(
                        new D.LatinFont()
            {
                Typeface = "Calibri"
            },
                        new D.EastAsianFont()
            {
                Typeface = ""
            },
                        new D.ComplexScriptFont()
            {
                Typeface = ""
            }),
                    new D.MinorFont(
                        new D.LatinFont()
            {
                Typeface = "Calibri"
            },
                        new D.EastAsianFont()
            {
                Typeface = ""
            },
                        new D.ComplexScriptFont()
            {
                Typeface = ""
            }))
            {
                Name = "Office"
            },
                new D.FormatScheme(
                    new D.FillStyleList(
                        new D.SolidFill(new D.SchemeColor()
            {
                Val = D.SchemeColorValues.PhColor
            }),
                        new D.GradientFill(
                            new D.GradientStopList(
                                new D.GradientStop(new D.SchemeColor(new D.Tint()
            {
                Val = 50000
            },
                                                                     new D.SaturationModulation()
            {
                Val = 300000
            })
            {
                Val = D.SchemeColorValues.PhColor
            })
            {
                Position = 0
            },
                                new D.GradientStop(new D.SchemeColor(new D.Tint()
            {
                Val = 37000
            },
                                                                     new D.SaturationModulation()
            {
                Val = 300000
            })
            {
                Val = D.SchemeColorValues.PhColor
            })
            {
                Position = 35000
            },
                                new D.GradientStop(new D.SchemeColor(new D.Tint()
            {
                Val = 15000
            },
                                                                     new D.SaturationModulation()
            {
                Val = 350000
            })
            {
                Val = D.SchemeColorValues.PhColor
            })
            {
                Position = 100000
            }
                                ),
                            new D.LinearGradientFill()
            {
                Angle = 16200000, Scaled = true
            }),
                        new D.NoFill(),
                        new D.PatternFill(),
                        new D.GroupFill()),
                    new D.LineStyleList(
                        new D.Outline(
                            new D.SolidFill(
                                new D.SchemeColor(
                                    new D.Shade()
            {
                Val = 95000
            },
                                    new D.SaturationModulation()
            {
                Val = 105000
            })
            {
                Val = D.SchemeColorValues.PhColor
            }),
                            new D.PresetDash()
            {
                Val = D.PresetLineDashValues.Solid
            })
            {
                Width            = 9525,
                CapType          = D.LineCapValues.Flat,
                CompoundLineType = D.CompoundLineValues.Single,
                Alignment        = D.PenAlignmentValues.Center
            },
                        new D.Outline(
                            new D.SolidFill(
                                new D.SchemeColor(
                                    new D.Shade()
            {
                Val = 95000
            },
                                    new D.SaturationModulation()
            {
                Val = 105000
            })
            {
                Val = D.SchemeColorValues.PhColor
            }),
                            new D.PresetDash()
            {
                Val = D.PresetLineDashValues.Solid
            })
            {
                Width            = 9525,
                CapType          = D.LineCapValues.Flat,
                CompoundLineType = D.CompoundLineValues.Single,
                Alignment        = D.PenAlignmentValues.Center
            },
                        new D.Outline(
                            new D.SolidFill(
                                new D.SchemeColor(
                                    new D.Shade()
            {
                Val = 95000
            },
                                    new D.SaturationModulation()
            {
                Val = 105000
            })
            {
                Val = D.SchemeColorValues.PhColor
            }),
                            new D.PresetDash()
            {
                Val = D.PresetLineDashValues.Solid
            })
            {
                Width            = 9525,
                CapType          = D.LineCapValues.Flat,
                CompoundLineType = D.CompoundLineValues.Single,
                Alignment        = D.PenAlignmentValues.Center
            }),
                    new D.EffectStyleList(
                        new D.EffectStyle(
                            new D.EffectList(
                                new D.OuterShadow(
                                    new D.RgbColorModelHex(
                                        new D.Alpha()
            {
                Val = 38000
            })
            {
                Val = "000000"
            })
            {
                BlurRadius = 40000L, Distance = 20000L, Direction = 5400000, RotateWithShape = false
            })),
                        new D.EffectStyle(
                            new D.EffectList(
                                new D.OuterShadow(
                                    new D.RgbColorModelHex(
                                        new D.Alpha()
            {
                Val = 38000
            })
            {
                Val = "000000"
            })
            {
                BlurRadius = 40000L, Distance = 20000L, Direction = 5400000, RotateWithShape = false
            })),
                        new D.EffectStyle(
                            new D.EffectList(
                                new D.OuterShadow(
                                    new D.RgbColorModelHex(
                                        new D.Alpha()
            {
                Val = 38000
            })
            {
                Val = "000000"
            })
            {
                BlurRadius = 40000L, Distance = 20000L, Direction = 5400000, RotateWithShape = false
            }))),
                    new D.BackgroundFillStyleList(
                        new D.SolidFill(new D.SchemeColor()
            {
                Val = D.SchemeColorValues.PhColor
            }),
                        new D.GradientFill(
                            new D.GradientStopList(
                                new D.GradientStop(
                                    new D.SchemeColor(new D.Tint()
            {
                Val = 50000
            },
                                                      new D.SaturationModulation()
            {
                Val = 300000
            })
            {
                Val = D.SchemeColorValues.PhColor
            })
            {
                Position = 0
            },
                                new D.GradientStop(
                                    new D.SchemeColor(new D.Tint()
            {
                Val = 50000
            },
                                                      new D.SaturationModulation()
            {
                Val = 300000
            })
            {
                Val = D.SchemeColorValues.PhColor
            })
            {
                Position = 0
            },
                                new D.GradientStop(
                                    new D.SchemeColor(new D.Tint()
            {
                Val = 50000
            },
                                                      new D.SaturationModulation()
            {
                Val = 300000
            })
            {
                Val = D.SchemeColorValues.PhColor
            })
            {
                Position = 0
            }),
                            new D.LinearGradientFill()
            {
                Angle = 16200000, Scaled = true
            }),
                        new D.GradientFill(
                            new D.GradientStopList(
                                new D.GradientStop(
                                    new D.SchemeColor(new D.Tint()
            {
                Val = 50000
            },
                                                      new D.SaturationModulation()
            {
                Val = 300000
            })
            {
                Val = D.SchemeColorValues.PhColor
            })
            {
                Position = 0
            },
                                new D.GradientStop(
                                    new D.SchemeColor(new D.Tint()
            {
                Val = 50000
            },
                                                      new D.SaturationModulation()
            {
                Val = 300000
            })
            {
                Val = D.SchemeColorValues.PhColor
            })
            {
                Position = 0
            }),
                            new D.LinearGradientFill()
            {
                Angle = 16200000, Scaled = true
            })))
            {
                Name = "Office"
            });

            theme1.Append(themeElements1);
            theme1.Append(new D.ObjectDefaults());
            theme1.Append(new D.ExtraColorSchemeList());

            themePart1.Theme = theme1;
            return(themePart1);
        }
Exemple #26
0
        public PresentationDocument InsertSlidesFromTemplate(PresentationDocument target, PresentationDocument template, IList <string> slideRelationshipIdList)
        {
            if (target == null)
            {
                throw new ArgumentNullException("target");
            }

            if (template == null)
            {
                throw new ArgumentNullException("template");
            }

            uint maxSlideId = 256;

            var slideIdList      = target.PresentationPart.Presentation.SlideIdList;
            var presentationPart = target.PresentationPart;

            //Find the highest slide ID in the current list.
            foreach (SlideId slideId in slideIdList.ChildElements)
            {
                if (slideId.Id.Value > maxSlideId)
                {
                    maxSlideId = slideId.Id;
                }
            }

            presentationPart.Presentation.SlideMasterIdList.RemoveAllChildren();
            uint uniqueId = GetMaxIdFromChild(presentationPart.Presentation.SlideMasterIdList);

            //check what if relationshipids repeat?
            foreach (string slideRelationshipId in slideRelationshipIdList)
            {
                maxSlideId++;
                uniqueId++;

                //Create the slide part and copy the data from the first part
                var       templateSlide       = (SlidePart)template.PresentationPart.GetPartById(slideRelationshipId);
                var       newIdFromTemplateId = string.Format("source{0}", slideRelationshipId);
                SlidePart newSlidePart        = presentationPart.AddPart(templateSlide, newIdFromTemplateId);

                if (newSlidePart.SlideLayoutPart != null)
                {
                    SlideMasterPart destMasterPart = newSlidePart.SlideLayoutPart.SlideMasterPart;
                    presentationPart.AddPart(destMasterPart);

                    SlideMasterId newSlideMasterId = new SlideMasterId();
                    newSlideMasterId.RelationshipId = presentationPart.GetIdOfPart(destMasterPart);
                    newSlideMasterId.Id             = uniqueId;

                    presentationPart.Presentation.SlideMasterIdList.Append(newSlideMasterId);
                }

                //Insert the new slide into the slide list.
                SlideId newSlideId = slideIdList.AppendChild(new SlideId());

                //Set the slide id and relationship id
                newSlideId.Id             = maxSlideId;
                newSlideId.RelationshipId = presentationPart.GetIdOfPart(newSlidePart);
            }

            FixSlideLayoutIds(presentationPart, uniqueId);
            //after adding OPEN XML SDK 3.0 this fix no longer needed but removes validation errors
            //PresentationMLUtil.FixUpPresentationDocument(target);

            target.PresentationPart.Presentation.Save();

            return(target);
        }
Exemple #27
0
        private static void AddSlideMasterToSlideMasterIdList(PresentationPart presentationPart, SlideMasterPart slideMasterPart)
        {
            Presentation      presentation      = presentationPart.Presentation;
            SlideMasterIdList slideMasterIdList = presentationPart.Presentation.SlideMasterIdList;

            slideMasterIdList.AppendChild(new SlideMasterId()
            {
                Id             = slideMasterIdList.Elements <SlideMasterId>().Select(sm => sm.Id.Value).DefaultIfEmpty(2147483647u).Max() + 1,
                RelationshipId = presentationPart.GetIdOfPart(slideMasterPart)
            });

            presentation.Save(presentationPart);
        }
        // Apply a new theme to the presentation.
        public static void ApplyThemeToPresentation(PresentationDocument presentationDocument, PresentationDocument themeDocument)
        {
            if (presentationDocument == null)
            {
                throw new ArgumentNullException("presentationDocument");
            }
            if (themeDocument == null)
            {
                throw new ArgumentNullException("themeDocument");
            }

            // Get the presentation part of the presentation document.
            PresentationPart presentationPart = presentationDocument.PresentationPart;

            // Get the existing slide master part.
            SlideMasterPart slideMasterPart = presentationPart.SlideMasterParts.ElementAt(0);
            string          relationshipId  = presentationPart.GetIdOfPart(slideMasterPart);

            // Get the new slide master part.
            SlideMasterPart newSlideMasterPart = themeDocument.PresentationPart.SlideMasterParts.ElementAt(0);

            // Remove the existing theme part.
            presentationPart.DeletePart(presentationPart.ThemePart);

            // Remove the old slide master part.
            presentationPart.DeletePart(slideMasterPart);

            // Import the new slide master part, and reuse the old relationship ID.
            newSlideMasterPart = presentationPart.AddPart(newSlideMasterPart, relationshipId);

            // Change to the new theme part.
            presentationPart.AddPart(newSlideMasterPart.ThemePart);

            Dictionary <string, SlideLayoutPart> newSlideLayouts = new Dictionary <string, SlideLayoutPart>();

            foreach (var slideLayoutPart in newSlideMasterPart.SlideLayoutParts)
            {
                newSlideLayouts.Add(GetSlideLayoutType(slideLayoutPart), slideLayoutPart);
            }

            string          layoutType    = null;
            SlideLayoutPart newLayoutPart = null;

            // Insert the code for the layout for this example.
            string defaultLayoutType = "Title and Content";

            // Remove the slide layout relationship on all slides.
            foreach (var slidePart in presentationPart.SlideParts)
            {
                layoutType = null;

                if (slidePart.SlideLayoutPart != null)
                {
                    // Determine the slide layout type for each slide.
                    layoutType = GetSlideLayoutType(slidePart.SlideLayoutPart);

                    // Delete the old layout part.
                    slidePart.DeletePart(slidePart.SlideLayoutPart);
                }

                if (layoutType != null && newSlideLayouts.TryGetValue(layoutType, out newLayoutPart))
                {
                    // Apply the new layout part.
                    slidePart.AddPart(newLayoutPart);
                }
                else
                {
                    newLayoutPart = newSlideLayouts[defaultLayoutType];

                    // Apply the new default layout part.
                    slidePart.AddPart(newLayoutPart);
                }
            }
        }
 public MasterMapping(ConversionContext ctx)
     : base(ctx, ctx.Pptx.PresentationPart.AddSlideMasterPart())
 {
     this.MasterPart = (SlideMasterPart)this.targetPart;
 }
 public OpenXmlSlideMaster(IOpenXmlPresentation presentation, SlideMasterPart slideMasterPart)
 {
     this.presentation    = presentation;
     this.slideMasterPart = slideMasterPart;
 }