Eu estou convertendo uma apresentação do PowerPoint (.ppt
) dentro de .wmv
arquivo de vídeo usando este código:
static void Main(string[] args)
{
string fileName = @"D:example1.pptx";
string exportName = "video_of_presentation";
string exportPath = @"D:{0}.wmv";
Microsoft.Office.Interop.PowerPoint.Application ppApp = new Microsoft.Office.Interop.PowerPoint.Application();
ppApp.Visible = MsoTriState.msoTrue;
ppApp.WindowState = PpWindowState.ppWindowMinimized;
Microsoft.Office.Interop.PowerPoint.Presentations oPresSet = ppApp.Presentations;
Microsoft.Office.Interop.PowerPoint._Presentation oPres = oPresSet.Open(
fileName,
MsoTriState.msoFalse,
MsoTriState.msoFalse,
MsoTriState.msoFalse);
try
{
oPres.CreateVideo(exportName);
oPres.SaveCopyAs(String.Format(exportPath, exportName),
PowerPoint.PpSaveAsFileType.ppSaveAsWMV,
MsoTriState.msoCTrue);
}
finally
{
ppApp.Quit();
}
}
É ótimo trabalho. Agora eu estou tentando converter um único slide desta apresentação em arquivo de vídeo. Eu tentei usar isso:
var i = 0;
foreach (var slide in oPres.Slides)
{
slide.CreateVideo(string.Format("slide{0}", i));
i++;
}
Mas parece que o slide não tem CreateVideo
método.
Acho que preciso criar uma nova apresentação a cada iteração e adicionar um slide a ela, mas não consigo entender como adicionar um slide da minha apresentação a uma nova apresentação.
Eu tentei este código:
Presentation singleSlidePpt = ppApp.Presentations.Add(MsoTriState.msoTrue);
singleSlidePpt.Slides.Add(oPres.Slides[0], CustomLayout);
Alguma sugestão de como resolver este problema?
Respostas:
2 para resposta № 1Salve a apresentação em um novo nome e exclua todos os slides que você DON "T precisar.
Certifique-se de fazê-lo na ordem inversa, senão você vai obter os resultados errados.
-1 para resposta № 2
Se você deseja converter um PPT em vídeo, o próprio PowerPoint tem essa função "criar vídeo".
Mas eu não sei se pode converter para .wmv
vídeo diretamente. Se não, você pode usar um conversor depois que o PPT é convertido em vídeo, embora não pareça o caminho mais simples.