Casella di testo
In Aspose.Slides, una casella di testo è rappresentata da un AutoShape. Quasi qualsiasi forma può contenere testo, ma una tipica casella di testo non ha riempimento né bordo e visualizza solo il testo.
Questa guida spiega come aggiungere, accedere e rimuovere le caselle di testo in modo programmatico.
Aggiungere una casella di testo
Una casella di testo è semplicemente un AutoShape senza riempimento né bordo e con del testo formattato. Ecco come crearne una:
public static void addTextBox() {
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
// Crea una forma rettangolare (predefinita con riempimento, bordo e nessun testo).
IAutoShape textBox = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 75, 150, 100);
// Rimuovi riempimento e bordo per farla apparire come una tipica casella di testo.
textBox.getFillFormat().setFillType(FillType.NoFill);
textBox.getLineFormat().getFillFormat().setFillType(FillType.NoFill);
// Imposta la formattazione del testo.
IParagraph paragraph = textBox.getTextFrame().getParagraphs().get_Item(0);
IPortionFormat textFormat = paragraph.getParagraphFormat().getDefaultPortionFormat();
textFormat.getFillFormat().setFillType(FillType.Solid);
textFormat.getFillFormat().getSolidFillColor().setColor(Color.BLACK);
// Assegna il contenuto testuale effettivo.
textBox.getTextFrame().setText("Some text...");
} finally {
presentation.dispose();
}
}
💡 Nota: Qualsiasi
AutoShapeche contiene unTextFramenon vuoto può funzionare come una casella di testo.
Accedere alle caselle di testo per contenuto
Per trovare tutte le caselle di testo che contengono una parola chiave specifica (ad esempio “Slide”), itera attraverso le forme e controlla il loro testo:
public static void accessTextBox() {
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
for (IShape shape : slide.getShapes()) {
// Solo gli AutoShape possono contenere testo modificabile.
if (shape instanceof IAutoShape) {
IAutoShape autoShape = (IAutoShape) shape;
if (autoShape.getTextFrame().getText().contains("Slide")) {
// Fai qualcosa con la casella di testo corrispondente.
}
}
}
} finally {
presentation.dispose();
}
}
Rimuovere le caselle di testo per contenuto
Questo esempio trova e elimina tutte le caselle di testo nella prima diapositiva che contengono una parola chiave specifica:
public static void removeTextBox() {
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
List<IShape> shapesToRemove = new ArrayList<IShape>();
for (IShape shape : slide.getShapes()) {
if (shape instanceof IAutoShape) {
IAutoShape autoShape = (IAutoShape) shape;
if (autoShape.getTextFrame().getText().contains("Slide")) {
shapesToRemove.add(shape);
}
}
}
for (IShape shape : shapesToRemove) {
slide.getShapes().remove(shape);
}
} finally {
presentation.dispose();
}
}
💡 Suggerimento: Crea sempre una copia della raccolta di forme prima di modificarla durante l’iterazione per evitare errori di modifica della collezione.