Kako formatirati tekst u Javi
Aspose.Slides FOSS for Java pruža detaljno formatiranje teksta putem klase PortionFormat. Portion je najmanja samostalna jedinica teksta; ona se mapira na jedan formatirajući segment unutar odlomka. Ovaj vodič pokazuje kako primijeniti podebljano, kurziv, veličinu fonta i formatiranje boje na tekst u prezentaciji.
Vodič korak po korak
Korak 1: Dodajte Maven ovisnost
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Korak 2: Dodajte oblik s tekstualnim okvirom
Prije formatiranja teksta, oblik mora sadržavati TextFrame. Upotrijebite shape.addTextFrame() za stvaranje jednog.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IParagraph;
import org.aspose.slides.foss.IPortion;
import org.aspose.slides.foss.Portion;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 500, 150
);
ITextFrame tf = shape.addTextFrame("Default text: will be formatted");
prs.save("output.pptx", SaveFormat.PPTX);
}Korak 3: Pristup TextFrameu
shape.addTextFrame() vraća objekt TextFrame. Također ga možete dohvatiti kasnije putem shape.getTextFrame().
ITextFrame tf = shape.getTextFrame(); // if the frame already exists
ITextFrame tf = shape.addTextFrame(""); // creates a new frameTextFrame sadrži popis Paragraph objekata (tf.getParagraphs()). Svaki Paragraph sadrži Portion objekata (paragraph.getPortions()).
Korak 4: Primijeni podebljano i kurzivno oblikovanje
Koristite portionFormat.setFontBold() i portionFormat.setFontItalic(). Ove metode prihvaćaju NullableBool.TRUE, NullableBool.FALSE ili NullableBool.NOT_DEFINED (nasljeđuju od mastera).
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IParagraph;
import org.aspose.slides.foss.IPortion;
import org.aspose.slides.foss.Portion;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 500, 150
);
ITextFrame tf = shape.addTextFrame("Bold and italic text");
IPortionFormat fmt = tf.getParagraphs().get(0)
.getPortions().get(0).getPortionFormat();
fmt.setFontBold(NullableBool.TRUE);
fmt.setFontItalic(NullableBool.TRUE);
prs.save("bold-italic.pptx", SaveFormat.PPTX);
}Korak 5: Postavi veličinu fonta i boju
Postavite portionFormat.setFontHeight() za veličinu (u točkama) i upotrijebite getFillFormat() za boju.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IParagraph;
import org.aspose.slides.foss.IPortion;
import org.aspose.slides.foss.Portion;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 500, 150
);
ITextFrame tf = shape.addTextFrame("Large corporate-blue heading");
IPortionFormat fmt = tf.getParagraphs().get(0)
.getPortions().get(0).getPortionFormat();
fmt.setFontHeight(32); // 32pt font
fmt.setFontBold(NullableBool.TRUE);
fmt.getFillFormat().setFillType(FillType.SOLID);
fmt.getFillFormat().getSolidFillColor().setColor(
Color.fromArgb(255, 0, 70, 127)
);
prs.save("colored-text.pptx", SaveFormat.PPTX);
}Color.fromArgb(alpha, red, green, blue) prihvaća vrijednosti 0‑255 za svaki kanal.
Korak 6: Više dijelova u jednom odlomku
Jedan odlomak može sadržavati više dijelova s različitim formatiranjem. Dodajte novi Portion u kolekciju getPortions() odlomka:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IParagraph;
import org.aspose.slides.foss.IPortion;
import org.aspose.slides.foss.Portion;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 600, 100
);
ITextFrame tf = shape.addTextFrame(""); // start with empty frame
IParagraph paragraph = tf.getParagraphs().get(0);
// First portion: normal text
IPortion portion1 = paragraph.getPortions().get(0);
portion1.setText("Normal text followed by ");
portion1.getPortionFormat().setFontHeight(20);
// Second portion: bold red text
Portion portion2 = new Portion("bold red text");
portion2.getPortionFormat().setFontHeight(20);
portion2.getPortionFormat().setFontBold(NullableBool.TRUE);
portion2.getPortionFormat().getFillFormat().setFillType(FillType.SOLID);
portion2.getPortionFormat().getFillFormat().getSolidFillColor().setColor(
Color.fromArgb(255, 200, 0, 0)
);
paragraph.getPortions().add(portion2);
prs.save("mixed-format.pptx", SaveFormat.PPTX);
}Uobičajeni problemi i rješenja
Tekst se pojavljuje crno čak i nakon postavljanja boje
Provjerite da se getFillFormat().setFillType(FillType.SOLID) pozove prije dodjele boje. Bez postavljanja vrste ispune, promjena boje možda neće imati učinak.
NullableBool.TRUE vs. true
portionFormat.setFontBold() očekuje NullableBool.TRUE, a ne Java-ov true. Prosljeđivanje boolean vrijednosti uzrokovat će pogrešku pri kompilaciji jer metoda očekuje NullableBool enumeraciju.
Font se ne pojavljuje u spremljenoj datoteci
Metoda setLatinFont() postavlja latinsku obitelj fontova. Ako nije postavljeno, koristi se font teme prezentacije. Prilagođeni fontovi moraju biti ugrađeni ili dostupni na računalu za pregled.
Često postavljana pitanja
Kako promijeniti obitelj fonta?
Postavi portionFormat.setLatinFont():
fmt.setLatinFont(new FontData("Arial"));FontData prihvaća naziv obitelji fonta kao string.
Kako postaviti poravnanje odlomka?
Koristite paragraphFormat.setAlignment():
import org.aspose.slides.foss.TextAlignment;
tf.getParagraphs().get(0).getParagraphFormat()
.setAlignment(TextAlignment.CENTER);Podržane vrijednosti: LEFT, CENTER, RIGHT, JUSTIFY.
Kako postaviti razmak između redaka?
Koristite paragraphFormat.setSpaceBefore() (točke prije odlomka) ili paragraphFormat.setSpaceAfter() (točke nakon odlomka):
tf.getParagraphs().get(0).getParagraphFormat().setSpaceBefore(12); // 12pt before
tf.getParagraphs().get(0).getParagraphFormat().setSpaceAfter(6); // 6pt after