Como trabalhar com slides mestres de folhetos
Este tópico aborda a classe Open XML SDK for Office HandoutMaster e como se relaciona com o esquema Open XML File Format PresentationML. Para obter mais informações sobre a estrutura geral das partes e elementos que compõem um documento PresentationML, consulte Estrutura de um documento PresentationML.
Diapositivos do Modelo Global de Folhetos na PresentationML
A especificação ISO/IEC 29500 descreve o elemento Open XML PresentationML <handoutMaster/>
utilizado para representar um folheto master diapositivo num documento PresentationML da seguinte forma:
Este elemento especifica uma instância de um folheto master diapositivo. Dentro de um folheto master diapositivo contêm todos os elementos que descrevem os objetos e a formatação correspondente para dentro de um diapositivo de folheto. Num folheto master diapositivo, o elemento cSld especifica os elementos comuns do diapositivo, como formas e os respetivos corpos de texto anexados. Existem outras propriedades num diapositivo master de folhetos, mas o cSld abrange a maior parte do objetivo pretendido para um diapositivo handoutMaster.
© ISO/IEC 29500: 2016
A tabela seguinte lista os elementos subordinados do <handoutMaster/>
elemento utilizado ao trabalhar com folhetos master diapositivos e as classes open XML SDK que correspondem aos mesmos.
Elemento PresentationML | Abrir Classe SDK XML |
---|---|
<ClrMap/> |
ColorMap |
<cSld/> |
CommonSlideData |
<extLst/> |
ExtensionListWithModification |
<hf/> |
HeaderFooter |
Open XML SDK HandoutMaster Class
A classe Open XML SDK HandoutMaster
representa o <handoutMaster/>
elemento definido no esquema Open XML File Format para documentos PresentationML. Utilize a HandoutMaster
classe para manipular elementos individuais <handoutMaster/>
num documento PresentationML.
As classes normalmente associadas à HandoutMaster
classe são apresentadas nas secções seguintes.
Classe ColorMap
A ColorMap
classe corresponde ao <ClrMap/>
elemento . As seguintes informações da especificação ISO/IEC 29500 introduzem o <ClrMap/>
elemento:
Este elemento especifica a camada de mapeamento que transforma uma definição de esquema de cores noutra. Cada atributo representa um nome de cor que pode ser referenciado neste master e o valor é a cor correspondente no tema.
Exemplo: considere o seguinte mapeamento de cores que se aplica a um diapositivo master:
<p:clrMap bg1="dk1" tx1="lt1" bg2="dk2" tx2="lt2" accent1="accent1"
accent2="accent2" accent3="accent3" accent4="accent4"
accent5="accent5"
accent6="accent6" hlink="hlink" folHlink="folHlink"/>
Classe CommonSlideData
A CommonSlideData
classe corresponde ao <cSld/>
elemento . As seguintes informações da especificação ISO/IEC 29500 introduzem o <cSld/>
elemento:
Este elemento especifica um contentor para o tipo de informações de diapositivos relevantes para todos os tipos de diapositivos. Todos os diapositivos partilham um conjunto comum de propriedades independentes do tipo de diapositivo; a descrição destas propriedades para qualquer diapositivo específico é armazenada no contentor do <cSld/>
diapositivo. Os dados de diapositivos específicos do tipo de diapositivo indicado pelo elemento principal são armazenados noutro local.
Os dados reais no <cSld/>
descrevem apenas o diapositivo principal específico; é apenas o tipo de informações armazenadas que é comum em todos os diapositivos.
Classe ExtensionListWithModification
A ExtensionListWithModification
classe corresponde ao <extLst/>
elemento . As seguintes informações do
especificação apresenta o <extLst/>
elemento:
Este elemento especifica a lista de extensões com a capacidade de modificação na qual são definidas todas as extensões futuras do tipo <ext/>
de elemento.
A lista de extensões, juntamente com as extensões futuras correspondentes, é utilizada para expandir as capacidades de armazenamento da arquitetura PresentationML. Isto permite que vários novos tipos de dados sejam armazenados nativamente dentro da arquitetura.
Observação
A utilização deste elemento extLst permite que a aplicação geradora armazene se esta propriedade de extensão foi modificada.
Classe HeaderFooter
A HeaderFooter
classe corresponde ao <hf/>
elemento . As seguintes informações da especificação ISO/IEC 29500 introduzem o <hf/>
elemento:
Este elemento especifica as informações de cabeçalho e rodapé de um diapositivo. Os cabeçalhos e rodapés consistem em marcadores de posição para texto que devem ser consistentes em todos os diapositivos e tipos de diapositivos, como uma data e hora, numeração de diapositivos e texto de cabeçalho e rodapé personalizado.
Trabalhar com a Classe HandoutMaster
Conforme mostrado no exemplo de código do SDK Open XML que se segue, todas as instâncias da HandoutMaster
classe estão associadas a uma instância da HandoutMasterPart classe, que representa um folheto master parte, uma das partes de um pacote de ficheiros de apresentação PresentationML e uma parte necessária para um ficheiro de apresentação que contém folhetos.
A HandoutMaster
classe, que representa o <handoutMaster/>
elemento, também está associada a uma série de outras classes que representam os elementos subordinados do <handoutMaster/>
elemento. Entre estas classes, conforme mostrado no seguinte exemplo de código, estão a CommonSlideData
classe, a ColorMap
classe, a ShapeTree classe e a Shape classe.
Open XML SDK Code Example
O método seguinte adiciona um novo folheto master parte a uma apresentação existente e cria uma instância de uma classe Open XML SDK HandoutMaster
na nova parte master folheto. O HandoutMaster
construtor de classes cria instâncias da CommonSlideData
classe e da ColorMap
classe . O CommonSlideData
construtor de classe cria uma instância da ShapeTree classe cujo construtor, por sua vez, cria instâncias de classe adicionais: uma instância da NonVisualGroupShapeProperties classe, uma instância da GroupShapeProperties classe e uma instância da Shape classe.
O espaço de nomes representado pela letra P
no código é o espaço de nomes.
static HandoutMasterPart CreateHandoutMasterPart(PresentationPart presentationPart)
{
HandoutMasterPart handoutMasterPart1 = presentationPart.AddNewPart<HandoutMasterPart>();
handoutMasterPart1.HandoutMaster = new HandoutMaster(
new CommonSlideData(
new ShapeTree(
new P.NonVisualGroupShapeProperties(
new P.NonVisualDrawingProperties() { Id = (UInt32Value)1U, Name = "" },
new P.NonVisualGroupShapeDrawingProperties(),
new ApplicationNonVisualDrawingProperties()),
new GroupShapeProperties(new TransformGroup()),
new P.Shape(
new P.NonVisualShapeProperties(
new P.NonVisualDrawingProperties() { Id = (UInt32Value)2U, Name = "Title 1" },
new P.NonVisualShapeDrawingProperties(new ShapeLocks() { NoGrouping = true }),
new ApplicationNonVisualDrawingProperties(new PlaceholderShape())),
new P.ShapeProperties(),
new P.TextBody(
new BodyProperties(),
new ListStyle(),
new Paragraph(new EndParagraphRunProperties() { Language = "en-US" }))))),
new P.ColorMap()
{
Background1 = D.ColorSchemeIndexValues.Light1,
Text1 = D.ColorSchemeIndexValues.Dark1,
Background2 = D.ColorSchemeIndexValues.Light2,
Text2 = D.ColorSchemeIndexValues.Dark2,
Accent1 = D.ColorSchemeIndexValues.Accent1,
Accent2 = D.ColorSchemeIndexValues.Accent2,
Accent3 = D.ColorSchemeIndexValues.Accent3,
Accent4 = D.ColorSchemeIndexValues.Accent4,
Accent5 = D.ColorSchemeIndexValues.Accent5,
Accent6 = D.ColorSchemeIndexValues.Accent6,
Hyperlink = D.ColorSchemeIndexValues.Hyperlink,
FollowedHyperlink = D.ColorSchemeIndexValues.FollowedHyperlink
});
return handoutMasterPart1;
}