如何在 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") )
)
)
请注意,Break
是 Paragraph
的子项,而不是 Run
的子项(在 WordprocessingML 中)。
请注意,Break
会换行(在 PowerPoint 中为 Shift-Return),如果您想要一个新段落(在 PowerPoint 中为 Return),您需要一个新 Paragraph
.
虽然 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") )
)
)
请注意,Break
是 Paragraph
的子项,而不是 Run
的子项(在 WordprocessingML 中)。
请注意,Break
会换行(在 PowerPoint 中为 Shift-Return),如果您想要一个新段落(在 PowerPoint 中为 Return),您需要一个新 Paragraph
.