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 o aplicativo salve seu estado de visualização no arquivo, de modo que, ao ser reaberto, 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 propriedades da visualização normal.

Os métodos getShowOutlineIcons e setShowOutlineIcons especificam se o aplicativo 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 reduzir a 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 janela inteira em vez da visualização normal padrão com três regiões de conteúdo. Se habilitado, o aplicativo pode escolher 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 divisória horizontal ou vertical deve ser mostrada. Uma barra divisória horizontal separa o slide da região de conteúdo abaixo do slide; a barra divisória vertical separa o slide da região de conteúdo lateral. Os 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 Restaurar 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 do aplicativo.

Um exemplo apresentado 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 apresentado abaixo, definimos o valor de zoom para a visualização de slide e também 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 a visualização de slide
    $presentation->getViewProperties()->getNotesViewProperties()->setScale(100); // Valor de zoom em porcentagem para a visualização de notas

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

Definir o Espaçamento da Grade

Use Presentation::getViewProperties para acessar as configurações de visualização de toda a apresentação. Os métodos ViewProperties::getGridSpacing e ViewProperties::setGridSpacing leem ou alteram o intervalo da grade de edição subjacente. Essa configuração se aplica a toda a apresentação, não a um slide individual. O espaçamento da grade é especificado em pontos, onde 72 pontos equivalem a uma polegada. Use um valor positivo, conforme exigido pela documentação da API.

O exemplo a seguir abre um demo.pptx existente, exibe o espaçamento atual da grade, define um intervalo de um quarto de polegada e salva o resultado.

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation("demo.pptx");
try {
    $gridSpacing = $presentation->getViewProperties()->getGridSpacing();
    echo "Current grid spacing: " . $gridSpacing . " points\n";

    $presentation->getViewProperties()->setGridSpacing(18.0);
    $presentation->save("grid-spacing.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

A grade difere dos drawing guides. O espaçamento da grade controla um intervalo regular, enquanto os guias de desenho são linhas de alinhamento horizontais ou verticais posicionadas individualmente. Adicionar, mover ou limpar guias de desenho não altera o espaçamento da grade.

Tanto a grade quanto os guias de desenho são auxílios de edição. Eles não são renderizados como conteúdo de slide em PDF, imagens, SVG ou em uma apresentação de slides. Armazenar o espaçamento da grade não garante que um editor exibirá a grade: sua visibilidade também depende das preferências do visualizador ou do editor.

Mostrar ou Ocultar Comentários ao Abrir uma Apresentação

Use Presentation::getViewProperties para acessar as configurações de visualização de toda a apresentação. Use ViewProperties::getShowComments e ViewProperties::setShowComments para ler ou alterar a preferência armazenada sobre se os comentários devem ser mostrados quando a apresentação é aberta no PowerPoint ou em outro editor compatível.

Essa configuração controla apenas a preferência de visualização armazenada. Ela não adiciona, remove, edita ou resolve comentários. Ocultar comentários preserva seu conteúdo, autores, posições, respostas e status. Veja Presentation Comments para operações que alteram os próprios comentários.

O exemplo a seguir requer um comments.pptx existente contendo comentários. Ele exibe a configuração de visibilidade atual, solicita que os comentários sejam ocultados e salva um novo PPTX sem remover nenhum comentário. Também usa ViewProperties::setLastView com ViewType::SlideView para configurar a visualização de edição inicial juntamente com a visibilidade de comentários.

use aspose\slides\NullableBool;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\ViewType;

$presentation = new Presentation("comments.pptx");
try {
    $showComments = $presentation->getViewProperties()->getShowComments();
    echo "Current comment visibility: " . java_values($showComments) . PHP_EOL;

    $presentation->getViewProperties()->setShowComments(NullableBool::False);
    $presentation->getViewProperties()->setLastView(ViewType::SlideView);
    $presentation->save("comments-hidden.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

Essa configuração não determina se os comentários são incluídos nas exportações para PDF, HTML, imagem, notas ou folhetos. Configure as opções específicas de exportação separadamente.

FAQ

Por que a grade não está visível após eu reabrir a apresentação?

O arquivo armazena o espaçamento da grade, mas o editor controla se a grade é exibida. Verifique as configurações de visibilidade da grade no editor.

Limpar guias de desenho altera o espaçamento da grade?

Não. Guias de desenho e espaçamento da grade são configurações independentes. Limpar guias deixa o intervalo da grade armazenado inalterado.

Posso definir configurações de visualização diferentes para seções diferentes 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 de visualização podem respeitar preferências de usuário, mas o próprio arquivo 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.