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

3

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

如何在PowerPoint ShapeTextBody中添加换行符?

1个回答

4
Open Office SDK 2.5的Open XML Productivity Tool有一个很棒的反射代码工具,可以获取任何OpenXML文件的C#代码。但是,特别是在进行大量编辑后,演示文稿中的文本会被分割成各种Run元素,而反射代码并不是非常紧凑。这里是一个ShapeTextBody的示例。
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


你提供的链接已经失效了,你知道在哪里可以找到它吗? - Lion King
1
@LionKing 简单的互联网搜索可以得到 https://github.com/OfficeDev/Open-XML-SDK。 - outofmind

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接