如何将新的TextRange.Run添加到PowerPoint文本框?

时间:2015-01-20 10:46:45

标签: c# vba textbox vsto powerpoint

我想复制一些带有格式的文字。如果整个文本以一种方式格式化,那么它很容易做到,但我无法管理复制以不同方式格式化的文本(例如,文本的某些部分是粗体而不是)。

有类似Run的东西,我知道如何阅读它(以及如何使用open xml添加它,但是加载项必须在打开的演示文稿上工作),但是如何将它添加/插入到某些文本框中?我找不到像Shape.TextFrame2.TextRange.Runs.Add()或Shape.TextFrame2.TextRange.Runs(1).Insert()

这样的方法。

2 个答案:

答案 0 :(得分:2)

好的,我已经找到了怎么做:

for (int k = 0; k < sourceShapeProps.textFrame.TextRange.Runs.Count; k++)
   {
    var run = sourceShapeProps.textFrame.TextRange.get_Runs(k + 1, 1);
    var characters = cell.Shape.TextFrame2.TextRange.get_Characters(run.Start, run.Length);
    characters.Font.Fill.ForeColor.RGB = run.Font.Fill.ForeColor.RGB;
    characters.Font.Bold = run.Font.Bold;
    characters.Font.Italic = run.Font.Italic;
   }

答案 1 :(得分:0)

如何为它赋值,

Shape1.TextFrame.TextRange.Runs(1).Font.Bold = MsoTriState.msoTrue;

但是上面的代码并没有使文本的第一个块变为true,没有应用粗体。