Я создаю небольшую программу, которая автоматически создает уже «отформатированные» слайды. Я не могу применить lo go к мастер-слайду, чтобы реплицировать его каждый раз, когда я нажимаю на создание нового слайда в PowerPoint.
Я использую Microsoft.Core.Interop.PowerPoint
.
Это мой код:
string logo = @"C:...\Desktop\Logo_base.png";
string[] pwPnt = {
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, "
Application pwPntApplicazione = new Application();
Presentation pwPtnPresentazione = pwPntApplicazione.Presentations.Add(Microsoft.Office.Core.MsoTriState.msoTrue);
string themeName = @"D:...\tf16401370.pptx";
Microsoft.Office.Interop.PowerPoint.Master master;
Microsoft.Office.Interop.PowerPoint.Slides slides;
Microsoft.Office.Interop.PowerPoint._Slide slide;
Microsoft.Office.Interop.PowerPoint.TextRange objText;
Microsoft.Office.Interop.PowerPoint.CustomLayout customLayout =
pwPtnPresentazione.SlideMaster.CustomLayouts[Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutText];
slides = pwPtnPresentazione.Slides;
slide = slides.AddSlide(1, customLayout);
slide.FollowMasterBackground = MsoTriState.msoFalse;
slide.ApplyTemplate(themeName);
Microsoft.Office.Interop.PowerPoint.Shape shape = slide.Shapes[2];
slide.Shapes.AddPicture(logo, Microsoft.Office.Core.MsoTriState.msoFalse,
Microsoft.Office.Core.MsoTriState.msoTrue, shape.Left = -0, shape.Top = -1, shape.Width = 100, shape.Height = 30);
objText = slide.Shapes[1].TextFrame.TextRange;
objText.Text = "TITOLO";
//objText.Text = $"TITOLO {i + 1}";
objText.Font.Name = "Arial";
objText.Font.Size = 42;
Microsoft.Office.Interop.PowerPoint.Shape shp;
shp = slide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, Left: 400, Top: 110, Width: 450, Height: 450);
//shp.TextFrame.TextRange.Text = $"{pwPnt[i]}";
shp.TextEffect.FontName = "Arial";
shp.TextEffect.FontSize = 26;
shp.TextEffect.Alignment = MsoTextEffectAlignment.msoTextEffectAlignmentCentered;
pwPtnPresentazione.SaveAs(C:..Slide.pptx",
Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsDefault,
Microsoft.Office.Core.MsoTriState.msoTrue);