2015-04-02 7 views
0

Я пытаюсь создать презентацию с шестью слайдами, тремя главными слайдами (MS-A, MS-B и MS-C) и двумя макетами слайдов (SL-1 и SL- 2). Подумайте о шести слайдах в виде двух строк и трех столбцов слайдов.Добавление слайдов и слайдов в презентацию

Я хочу создать первую «строку» слайдов, используя SlideMaster, эта ссылка Slide Layout 1. Например, Slide 1 (S1A) будет создан с использованием Master MS-A, который ссылается на SL-1. Слайд 2 (S1B) с MS-B, который ссылается на SL-1 и слайд (S1C) с MS-C, который ссылается на SL-1.

До сих пор это не было настоящей проблемой. Тем не менее, я хочу знать, можно ли построить вторую «строку» слайдов (S2A, S2B и S2C) с помощью мастер-слайдов MS-A-MS-C, где они ссылаются на слайд-макет SC-2 и не влияют на содержимое первой строки слайдов

Если это возможно, можете ли вы предоставить мне ссылки/примеры/псевдо-код того, как я буду это делать?

Я использую OpenXML 2.5, C#, Framework 4.5.

ответ

0
  • В презентации может быть один или несколько мастеров слайдов (мастер).
  • Каждый мастер может иметь один или несколько макетов слайдов (макет).
  • Каждый макет связан с один и только мастер.
  • Каждый слайд связан с один и только макет. Прямой связи слайда с мастером нет, только косвенные отношения через его макет.

Не уверен, что ответ на ваш вопрос я не могу полностью понять, как вы его сформулировали. Слайды отличаются от мастеров и макетов. Я не уверен, что вы говорите, что хотите шесть слайдов - шесть макетов, или и то, и другое.

Кроме того, я не могу вам помочь в реализации с использованием C#, но, вероятно, хорошая идея, чтобы получить прямо, что вы пытаетесь достичь, и является ли это возможно первая в любом случае :)

Если вы хотите шесть слайдов, каждый из которых основан на одном из шести различных макетов, каждая из которых основана парно на один из трех мастеров, это пойти бы что-то подобное в псевдо-коде:

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) 
+0

Спасибо за ваш ответ, scanny. Чтение и понимание маркированных предметов, которые вы опубликовали, помогает и отвечает на вопрос о том, возможно ли «повторно использовать» SlideLayouts. Ответ - нет'. Чтобы адресовать ваш первый абзац на мое намерение, я хотел знать, можно ли повторно использовать SlideLayouts. Другими словами, несколько SlideMasters могут использовать один и тот же SlideLayout. И, как упоминалось выше, ответ отрицательный. (После того, как я опубликовал вопрос, я перечитал некоторую документацию и не смог также ответить на нет.) –

+0

Я считаю, что псевдокод, который вы предоставили, моделирует то, что я ищу. Еще раз спасибо за Ваш ответ. Я считаю это правильным. FYI и помогать другим в этом вопросе, я размещаю ссылку на то, что я нашел полезным. Office Open XML Обзор: http://ecma-international.org/news/TC45_current_work/OpenXML%20White%20Paper.pdf –