Gerenciar Objetos de Tinta de Apresentação em JavaScript

Introdução

PowerPoint oferece a função de tinta para permitir que você desenhe figuras não‑padrão, que podem ser usadas para destacar outros objetos, mostrar conexões e processos, e chamar a atenção para itens específicos em um slide.

Aspose.Slides fornece todos os tipos de Ink (por exemplo, a classe Ink) que você precisa para criar e gerenciar objetos de tinta.

Diferenças entre Objeto Normal e Objetos de Tinta

Objetos em um slide do PowerPoint são tipicamente representados por objetos de forma. Um objeto de forma, em sua forma mais simples, é um contêiner que define a área do próprio objeto (sua moldura) juntamente com suas propriedades. Estas últimas incluem o tamanho da área do contêiner, a forma do contêiner, o plano de fundo do contêiner, etc. Para informações, veja Formato de Layout de Forma.

Contudo, quando o PowerPoint lida com um objeto de tinta, ele ignora todas as propriedades da moldura do objeto (contêiner) exceto seu tamanho. O tamanho da área do contêiner é determinado pelos valores padrão width e height:

ink_powerpoint1

Traços de Inkshape

Traço é um elemento básico ou padrão usado para registrar a trajetória de uma caneta enquanto o usuário escreve tinta digital. Traços são gravações que descrevem sequências de pontos conectados.

A forma mais simples de codificação especifica as coordenadas X e Y de cada ponto de amostra. Quando todos os pontos conectados são renderizados, produzem uma imagem como esta:

ink_powerpoint2

Propriedades do Pincel para Desenho

Você pode usar um pincel para desenhar linhas conectando os pontos dos elementos de traço. O pincel tem sua própria cor e tamanho, correspondendo aos métodos Brush.setColor e Brush.setSize.

Definir Cor do Pincel de Ink

Este código JavaScript mostra como definir a cor para um pincel:

var pres = new aspose.slides.Presentation("pres.pptx");
try {
    var ink = pres.getSlides().get_Item(0).getShapes().get_Item(0);
    var traces = ink.getTraces();
    var brush = traces[0].getBrush();
    var brushColor = brush.getColor();
    brush.setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Definir Tamanho do Pincel de Ink

Este código JavaScript mostra como definir o tamanho para um pincel:

var pres = new aspose.slides.Presentation("pres.pptx");
try {
    var ink = pres.getSlides().get_Item(0).getShapes().get_Item(0);
    var traces = ink.getTraces();
    var brush = traces[0].getBrush();
    var brushSize = brush.getSize();
    brush.setSize(java.newInstanceSync("java.awt.Dimension", 5, 10));
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Geralmente, a largura e a altura de um pincel não coincidem, portanto o PowerPoint não exibe o tamanho do pincel (a seção de dados fica acinzentada). Mas quando a largura e a altura do pincel coincidem, o PowerPoint exibe seu tamanho desta forma:

ink_powerpoint3

Para clareza, vamos aumentar a altura do objeto de tinta e revisar as dimensões importantes:

ink_powerpoint4

O contêiner (moldura) não considera o tamanho dos pincéis — ele sempre supõe que a espessura da linha é zero (veja a última imagem).

Portanto, para determinar a área visível de todo o objeto de tinta, devemos considerar o tamanho do pincel dos objetos de traço. Aqui, o objeto alvo (o objeto de traço de texto manuscrito) foi redimensionado para o tamanho do contêiner (moldura). Quando o tamanho do contêiner (moldura) muda, o tamanho do pincel permanece constante e vice‑versa.

ink_powerpoint5

O PowerPoint apresenta o mesmo comportamento ao lidar com textos:

ink_powerpoint6

Leitura adicional