public override void CreateFile(string filePath, DocumentModel data) { int slideIndex = 1; // created single slide file. Application pptApp = null; Presentation pptPresentation = null; Slides slides = null; _Slide slide = null; TextRange objText = null; CustomLayout customLayout = null; try { pptApp = new Application(); pptPresentation = pptApp.Presentations.Add(); // create new Slide slides = pptPresentation.Slides; customLayout = pptPresentation.SlideMaster.CustomLayouts[PpSlideLayout.ppLayoutText]; slide = slides.AddSlide(slideIndex, customLayout); // write title objText = slide.Shapes[1].TextFrame.TextRange; objText.Text = data.Title; objText.Font.Name = "Arial"; objText.Font.Size = 32; // write description objText = slide.Shapes[2].TextFrame.TextRange; objText.Text = data.Description; pptPresentation.SaveAs(filePath); pptPresentation.Close(); pptApp.Quit(); } finally { ReleaseFileObject(pptPresentation); ReleaseFileObject(pptApp); } }
public void RenderStillsToPowerpoint(string filename, List <string> stills) { Microsoft.Office.Interop.PowerPoint.Application _powerpoint = new Microsoft.Office.Interop.PowerPoint.Application(); Presentation presentation = _powerpoint.Presentations.Add(Microsoft.Office.Core.MsoTriState.msoTrue); Slides slides = presentation.Slides; int slidenum = 1; stills = stills.OrderBy(s => int.Parse(System.IO.Path.GetFileNameWithoutExtension(s).Split('_')[1])).ToList(); foreach (var still in stills) { _Slide slide = slides.Add(slidenum++, PpSlideLayout.ppLayoutBlank); // add image slide.Shapes.AddPicture(still, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, 0, 0); } presentation.SaveAs(filename, Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsDefault, Microsoft.Office.Core.MsoTriState.msoTrue); presentation.Close(); _powerpoint.Quit(); }
//TOAN : 06/08/2019. Code Enhancement public void addPage(int num) { //TOAN : 06/08/2019. Add-Page을 실행할 때, 아래 2줄은 꼭 쌍으로 참조가 되어야 한다. _slides = _pptPresentation.Slides; _slide = _slides.AddSlide(/*1*/ num, _customLayout); _objText = _slide.Shapes[1].TextFrame.TextRange; _objText.Text = "제목입니당"; _objText = _slide.Shapes[2].TextFrame.TextRange; //_objText.Text = "1번째줄\n2번째줄\n3번째줄"; int ioop = 0; for (ioop = 0; ioop < 10; ioop++) { _objText.Text += ioop.ToString(); _objText.Text += "\n"; Thread.Sleep(2000); } _slide.NotesPage.Shapes[2].TextFrame.TextRange.Text = "여기는 슬라이드 설명쓰는곳입니당."; }
public void addPageWithTime() { int i = 1; _slides = _pptPresentation.Slides; do { if (_exit_flag == true) { break; } _slide = _slides.AddSlide(i, _customLayout); // 타이틀 추가 _objText = _slide.Shapes[1].TextFrame.TextRange; _objText.Text = "제목입니당"; //TOAN : 01/28/2019. FontName에서 Exception이 발생하는듯 하다. //_objText.Font.Name = "Gulim"; //_objText.Font.Size = 32; _objText.Font.Size = 20; _objText = _slide.Shapes[2].TextFrame.TextRange; //_objText.Text = "1번째줄\n2번째줄\n3번째줄"; int ioop = 0; //int ioop = 48; for (ioop = 0; ioop < 10; ioop++) { _objText.Text += ioop.ToString(); _objText.Text += "\n"; //아래 코드를 사용하면 루프중에 프로그램이 종료되버린다. Delay(1000); } //TOAN : 01/28/2019. Temporary Blocking _slide.NotesPage.Shapes[2].TextFrame.TextRange.Text = "여기는 슬라이드 설명쓰는곳입니당."; i = i + 1; } while (_exit_flag == false); }
public void AddOneLesionSlice(LesionEntity lesionEntity) { ++lesionNumber; //添加Axial方向的截图到PPT _Slide lesionAxialSlide = powerPointDAO.AddNewSlide(); powerPointDAO.AddText("病灶 " + lesionNumber.ToString(), lesionAxialSlide, 30, 30, 300, 40); powerPointDAO.AddText("轴状位", lesionAxialSlide, 530, 30, 300, 40); if (!string.IsNullOrEmpty(lesionEntity.AxialCTImageFile)) { powerPointDAO.AddImage(lesionEntity.AxialCTImageFile, lesionAxialSlide, 30, 80, lesionSize, lesionSize); } if (!string.IsNullOrEmpty(lesionEntity.AxialCTDetailImageFile)) { powerPointDAO.AddImage(lesionEntity.AxialCTDetailImageFile, lesionAxialSlide, 260, 80, lesionSize, lesionSize); } if (!string.IsNullOrEmpty(lesionEntity.Axial3DImageFile)) { powerPointDAO.AddImage(lesionEntity.Axial3DImageFile, lesionAxialSlide, 490, 80, lesionSize, lesionSize); } //添加Sagital方向的截图到PPT _Slide lesionSagitalSlide = powerPointDAO.AddNewSlide(); powerPointDAO.AddText("矢状位", lesionSagitalSlide, 530, 30, 300, 40); if (!string.IsNullOrEmpty(lesionEntity.SagitalCTImageFile)) { powerPointDAO.AddImage(lesionEntity.SagitalCTImageFile, lesionSagitalSlide, 30, 80, lesionSize, lesionSize); } if (!string.IsNullOrEmpty(lesionEntity.SagitalCTDetailImageFile)) { powerPointDAO.AddImage(lesionEntity.SagitalCTDetailImageFile, lesionSagitalSlide, 260, 80, lesionSize, lesionSize); } if (!string.IsNullOrEmpty(lesionEntity.Sagital3DImageFile)) { powerPointDAO.AddImage(lesionEntity.Sagital3DImageFile, lesionSagitalSlide, 490, 80, lesionSize, lesionSize); } //添加Coronal方向的截图到PPT _Slide lesionCoronalSlide = powerPointDAO.AddNewSlide(); powerPointDAO.AddText("冠状位", lesionCoronalSlide, 530, 30, 300, 40); if (!string.IsNullOrEmpty(lesionEntity.CoronalCTImageFile)) { powerPointDAO.AddImage(lesionEntity.CoronalCTImageFile, lesionCoronalSlide, 30, 80, lesionSize, lesionSize); } if (!string.IsNullOrEmpty(lesionEntity.CoronalCTDetailImageFile)) { powerPointDAO.AddImage(lesionEntity.CoronalCTDetailImageFile, lesionCoronalSlide, 260, 80, lesionSize, lesionSize); } if (!string.IsNullOrEmpty(lesionEntity.Coronal3DImageFile)) { powerPointDAO.AddImage(lesionEntity.Coronal3DImageFile, lesionCoronalSlide, 490, 80, lesionSize, lesionSize); } }
private void create_Click(object sender, EventArgs e) { foreach (System.Windows.Forms.Control c in this.Controls) { if ((c is System.Windows.Forms.CheckBox)) { if (((System.Windows.Forms.CheckBox)c).Checked) { pptPics[int.Parse(c.Name[8].ToString()) - 1] = generatedFilenameArray[int.Parse(c.Name[8].ToString()) - 1]; } else { pptPics[int.Parse(c.Name[8].ToString()) - 1] = ""; } } } Microsoft.Office.Interop.PowerPoint.Application pptApplication = new Microsoft.Office.Interop.PowerPoint.Application(); Presentation pptPresentation = pptApplication.Presentations.Add(MsoTriState.msoTrue); CustomLayout custLayout = pptPresentation.SlideMaster.CustomLayouts[PpSlideLayout.ppLayoutText]; var slides = pptPresentation.Slides; _Slide slide = slides.AddSlide(1, custLayout); //Create Title var objText = slide.Shapes[1].TextFrame.TextRange; objText.Text = searchBar.Text; objText.Font.Size = 32; slide.Shapes[1].Height = 60; //Create Description var objText2 = slide.Shapes[2].TextFrame.TextRange; objText2.Text = descriptionBox.Text; objText2.Font.Size = 16; slide.Shapes[2].Width = 310; slide.Shapes[2].Top = 115; //Add Images to the Slides int height = 200; int width = 155; int verticalPosition = 115; int horizontalPosition = 370; int position = 1; for (int i = 0; i < pptPics.Length; i++) { if (pptPics[i] == "") { continue; } verticalPosition = (position == 1 || position == 2) ? 115 : 315; horizontalPosition = (position == 1 || position == 3) ? 370 : 525; slide.Shapes.AddPicture( pptPics[i], MsoTriState.msoFalse, MsoTriState.msoTrue, horizontalPosition, verticalPosition, width, height); verticalPosition += height + 5; position++; } FolderAccess(); int slideNumber = 1; string filePath = @"C:\PPT\newslide1.pptx"; while (File.Exists(filePath)) { slideNumber += 1; filePath = @"C:\PPT\newslide" + slideNumber.ToString() + ".pptx"; } pptPresentation.SaveAs( filePath, PpSaveAsFileType.ppSaveAsDefault, MsoTriState.msoTrue); }
private static void addPictures(_Slide slide) { slide.Shapes.AddPicture(@"C:\Users\lucaslemos\Desktop\IMG_example.jpg", Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, 200, 200, 30, 40); //the first paramether is the local address, the socnd and third I recommend to set up like this //and the you have Left, Top, Widht and Height }