在powerpoint中的文本框中查找动画的开始/结束字符索引

时间:2012-04-13 00:45:56

标签: c# .net vsto powerpoint textrange

以下是一些示例幻灯片的屏幕截图。我有一个关于“比萨”这个词的动画。我试图通过字符编号找到字符串中的位置。

example slide 我的代码来获取有关动画的信息:

foreach (PowerPoint.Effect effect in slide.TimeLine.MainSequence)
        {
            animationMap[animationCount] = new WBLAnimation(effect,shapeMap[effect.Shape.Id],effect.TextRangeStart,effect.TextRangeStart+effect.TextRangeLength);
            animationCount++;
        }

Pizza应该从字符11开始,但TextRangeStart属性声称它从字符80开始.TextRangeLength也是错误的。它声称长度为71个字符,应该是6个(长度为“披萨?”)。对我而言,这似乎是计算文本范围的整个长度而不是动画部分。

WBLAnimation只是一个助手类。它具有效果,形状,形状的起始位置和结束位置。这最终需要重构。这只是我获取这些信息的一个例子,所以有人可能会指出我做错了什么。

还有另一种方法可以找到动画片在字符串中的位置吗?

感谢!!!

2 个答案:

答案 0 :(得分:1)

我相信动画总是适用于对象。这意味着你没有'Pizza'这个词的动画。您在对象(文本框?)上有一个动画,其中包含“Pizza”一词。

答案 1 :(得分:0)

显然,powerpoint中存在一个错误。 TextRangeStart将始终指出动画文本范围中的最后一个段落:http://answers.microsoft.com/en-us/office/forum/office_2010-powerpoint/where-can-i-find-the-start-and-end-of-the-text-in/43a16276-8abc-4cb2-9753-46c7119e7618

现在既然如此,我所做的就是将动画的段落索引与形状相匹配,并从那里找到字符索引。这是圆的,但它有效...

我正在努力研究各种类型的ppt到html转换器。它使用RaphaelJS渲染所有这些东西。如果有人想参与退房:https://github.com/parris/tilda ......我将在一周内做出相当不错的承诺。

感谢大家的帮助。