다음은 내가 수행해온 코드입니다. 슬라이드에 메모가있는 메시지 상자가 표시되어야한다고 생각하지만 그렇지 않습니다. 또한 나는 그 중 일부를 가지고 있지만 잘못된 장소에있을 수있는 코드로 음성 합성을 구현하는 방법을 모르겠습니다. 프레젠테이션을보고/O를, 나는이 문제인지 알 수는 없지만, 당신이 노트 페이지의 두 번째 형태는 노트 텍스트 자리 표시 자입니다 가정하고 W슬라이드의 노트에 텍스트를 가져와 오디오로 변환하는 파워 포인트 추가 기능. 슬라이드에서 노트를 가져 오는 것 같지 않습니까?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Office = Microsoft.Office.Core;
using Microsoft.Office.Interop.PowerPoint;
using System.Speech.Synthesis;
namespace FirstPowerPointAddIn
{
public partial class ThisAddIn
{
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
SpeechSynthesizer synth = new SpeechSynthesizer();
// Configure the audio output.
synth.SetOutputToDefaultAudioDevice();
PowerPoint.Application oPowerPoint = null;
try
{
oPowerPoint.SlideShowBegin += oPowerPoint_SlideShowBegin;
oPowerPoint.SlideShowNextSlide += oPowerPoint_SlideShowNextSlide;
}
catch(Exception)
{
Console.WriteLine("error");
}
}
private void ThisAddIn_Shutdown(object Pender, System.EventArgs e)
{
}
private void oPowerPoint_SlideShowBegin(SlideShowWindow Wn)
// If the slide has notes, get the notes
{
if (Wn.View.Slide.HasNotesPage == Microsoft.Office.Core.MsoTriState.msoTrue)
{
if (Wn.View.Slide.NotesPage.Shapes[2].TextFrame.HasText == Microsoft.Office.Core.MsoTriState.msoTrue)
System.Windows.Forms.MessageBox.Show(Wn.View.Slide.NotesPage.Shapes[2].TextFrame.TextRange.Text);
}
}
void oPowerPoint_SlideShowNextSlide(PowerPoint.SlideShowWindow Wn)
{
if (Wn.View.Slide.HasNotesPage == Microsoft.Office.Core.MsoTriState.msoTrue)
{
if (Wn.View.Slide.NotesPage.Shapes[2].TextFrame.HasText == Microsoft.Office.Core.MsoTriState.msoTrue)
System.Windows.Forms.MessageBox.Show(Wn.View.Slide.NotesPage.Shapes[2].TextFrame.TextRange.Text);
}
}
#region VSTO generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisAddIn_Startup);
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
}
#endregion
}
}
내가 파워 포인트 물건 모르는를, 하지만 이것은 음성 합성 측면에서 당신을 도울 수 있습니다 [http://www.codeproject.com/Articles/28725/A-Very-Easy-Introduction-to-Microsoft-NET-Speech-S] – Eisenhorn