Comment obtenez-vous le texte Notes de la diapositive PowerPoint en cours en utilisant C#?Comment lire et modifier par programmation des notes de diapositive dans PowerPoint
6
A
Répondre
4
Je crois que ce serait peut-être ce que vous cherchez:
string s = slide.NotesPage.Shapes[2].TextFrame.TextRange.Text
slide.NotesPage.Shapes[2].TextFrame.TextRange.Text = "Hello World"
1
Voici mon code que j'utilise pour obtenir les notes de diapositives. Toujours en développement, mais semble faire l'affaire pour le moment. Même dans mon test PPT simple, les notes de diapositives ne sont pas toujours l'élément [2] dans le tableau de formes, il est donc important de vérifier.
private string GetNotes(Slide slide)
{
if (slide.HasNotesPage == MsoTriState.msoFalse)
return string.Empty;
string slideNodes = string.Empty;
var notesPage = slide.NotesPage;
int length = 0;
foreach (Shape shape in notesPage.Shapes)
{
if (shape.Type == MsoShapeType.msoPlaceholder)
{
var tf = shape.TextFrame;
try
{
//Some TextFrames do not have a range
var range = tf.TextRange;
if (range.Length > length)
{ //Some have a digit in the text,
//so find the longest text item and return that
slideNodes = range.Text;
length = range.Length;
}
Marshal.ReleaseComObject(range);
}
catch (Exception)
{}
finally
{ //Ensure clear up
Marshal.ReleaseComObject(tf);
}
}
Marshal.ReleaseComObject(shape);
}
return slideNodes;
}
+0
Comme vous le dites, certains TextFrames n'ont pas de plage, mais au lieu de lancer une exception lorsque vous essayez d'y accéder en premier, vérifiez si (frame.HasText == Office.MsoTriState.msoTrue). –
HI Chris, je l'ai essayé. cela fonctionne sur la plupart des diapositives. sauf la dernière page, je rencontrerai une ArgumentException. pourriez-vous l'expliquer un peu? Quelle est la magie 2 signifie ici? Merci d'avance – StanleyZ
Cochez cette question. Il a une meilleure réponse alors ce que j'ai fourni: http://stackoverflow.com/questions/6252927/powerpoint-notes-in-c-sharp – Crispy
Vous ne devriez pas coder les nombres magiques. Vous ne pouvez pas garantir que ce sera l'élément [2] dans le tableau Shapes. Probablement la cause de l'erreur sur la dernière diapositive. – Simon