Recuperar e Atualizar Propriedades de Visualização da Apresentação em PHP

Introdução

A visualização normal consiste em três regiões de conteúdo: o próprio slide, uma região de conteúdo lateral e uma região de conteúdo inferior. Propriedades referentes ao posicionamento das diferentes regiões de conteúdo. Essas informações permitem que a aplicação salve seu estado de visualização no arquivo, de modo que, ao ser reaberta, a visualização esteja no mesmo estado em que a apresentação foi salva pela última vez.

O método ViewProperties::getNormalViewProperties foi adicionado para fornecer acesso às propriedades de visualização normal da apresentação.

As classes NormalViewProperties, NormalViewRestoredProperties e seus descendentes, bem como o enum SplitterBarStateType foram adicionados.

Sobre INormalViewProperties

Representa as propriedades de visualização normal.

Os métodos getShowOutlineIcons e setShowOutlineIcons especificam se a aplicação deve mostrar ícones ao exibir conteúdo de contorno em qualquer das regiões de conteúdo do modo de visualização normal.

Os métodos getSnapVerticalSplitter e setSnapVerticalSplitter especificam se a divisória vertical deve colapsar para um estado minimizado quando a região lateral for suficientemente pequena.

A propriedade getPreferSingleView e setPreferSingleView especificam se o usuário prefere ver uma única região de conteúdo em tela cheia em vez da visualização normal padrão com três regiões de conteúdo. Quando habilitado, a aplicação pode optar por exibir uma das regiões de conteúdo em toda a janela.

Os métodos getVerticalBarState e getHorizontalBarState especificam o estado em que a barra de divisão horizontal ou vertical deve ser exibida. Uma barra de divisão horizontal separa o slide da região de conteúdo abaixo do slide; a barra de divisão vertical separa o slide da região de conteúdo lateral. Valores possíveis são: SplitterBarStateType::Minimized, SplitterBarStateType::Maximized e SplitterBarStateType::Restored.

Os métodos getRestoredLeft e getRestoredTop especificam o dimensionamento da região superior ou lateral do slide na visualização normal, quando o valor SplitterBarStateType::Restored é aplicado para getVerticalBarState e getHorizontalBarState respectivamente.

Sobre Restoring INormalViewProperties

Especifica o dimensionamento da região do slide (largura quando filho de getRestoredTop, altura quando filho de getRestoredLeft) da visualização normal, quando a região tem um tamanho restaurado variável (nem minimizado nem maximizado).

O método getDimensionSize especifica o tamanho da região do slide (largura quando filho de restoredTop, altura quando filho de restoredLeft).

O método getAutoAdjust especifica se o tamanho da região de conteúdo lateral deve compensar o novo tamanho ao redimensionar a janela que contém a visualização dentro da aplicação.

Um exemplo abaixo mostra como acessar as propriedades ViewProperties::getNormalViewProperties de uma apresentação.

  $pres = new Presentation();
  try {
    $pres->getViewProperties()->getNormalViewProperties()->setHorizontalBarState(SplitterBarStateType::Restored);
    $pres->getViewProperties()->getNormalViewProperties()->setVerticalBarState(SplitterBarStateType::Maximized);

    # Restaurar as propriedades de visualização da apresentação
    $pres->getViewProperties()->getNormalViewProperties()->getRestoredTop()->setAutoAdjust(true);
    $pres->getViewProperties()->getNormalViewProperties()->getRestoredTop()->setDimensionSize(80);
    $pres->getViewProperties()->getNormalViewProperties()->setShowOutlineIcons(true);
    $pres->save("presentation_normal_view_state.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

Definir o Valor de Zoom Padrão

Para definir as propriedades de visualização, siga os passos abaixo:

  1. Crie uma instância da classe Presentation.
  2. Defina as View Properties da Presentation.
  3. Grave a apresentação como um arquivo PPTX.
    No exemplo abaixo, definimos o valor de zoom tanto para a visualização de slide quanto para a visualização de notas.
  $presentation = new Presentation();
  try {
    # Definindo as propriedades de visualização da apresentação
    $presentation->getViewProperties()->getSlideViewProperties()->setScale(100); // Valor de zoom em porcentagem para visualização de slide
    $presentation->getViewProperties()->getNotesViewProperties()->setScale(100); // Valor de zoom em porcentagem para visualização de notas

    $presentation->save("Zoom_out.pptx", SaveFormat::Pptx);
  } finally {
    $presentation->dispose();
  }

FAQ

Posso definir configurações de visualização diferentes para seções distintas de uma apresentação?

As configurações de visualização são definidas ao nível da apresentação (Normal View/Slide View), não por seção, portanto um único conjunto de parâmetros se aplica a todo o documento quando ele é aberto.

Posso pré‑definir estados de visualização diferentes para usuários diferentes?

Não. As configurações são armazenadas no arquivo e são compartilhadas. Aplicativos visualizadores podem respeitar preferências do usuário, mas o arquivo em si contém um único conjunto de propriedades de visualização.

Posso preparar um modelo com View Properties pré‑definidos para que novas apresentações abram da mesma forma?

Sim. Como as view properties são armazenadas ao nível da apresentação, você pode incorporá‑las em um modelo e criar novos documentos a partir dele com a mesma configuração de visualização inicial.