如何在 OpenXML / PresentationML / C# 中的 PowerPoint (PPTX) 中插入换行符

How to insert a newline in PowerPoint (PPTX) in OpenXML / PresentationML / C#

虽然 Word 和 PowerPoint 都使用 OpenXML,但换行符的处理方式不同。在 Word/WordprocessingML 中,您可以 run.Append(new Break())(参见 here)插入换行符。不幸的是,在 PresentationML 中,这会导致演示文稿无效,并且在将其加载到 PowerPoint 中时会出错。

如何在 PowerPoint TextBody 中添加换行符 Shape

Open XML Productivity Tool of Open Office SDK 2.5 有这个很棒的 Reflect Code 工具来获取您拥有的任何 OpenXML 文件的 C# 代码。但尤其是经过多次编辑后,演示文稿中的文本被拆分成各种 Run 元素,并且 反映代码 不是很紧凑。这是 Shape.

TextBody 示例
new TextBody(
  new A.BodyProperties(),
  new A.Paragraph(
    new A.Run( new A.Text("first line") ),
    new A.Break(),
    new A.Run( new A.Text("second line") )
  ),
  new A.Paragraph(
    new A.Run( new A.Text("new paragraph") )
  )
)

请注意,BreakParagraph 的子项,而不是 Run 的子项(在 WordprocessingML 中)。

请注意,Break 会换行(在 PowerPoint 中为 Shift-Return),如果您想要一个新段落(在 PowerPoint 中为 Return),您需要一个新 Paragraph.