如何向 PowerPoint 文本框添加新的 TextRange.Run?
how to add new TextRange.Run to PowerPoint textbox?
我想复制一些文本及其格式。如果整个文本以一种方式格式化,那么这很容易做到,但我无法复制以不同方式格式化的文本(例如,文本的某些部分是粗体,有些不是)。
有类似 运行 的东西,我知道如何阅读它(以及如何使用 open xml 添加它,但加载项必须在打开的演示文稿上工作),但是如何将 it/insert 添加到某些文本框中?我找不到像 Shape.TextFrame2.TextRange.Runs.Add() 或 Shape.TextFrame2.TextRange.Runs(1).Insert()
这样的方法
好的,我找到了操作方法:
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;
}
如何赋值,
Shape1.TextFrame.TextRange.Runs(1).Font.Bold = MsoTriState.msoTrue;
但是上面的代码并没有使 运行 中的第一个文本块为真,没有应用粗体。
我想复制一些文本及其格式。如果整个文本以一种方式格式化,那么这很容易做到,但我无法复制以不同方式格式化的文本(例如,文本的某些部分是粗体,有些不是)。
有类似 运行 的东西,我知道如何阅读它(以及如何使用 open xml 添加它,但加载项必须在打开的演示文稿上工作),但是如何将 it/insert 添加到某些文本框中?我找不到像 Shape.TextFrame2.TextRange.Runs.Add() 或 Shape.TextFrame2.TextRange.Runs(1).Insert()
这样的方法好的,我找到了操作方法:
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;
}
如何赋值,
Shape1.TextFrame.TextRange.Runs(1).Font.Bold = MsoTriState.msoTrue;
但是上面的代码并没有使 运行 中的第一个文本块为真,没有应用粗体。