Gestire gli oggetti Ink della presentazione in .NET

Introduzione

PowerPoint offre la funzione ink per consentire di disegnare figure non standard, che possono essere usate per evidenziare altri oggetti, mostrare connessioni e processi, e attirare l’attenzione su elementi specifici di una diapositiva.

Aspose.Slides fornisce l’interfaccia Aspose.Slides.Ink, che contiene i tipi necessari per creare e gestire oggetti ink.

Differenze tra Oggetti Regolari e Oggetti Ink

Gli oggetti su una diapositiva PowerPoint sono tipicamente rappresentati da oggetti shape. Un oggetto shape, nella sua forma più semplice, è un contenitore che definisce l’area dell’oggetto stesso (il suo frame) insieme alle sue proprietà. Quest’ultima include la dimensione dell’area del contenitore, la forma del contenitore, lo sfondo del contenitore, ecc. Per ulteriori informazioni, vedere Shape Layout Format.

Tuttavia, quando PowerPoint gestisce un oggetto ink, ignora tutte le proprietà del frame dell’oggetto (contenitore) tranne la sua dimensione. La dimensione dell’area del contenitore è determinata dai valori standard width e height:

ink_powerpoint1

Tracce Inkshape

Una traccia è un elemento di base o uno standard utilizzato per registrare la traiettoria di una penna mentre l’utente scrive in digitale. Le tracce sono registrazioni che descrivono sequenze di punti collegati.

La forma più semplice di codifica specifica le coordinate X e Y di ciascun punto di campionamento. Quando tutti i punti collegati sono renderizzati, producono un’immagine come questa:

ink_powerpoint2

Proprietà del Pennello per il Disegno

È possibile utilizzare un pennello per disegnare linee che collegano i punti degli elementi di traccia. Il pennello ha il proprio colore e dimensione, corrispondenti alle proprietà Brush.Color e Brush.Size.

Impostare il Colore del Pennello Ink

Questo codice C# mostra come impostare il colore per un pennello:

using (Presentation pres = new Presentation("pres.pptx"))
{
    IInk ink = (IInk)pres.Slides[0].Shapes[0];
    IInkTrace[] traces = ink.Traces;
    IInkBrush brush = traces[0].Brush;
    Color brushColor = brush.Color;
    brush.Color = Color.Red;
}

Impostare la Dimensione del Pennello Ink

Questo codice C# mostra come impostare la dimensione per un pennello:

using (Presentation pres = new Presentation("pres.pptx"))
{
    IInk ink = (IInk)pres.Slides[0].Shapes[0];
    IInkTrace[] traces = ink.Traces;
    IInkBrush brush = traces[0].Brush;
    SizeF brushSize = brush.Size;
    brush.Size = new SizeF(5f, 10f);
}

In generale, la larghezza e l’altezza di un pennello non corrispondono, quindi PowerPoint non visualizza la dimensione del pennello (la sezione dati è grigia). Quando invece la larghezza e l’altezza del pennello coincidono, PowerPoint mostra la sua dimensione in questo modo:

ink_powerpoint3

Per chiarezza, aumentiamo l’altezza dell’oggetto ink e rivediamo le dimensioni importanti:

ink_powerpoint4

Il contenitore (frame) non considera la dimensione dei pennelli—presume sempre che lo spessore della linea sia zero (vedi l’ultima immagine).

Pertanto, per determinare l’area visibile dell’intero oggetto ink, dobbiamo considerare la dimensione del pennello delle tracce. Qui, l’oggetto target (la traccia del testo scritto a mano) è stato scalato alla dimensione del contenitore (frame). Quando la dimensione del contenitore (frame) cambia, la dimensione del pennello rimane costante e viceversa.

ink_powerpoint5

PowerPoint mostra lo stesso comportamento quando gestisce i testi:

ink_powerpoint6

Ulteriori letture