Gestire gli oggetti inchiostro della presentazione su Android
Introduzione
PowerPoint fornisce una funzionalità di inchiostro che consente di disegnare tratti liberi. L’inchiostro può essere usato per evidenziare altri oggetti, mostrare connessioni e processi e attirare l’attenzione su elementi specifici di una diapositiva.
Aspose.Slides fornisce i tipi necessari per lavorare con gli oggetti inchiostro. Ad esempio, l’interfaccia IInk rappresenta un oggetto inchiostro su una diapositiva.
Differenze tra oggetti normali e oggetti inchiostro
Gli oggetti su una diapositiva PowerPoint sono tipicamente rappresentati da oggetti forma. Nella sua forma più semplice, una forma è un contenitore che definisce l’area dell’oggetto stesso (il suo riquadro) insieme a proprietà come la dimensione del contenitore, la forma e lo sfondo. Per ulteriori informazioni, vedere Shape Layout Format.
Tuttavia, quando PowerPoint gestisce un oggetto inchiostro, ignora tutte le proprietà del riquadro dell’oggetto (contenitore) tranne la sua dimensione. La dimensione dell’area del contenitore è determinata dai metodi standard IShape.getWidth e IShape.getHeight :

Tracce di inchiostro
Una traccia di inchiostro è un elemento di base usato per registrare la traiettoria di una penna mentre l’utente scrive in inchiostro digitale. Una traccia memorizza una sequenza 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 vengono renderizzati, producono un’immagine come questa:

Proprietà del pennello per il disegno
Un pennello è usato per disegnare linee che collegano i punti di una traccia di inchiostro. Il pennello ha il proprio colore e la propria dimensione, rappresentati dai metodi IInkBrush.getColor e IInkBrush.getSize .
Impostare il colore del pennello inchiostro
Questo codice Java mostra come impostare il colore di un pennello inchiostro:
import android.graphics.Color;
import com.aspose.slides.*;
Presentation presentation = new Presentation("pres.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IInk ink = (IInk) slide.getShapes().get_Item(0);
IInkBrush brush = ink.getTraces()[0].getBrush();
brush.setColor(Color.RED);
} finally {
presentation.dispose();
}
Impostare la dimensione del pennello inchiostro
Questo codice Java mostra come impostare la dimensione di un pennello inchiostro:
import com.aspose.slides.*;
import com.aspose.slides.android.SizeF;
Presentation presentation = new Presentation("pres.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IInk ink = (IInk) slide.getShapes().get_Item(0);
IInkBrush brush = ink.getTraces()[0].getBrush();
SizeF brushSize = new SizeF(5, 10);
brush.setSize(brushSize);
} finally {
presentation.dispose();
}
In generale, la larghezza e l’altezza di un pennello non coincidono, quindi PowerPoint non visualizza la dimensione del pennello (la relativa sezione dei dati è grigio). Quando larghezza e altezza coincidono, PowerPoint mostra la sua dimensione in questo modo:

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

Il contenitore (riquadro) non tiene conto della dimensione dei pennelli – presume sempre che lo spessore della linea sia zero (vedi l’immagine precedente).
Pertanto, per determinare l’area visibile dell’intero oggetto inchiostro, è necessario considerare la dimensione del pennello delle sue tracce. Qui l’oggetto di destinazione (la traccia di testo scritto a mano) è stato ridimensionato alla dimensione del contenitore (riquadro). Quando la dimensione del contenitore cambia, la dimensione del pennello rimane costante, e viceversa.

PowerPoint utilizza un comportamento simile per gli oggetti testo:

Controllare l’aspetto dell’inchiostro durante l’esportazione e il rendering
Aspose.Slides fornisce l’interfaccia IInkOptions per controllare come gli oggetti inchiostro appaiono nell’output esportato o renderizzato. È possibile usare le sue proprietà per nascondere completamente l’inchiostro o per modificare il modo in cui le operazioni di maschera del pennello inchiostro sono interpretate.
Le opzioni inchiostro sono disponibili attraverso le opzioni di esportazione o rendering per diversi tipi di output:
| Output | Proprietà opzioni inchiostro |
|---|---|
| PdfOptions.getInkOptions | |
| HTML | HtmlOptions.getInkOptions |
| SVG | SVGOptions.getInkOptions |
| TIFF | TiffOptions.getInkOptions |
| Immagine diapositiva | RenderingOptions.getInkOptions |
I seguenti metodi di IInkOptions espongono le stesse due impostazioni:
- IInkOptions.getHideInk determina se gli oggetti inchiostro sono inclusi nell’output. Il valore predefinito è
false. - IInkOptions.getInterpretMaskOpAsOpacity determina se un’operazione di maschera è interpretata come opacità quando si renderizza un pennello inchiostro. Il valore predefinito è
true; chiamare IInkOptions.setInterpretMaskOpAsOpacity confalseper usare l’operazione ROP invece.
Nascondere gli oggetti inchiostro nell’output PDF
Per impostazione predefinita, gli oggetti inchiostro rimangono visibili durante l’esportazione. Per creare un output pulito senza annotazioni scritte a mano o altri contenuti inchiostro, chiamare IInkOptions.setHideInk con true.
Il seguente esempio Java esporta una presentazione in PDF nascondendo tutti gli oggetti inchiostro:
import com.aspose.slides.*;
Presentation presentation = new Presentation("presentation.pptx");
try {
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.getInkOptions().setHideInk(true);
presentation.save("presentation_without_ink.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
Nascondere gli oggetti inchiostro durante il rendering di una diapositiva come immagine
Per nascondere gli oggetti inchiostro durante il rendering delle diapositive come immagini bitmap, configurare RenderingOptions.getInkOptions e passare le opzioni di rendering a ISlide.getImage.
Il seguente esempio Java rende la prima diapositiva come immagine PNG senza oggetti inchiostro:
import com.aspose.slides.*;
Presentation presentation = new Presentation("presentation.pptx");
try {
RenderingOptions renderingOptions = new RenderingOptions();
renderingOptions.getInkOptions().setHideInk(true);
ISlide slide = presentation.getSlides().get_Item(0);
IImage image = slide.getImage(renderingOptions);
try {
image.save("slide_without_ink.png", ImageFormat.Png);
} finally {
image.dispose();
}
} finally {
presentation.dispose();
}
Controllare il rendering della maschera di inchiostro
L’impostazione IInkOptions.getInterpretMaskOpAsOpacity controlla come le operazioni di maschera sono interpretate durante il rendering dei pennelli inchiostro. Il valore predefinito è true, che utilizza l’opacità. Per usare invece l’operazione ROP, chiamare IInkOptions.setInterpretMaskOpAsOpacity con false.
Il seguente esempio Java esporta una diapositiva in SVG e utilizza il rendering basato su ROP per le operazioni di maschera inchiostro:
import com.aspose.slides.*;
import java.io.FileOutputStream;
Presentation presentation = new Presentation("presentation.pptx");
try {
SVGOptions svgOptions = new SVGOptions();
svgOptions.getInkOptions().setInterpretMaskOpAsOpacity(false);
ISlide slide = presentation.getSlides().get_Item(0);
FileOutputStream stream = new FileOutputStream("slide.svg");
try {
slide.writeAsSvg(stream, svgOptions);
} finally {
stream.close();
}
} finally {
presentation.dispose();
}
La stessa impostazione può essere applicata tramite TiffOptions.getInkOptions quando si esporta una presentazione o si renderizza una diapositiva in TIFF.
Scegliere se nascondere o preservare l’inchiostro
Quando è necessaria una versione pulita di una presentazione annotata per la distribuzione senza segni di revisione, chiamare IInkOptions.setHideInk con true durante l’esportazione.
Lasciare IInkOptions.getHideInk al valore predefinito false quando le annotazioni inchiostro fanno parte del contenuto previsto, ad esempio commenti di revisione, note scritte a mano, evidenziazioni o disegni che devono rimanere visibili nel risultato esportato. Ciò consente alle applicazioni di generare uscite di revisione e finali separate dalla stessa presentazione senza modificare gli oggetti inchiostro originali.
FAQ
Posso cambiare il colore o la dimensione di un tratto di inchiostro esistente?
Sì. Ottieni la traccia da IInk.getTraces, quindi modifica il suo IInkTrace.getBrush. Chiama IInkBrush.setColor o IInkBrush.setSize per cambiare il pennello.
Nascondere l’inchiostro modifica la presentazione di origine?
No. Chiamare IInkOptions.setHideInk influisce solo sul risultato renderizzato o esportato; non rimuove né modifica gli oggetti inchiostro nella presentazione di origine.
Quali formati di esportazione supportano le opzioni inchiostro?
È possibile configurare le opzioni inchiostro per PDF, HTML, SVG, TIFF e immagini bitmap delle diapositive tramite le rispettive opzioni di esportazione o rendering mostrate sopra.
Ulteriori letture
- Per informazioni generali sulle forme, vedere la sezione PowerPoint Shapes.
- Per ulteriori dettagli sui valori effettivi, vedere Shape Effective Properties.
- Per i dettagli sull’esportazione PDF, vedere Convert PPT and PPTX to PDF.
- Per i dettagli sull’esportazione HTML, vedere Convert PowerPoint Presentations to HTML.
- Per i dettagli sull’esportazione SVG, vedere Render Presentation Slides as SVG Images.
- Per i dettagli sull’esportazione TIFF, vedere Convert PowerPoint Presentations to TIFF.
- Per i dettagli sul rendering diapositiva‑immagine, vedere Convert Presentation Slides to Images.