将SlideMaster和SlideLayouts添加到演示文稿中

时间:2015-04-02 16:17:20

标签: c# openxml openxml-sdk presentationml

我正在尝试创建一个包含六个幻灯片,三个主幻灯片(MS-A,MS-B和MS-C)以及两个幻灯片布局(SL-1和SL-2)的演示文稿。将六个幻灯片视为两行和三列幻灯片。

我想使用引用幻灯片布局1的SlideMaster创建幻灯片的第一个“行”。例如,幻灯片1(S1A)将使用引用SL-1的主MS-A创建。滑动2(S1B),MS-B参考SL-1,滑动(S1C),MS-C参考SL-1。

到目前为止,这应该不是真正的问题。但是,我想知道是否可以使用主幻灯片MS-A到MS-C构建幻灯片的第二个“行”(S2A,S2B和S2C),它们引用幻灯片布局SC-2,而不影响幻灯片第一行的内容

如果可以的话,您能否提供我将如何进行此操作的链接/示例/伪代码?

我正在使用OpenXML 2.5,C#,Framework 4.5。

1 个答案:

答案 0 :(得分:0)

  • 演示文稿可能包含一个或多个幻灯片母版(母版)。
  • 每个母版可能有一个或多个幻灯片布局(布局)。
  • 每个布局都与 one-and-one-one master相关。
  • 每张幻灯片都与 one-only-one 布局相关。幻灯片与主人没有直接关系,只有通过布局的间接关系。

不确定这是否能解答您的问题,我无法完全理解您制定它的方式。幻灯片与主人和布局都不同。我不确定你是说你要六个幻灯片是六个布局,还是两个。

此外,我无法帮助您使用C#进行实现,但最好还是直接了解您要完成的任务以及是否可能首先实现:)

如果您想要六个幻灯片,每个幻灯片基于六个不同布局中的一个,每个幻灯片在三个主控中的一个上成对配对,它将在psuedo-code中显示如下:

m_1 = Presentation.add_master(M_1)
m_2 = Presentation.add_master(M_2)
m_3 = Presentation.add_master(M_3)

l_1a = m_1.add_layout(L_1A)
l_1b = m_1.add_layout(L_1B)
l_2a = m_2.add_layout(L_2A)
l_2b = m_2.add_layout(L_2B)
l_3a = m_3.add_layout(L_3A)
l_3b = m_3.add_layout(L_3B)

slide_1 = Presentation.Slides.add_slide(based_on=l_1a)
slide_2 = Presentation.Slides.add_slide(based_on=l_1b)
slide_3 = Presentation.Slides.add_slide(based_on=l_2a)
slide_4 = Presentation.Slides.add_slide(based_on=l_2b)
slide_5 = Presentation.Slides.add_slide(based_on=l_3a)
slide_6 = Presentation.Slides.add_slide(based_on=l_3b)