Добавление SlideMasters и SlideLayouts в презентацию

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

Я хочу создать первый «ряд» слайдов, используя SlideMaster, который ссылается на макет слайда 1. Например, слайд 1 (S1A) будет создан с использованием мастера 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, С#, Framework 4.5.


person Gary Rynearson    schedule 02.04.2015    source источник


Ответы (1)


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

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

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

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

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)
person scanny    schedule 02.04.2015
comment
Спасибо за ответ, сканни. Чтение и понимание маркированных элементов, которые вы разместили, действительно помогает и отвечает на вопрос, возможно ли «повторно использовать» макеты слайдов. Ответ - нет'. Чтобы ответить на ваш первый абзац о моем намерении, я хотел знать, можно ли повторно использовать SlideLayouts. Иными словами, могут ли несколько SlideMaster использовать один и тот же SlideLayout. И, как было сказано выше, ответ – нет. (После публикации вопроса я перечитал некоторую документацию и также смог прийти к выводу, что ответа нет.) - person Gary Rynearson; 06.04.2015
comment
Я считаю, что псевдокод, который вы предоставили, моделирует то, что я хочу сделать. Еще раз спасибо за Ваш ответ. Я отмечаю это как правильное. К вашему сведению, и чтобы помочь другим решить эту проблему, я публикую ссылку на сайт, который мне показался полезным. Обзор Office Open XML: ecma-international.org/news/TC45_current_work/< /а> - person Gary Rynearson; 06.04.2015