//funkcje private PowerPoint.Shape KreatorKsztalt(PowerPoint.Slide Slajd, Office.MsoAutoShapeType ksztalt, int numer, float marginesX, float marginesY, float odstep, float szerokosc, float wysokosc, Color kolor, float gradient, string czcionka, float rozmiar, Color kolorCz, bool pogrubienie, bool kursywa) { //tworzy figure PowerPoint.Shape figura; figura = Slajd.Shapes.AddShape(ksztalt, marginesX + numer * (szerokosc + odstep) + odstep / 2, marginesY, szerokosc, wysokosc); figura.Name = "Generator_" + numer; //tekst Control temp = GroupBox4.Controls["textBox" + numer]; figura.TextFrame.TextRange.Text = temp.Text; figura.TextFrame.TextRange.Font.Size = rozmiar; figura.TextFrame.TextRange.Font.Name = czcionka; figura.TextFrame.TextRange.Font.Color.RGB = Color.FromArgb(kolorCz.B, kolorCz.G, kolorCz.R).ToArgb(); if (pogrubienie) { figura.TextFrame.TextRange.Font.Bold = Office.MsoTriState.msoTrue; } if (kursywa) { figura.TextFrame.TextRange.Font.Italic = Office.MsoTriState.msoTrue; } //figura figura.Fill.OneColorGradient(Office.MsoGradientStyle.msoGradientHorizontal, 1, 0); figura.Fill.ForeColor.RGB = Color.FromArgb(kolor.B, kolor.G, kolor.R).ToArgb(); figura.Fill.BackColor.RGB = Color.FromArgb((int)(kolor.B * gradient), (int)(kolor.G * gradient), (int)(kolor.R * gradient)).ToArgb(); return(figura); }
/// <summary> /// Draw a shape on a slide /// </summary> /// <param name="slide">PPT.Slide object instance</param> /// <param name="shapeType">The shape type. Any shape from the MsoAutoShapeType can be specified</param> /// <param name="leftPosition">x position</param> /// <param name="topPosition">y position</param> /// <param name="width">Shape width</param> /// <param name="height">Shape height</param> /// <returns></returns> public PPT.Shape DrawShape( PPT.Slide slide, OFFICE.MsoAutoShapeType shapeType, float leftPosition, float topPosition, float width, float height) { return(slide.Shapes.AddShape(shapeType, leftPosition, topPosition, width, height)); }
private void StartBut_Click(object sender, EventArgs e) { taAplikacja = Globals.ThisAddIn.Application; projekt = taAplikacja.ActivePresentation; PowerPoint.Slide Slajd = null; try //pobiera aktywny slajd, ustawia slajd na pierwszy w przypadku kursora pomiędzy slajdami { Slajd = taAplikacja.ActiveWindow.View.Slide; } catch { Slajd = taAplikacja.ActivePresentation.Slides[1]; } float slideWidth = projekt.PageSetup.SlideWidth; float slideHeight = projekt.PageSetup.SlideHeight; //pobiera szerokość, wysokość strony do dostosowania szerokości pól int war = SlajdNum.Value; //wartosc trackbara float marX = 10; float marY = 10; //marginesy if (MarginesX.Text != "") { float.TryParse(MarginesX.Text, out marX); } if (MarginesY.Text != "") { float.TryParse(MarginesY.Text, out marY); } float odstep = 0; if (Odstep.Text != "") { float.TryParse(Odstep.Text, out odstep); } float wys = 50; if (Wysokosc.Text != "") { float.TryParse(Wysokosc.Text, out wys); } float szer = (slideWidth - 2 * marX - war * odstep) / war; // atrybuty kształtu //granice działania int odSlajdu = 1, doSlajdu = projekt.Slides.Count; Int32.TryParse(Controls["slajdmin"].Text, out odSlajdu); if (odSlajdu == 0) { odSlajdu = 1; } Int32.TryParse(Controls["slajdmax"].Text, out doSlajdu); if (doSlajdu == 0) { doSlajdu = projekt.Slides.Count; } int slajdpoczatkowy = Slajd.SlideIndex; //pętla iterująca przez slajdy for (int slajd = odSlajdu; slajd <= doSlajdu; slajd++) { taAplikacja.ActiveWindow.View.GotoSlide(slajd); Slajd = taAplikacja.ActiveWindow.View.Slide; Int32.TryParse(GroupBox2.Controls["fontSize"].Text, out int fSize); if (fSize == 0) { fSize = 26; } //pętla tworząca figury for (int a = 0; a < war; a++) { //resetowanie parametrow (potrzebne) Office.MsoAutoShapeType ksztalt = (Office.MsoAutoShapeType)Ksztalt.SelectedValue; string czcionka = Czcionka.SelectedValue.ToString(); Color tempKsztalt = kolorKsztaltu; float gradient = 0.9f; Color tempCzcionka = kolorCzcionki; bool pogrubienie = false, kursywa = false; //sprawdzanie zaznaczenia Int32.TryParse(GroupBox4.Controls["odStrony" + a].Text, out int min); Int32.TryParse(GroupBox4.Controls["doStrony" + a].Text, out int max); if (Slajd.SlideIndex >= min && Slajd.SlideIndex <= max) { if (AltGrad.Checked) { gradient = 0.5f; } if (AltKszt.Checked) { ksztalt = (Office.MsoAutoShapeType)(KsztaltAlt.SelectedValue); } if (AltColorKszt.Checked) { tempKsztalt = kolorKsztaltuAlt; } if (AltColorFont.Checked) { tempCzcionka = kolorCzcionkiAlt; } if (AltFont.Checked) { czcionka = CzcionkaAlt.SelectedValue.ToString(); } if (Bold.Checked) { pogrubienie = true; } if (Italic.Checked) { kursywa = true; } } //wywołanie funkcji tworzącej figury KreatorKsztalt(Slajd, ksztalt, a, marX, marY, odstep, szer, wys, tempKsztalt, gradient, czcionka, fSize, tempCzcionka, pogrubienie, kursywa); } } taAplikacja.ActiveWindow.View.GotoSlide(slajdpoczatkowy); }
/// <summary> /// Find all shapes of a type in a presentation /// </summary> /// <param name="presentation">PPT.Presentation object instance</param> /// <param name="shapeType">The shape type to look for</param> /// <returns></returns> public List <ShapesofType> FindShapesInPresentation(PPT.Presentation presentation, OFFICE.MsoAutoShapeType shapeType) { return((from PPT.Slide slide in presentation.Slides from PPT.Shape shape in slide.Shapes where shape.AutoShapeType == shapeType select new ShapesofType { shape = shape, shapeType = shape.Type, slide = slide }).ToList()); }