Kā formatēt tekstu Java
Aspose.Slides FOSS for Java provides fine-grained text formatting through the PortionFormat klase. A Portion ir mazākā neatkarīgā teksta vienība; tā atbilst vienam formatēšanas posmam rindkopā. Šis ceļvedis parāda, kā prezentācijā uz teksta piemērot treknrakstu, slīprakstu, fonta lielumu un krāsas formatēšanu.
Solī pa solim rokasgrāmata
1. solis: Pievienojiet Maven atkarību
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>2. solis: Pievienojiet formu ar teksta rāmi
Pirms teksta formatēšanas formai jābūt TextFrame. Izmantojiet shape.addTextFrame() lai izveidotu vienu.
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);
}3. solis: Piekļūstiet TextFrame
shape.addTextFrame() atgriež TextFrame objektu. To varat arī vēlāk izgūt, izmantojot shape.getTextFrame().
ITextFrame tf = shape.getTextFrame(); // if the frame already exists
ITextFrame tf = shape.addTextFrame(""); // creates a new frameA TextFrame satur sarakstu ar Paragraph objektus (tf.getParagraphs()). Katrs Paragraph satur Portion objektus (paragraph.getPortions()).
4. solis: Pielietojiet treknraksta un slīpraksta formatēšanu
Izmantojiet portionFormat.setFontBold() un portionFormat.setFontItalic(). Šīs metodes pieņem NullableBool.TRUE, NullableBool.FALSE, vai NullableBool.NOT_DEFINED (mantot no galvenā).
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);
}5. solis: Iestatiet fonta lielumu un krāsu
Iestatīt portionFormat.setFontHeight() izmēram (punktos) un lietot getFillFormat() krāsai.
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) pieņem vērtības 0-255 katram kanālam.
6. solis: Vairāki fragmenti vienā rindkopā
Viens rindkopa var saturēt vairākas daļas ar atšķirīgu formatējumu. Pievienojiet jaunu Portion rindkopas getPortions() kolekcija:
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);
}Biežāk sastopamās problēmas un to risinājumi
Teksts parādās melns, pat pēc krāsas iestatīšanas
Nodrošiniet getFillFormat().setFillType(FillType.SOLID) tiek izsaukts pirms krāsas piešķiršanas. Bez aizpildījuma tipa iestatīšanas krāsas maiņa var nebūt ietekmīga.
NullableBool.TRUE pret true
portionFormat.setFontBold() gaida NullableBool.TRUE, ne Java’s true. Booleana nodošana izraisīs kompilācijas kļūdu, jo metode sagaida NullableBool enum.
Fonts neparādās saglabātajā failā
Šis setLatinFont() metode iestata Latīņu fontu ģimeni. Ja nav iestatīta, tiek izmantots prezentācijas tēmas fonts. Pielāgotie fonti jāiekļauj vai jābūt pieejamiem skatīšanas datorā.
Biežāk uzdotie jautājumi
Kā es varu mainīt fonta ģimeni?
Iestatīt portionFormat.setLatinFont():
fmt.setLatinFont(new FontData("Arial"));FontData pieņem fonta ģimenes nosaukumu kā virkni.
Kā iestatīt rindkopas līdzinājumu?
Izmantot paragraphFormat.setAlignment():
import org.aspose.slides.foss.TextAlignment;
tf.getParagraphs().get(0).getParagraphFormat()
.setAlignment(TextAlignment.CENTER);Atbalstītās vērtības: LEFT, CENTER, RIGHT, JUSTIFY.
Kā iestatīt rindas atstarpi?
Izmantot paragraphFormat.setSpaceBefore() (punkti pirms rindkopas) vai paragraphFormat.setSpaceAfter() punkti pēc rindkopas:
tf.getParagraphs().get(0).getParagraphFormat().setSpaceBefore(12); // 12pt before
tf.getParagraphs().get(0).getParagraphFormat().setSpaceAfter(6); // 6pt after