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:
- Crie uma instância da classe Presentation.
- Defina as View Properties da Presentation.
- 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.