Gerenciar guias de desenho em apresentações em Java

Visão geral

Guias de desenho são linhas horizontais e verticais ajustáveis que ajudam os usuários a alinhar formas de forma consistente ao editar uma apresentação no PowerPoint. Elas são especialmente úteis quando um aplicativo gera uma apresentação que será refinada manualmente posteriormente: o aplicativo pode salvar os mesmos auxílios de alinhamento que os autores devem seguir ao adicionar ou mover conteúdo.

Guias de desenho são auxílios de edição, não conteúdo de slide. Elas não aparecem em uma apresentação de slides ou na saída renderizada. Aspose.Slides for Java as disponibiliza através da interface IDrawingGuidesCollection. Um guia é representado por IDrawingGuide e possui uma orientação, uma posição e uma cor.

A posição é medida em pontos a partir do canto superior esquerdo do slide ou mestre relevante. Um guia vertical usa uma coordenada horizontal, tipicamente entre zero e a largura do slide. Um guia horizontal usa uma coordenada vertical, tipicamente entre zero e a altura do slide.

Adicionar guias à visualização de slide

Use ICommonSlideViewProperties.getDrawingGuides para gerenciar os guias exibidos ao editar slides normais. Chame IDrawingGuidesCollection.add com um valor de Orientation e uma posição em pontos.

O exemplo a seguir adiciona um guia vertical à direita do centro do slide e um guia horizontal abaixo dele:

import com.aspose.slides.*;
import java.awt.geom.Dimension2D;

Presentation presentation = new Presentation();
try {
    Dimension2D slideSize = presentation.getSlideSize().getSize();
    IDrawingGuidesCollection guides = presentation.getViewProperties().getSlideViewProperties().getDrawingGuides();

    guides.add(Orientation.Vertical, (float) (slideSize.getWidth() / 2 + 12.5));
    guides.add(Orientation.Horizontal, (float) (slideSize.getHeight() / 2 + 12.5));

    presentation.save("drawing-guides.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Acessar guias de desenho

Os métodos IDrawingGuidesCollection.getCount e IDrawingGuidesCollection.get_Item fornecem acesso aos guias existentes. Os métodos IDrawingGuide.getOrientation, IDrawingGuide.getPosition e IDrawingGuide.getColor retornam valores que também podem ser alterados através dos respectivos métodos setter.

O exemplo a seguir lê os guias da visualização de slide da apresentação criada acima:

import com.aspose.slides.*;

Presentation presentation = new Presentation("drawing-guides.pptx");
try {
    IDrawingGuidesCollection guides = presentation.getViewProperties().getSlideViewProperties().getDrawingGuides();

    for (int index = 0; index < guides.getCount(); index++) {
        IDrawingGuide guide = guides.get_Item(index);
        System.out.println("Guide " + index + ": orientation = " + guide.getOrientation() + ", position = " + guide.getPosition() + ", color = " + guide.getColor());
    }
} finally {
    presentation.dispose();
}

Adicionar guias a slides mestre e de layout

Um slide mestre e cada um de seus slides de layout podem ter suas próprias coleções de guias de desenho. Use IMasterSlide.getDrawingGuides para um slide mestre e ILayoutSlide.getDrawingGuides para um slide de layout.

O exemplo a seguir adiciona um guia vertical ao primeiro slide mestre e um guia horizontal ao primeiro slide de layout:

import com.aspose.slides.*;
import java.awt.geom.Dimension2D;

Presentation presentation = new Presentation();
try {
    Dimension2D slideSize = presentation.getSlideSize().getSize();
    IDrawingGuidesCollection masterGuides = presentation.getMasters().get_Item(0).getDrawingGuides();
    IDrawingGuidesCollection layoutGuides = presentation.getLayoutSlides().get_Item(0).getDrawingGuides();

    masterGuides.add(Orientation.Vertical, (float) (slideSize.getWidth() / 2 - 20));
    layoutGuides.add(Orientation.Horizontal, (float) (slideSize.getHeight() / 2 + 20));

    presentation.save("master-layout-drawing-guides.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Adicionar guias a mestres de anotações e folhetos

Mestres de anotações e mestres de folhetos também suportam guias de desenho. Use IMasterNotesSlide.getDrawingGuides e IMasterHandoutSlide.getDrawingGuides para acessar suas coleções. Se uma apresentação não contiver um desses mestres, IMasterNotesSlideManager.setDefaultMasterNotesSlide ou IMasterHandoutSlideManager.setDefaultMasterHandoutSlide cria o mestre padrão e o retorna.

O exemplo a seguir adiciona um guia horizontal a um mestre de anotações e um guia vertical a um mestre de folhetos:

import com.aspose.slides.*;
import java.awt.geom.Dimension2D;

Presentation presentation = new Presentation();
try {
    Dimension2D notesSize = presentation.getNotesSize().getSize();
    IMasterNotesSlide notesMaster = presentation.getMasterNotesSlideManager().setDefaultMasterNotesSlide();
    IMasterHandoutSlide handoutMaster = presentation.getMasterHandoutSlideManager().setDefaultMasterHandoutSlide();

    notesMaster.getDrawingGuides().add(Orientation.Horizontal, (float) (notesSize.getHeight() / 2 + 50));
    handoutMaster.getDrawingGuides().add(Orientation.Vertical, (float) (notesSize.getWidth() / 2 - 50));

    presentation.save("notes-handout-drawing-guides.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Limpar guias de desenho

Chame IDrawingGuidesCollection.clear para remover todos os guias de uma coleção específica. Limpar uma coleção não afeta os guias armazenados em outro escopo.

O exemplo a seguir limpa os guias da visualização de slide e todos os guias em mestres de slide, slides de layout, o mestre de anotações e o mestre de folhetos sem criar mestres ausentes:

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation-with-guides.pptx");
try {
    presentation.getViewProperties().getSlideViewProperties().getDrawingGuides().clear();

    for (IMasterSlide masterSlide : presentation.getMasters()) {
        masterSlide.getDrawingGuides().clear();
    }

    for (ILayoutSlide layoutSlide : presentation.getLayoutSlides()) {
        layoutSlide.getDrawingGuides().clear();
    }

    IMasterNotesSlide notesMaster = presentation.getMasterNotesSlideManager().getMasterNotesSlide();
    if (notesMaster != null) {
        notesMaster.getDrawingGuides().clear();
    }

    IMasterHandoutSlide handoutMaster = presentation.getMasterHandoutSlideManager().getMasterHandoutSlide();
    if (handoutMaster != null) {
        handoutMaster.getDrawingGuides().clear();
    }

    presentation.save("presentation-without-guides.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

FAQ

Os guias de desenho aparecem em uma apresentação de slides ou em imagens exportadas?

Não. Os guias de desenho são auxílios de alinhamento para edição e não são renderizados como conteúdo da apresentação.

Um guia de desenho pode ser adicionado diretamente a um slide normal individual?

Os guias de edição de slide normal são armazenados nas propriedades de visualização de slide da apresentação. Coleções separadas de guias estão disponíveis para mestres de slide, slides de layout, mestres de anotações e mestres de folhetos.

Quais unidades são usadas para as posições dos guias?

As posições são especificadas em pontos, onde 72 pontos equivalem a uma polegada. As posições verticais são medidas a partir da borda esquerda, e as posições horizontais são medidas a partir da borda superior.

Limpar guias de desenho remove formas ou altera o conteúdo do slide?

Não. O método IDrawingGuidesCollection.clear remove apenas os guias na coleção selecionada. Formas e outros conteúdos do slide permanecem inalterados.