Metni Java'de Biçimlendirme
Aspose.Slides FOSS for Java provides fine-grained text formatting through the PortionFormat sınıf. A Portion metnin en küçük bağımsız birimidir; bir paragrafta tek bir biçimlendirme çalışmasına karşılık gelir. Bu kılavuz, bir sunumda metne kalın, italik, punto ve renk biçimlendirmesinin nasıl uygulanacağını gösterir.
Adım Adım Kılavuz
Adım 1: Maven Bağımlılığını Ekleyin
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Adım 2: Metin Çerçevesi Olan Bir Şekil Ekleyin
Metni biçimlendirmeden önce, bir şekil bir TextFrame.Kullanın shape.addTextFrame() bir tane oluşturmak için.
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);
}Adım 3: TextFrame’e Erişin
shape.addTextFrame() şunu döndürür TextFrame nesneyi. Ayrıca daha sonra şunun aracılığıyla alabilirsiniz shape.getTextFrame().
ITextFrame tf = shape.getTextFrame(); // if the frame already exists
ITextFrame tf = shape.addTextFrame(""); // creates a new frameA TextFrame bir liste içerir Paragraph nesneleri (tf.getParagraphs()). Her Paragraph içerir Portion nesneler (paragraph.getPortions()).
Adım 4: Kalın ve İtalik Biçimlendirmeyi Uygulayın
Kullan portionFormat.setFontBold() ve portionFormat.setFontItalic(). Bu yöntemler kabul eder NullableBool.TRUE, NullableBool.FALSE, veya NullableBool.NOT_DEFINED (master’dan miras al).
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);
}Adım 5: Yazı Tipi Boyutunu ve Rengini Ayarlayın
Ayarla portionFormat.setFontHeight() boyut için (nokta cinsinden) ve kullan getFillFormat() renk için.
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) her kanal için 0-255 değerlerini kabul eder.
Adım 6: Tek Bir Paragrafta Birden Çok Bölüm
Tek bir paragraf, farklı biçimlendirmeye sahip birden fazla bölüm içerebilir. Yeni bir Portion paragrafın getPortions() koleksiyon:
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);
}Yaygın Sorunlar ve Çözümler
Renk ayarlandıktan sonra bile metin siyah görünüyor
Güvence sağlayın getFillFormat().setFillType(FillType.SOLID) renk atanmasından önce çağrılmalıdır. Doldurma türü ayarlanmadan, renk değişikliği etkisiz kalabilir.
NullableBool.TRUE vs true
portionFormat.setFontBold() bekler NullableBool.TRUE, Java’s değil true. Bir boolean geçmek, yöntemin beklediği için derleme hatasına neden olur. NullableBool enum.
Kaydedilen dosyada yazı tipi görünmüyor.
Bu setLatinFont() metod, Latin yazı tipi ailesini ayarlar. Ayarlanmazsa, sunum teması yazı tipi kullanılır. Özel yazı tipleri gömülmüş olmalı veya görüntüleme makinesinde mevcut olmalıdır.
Sık Sorulan Sorular
Yazı tipi ailesini nasıl değiştiririm?
Ayarla portionFormat.setLatinFont():
fmt.setLatinFont(new FontData("Arial"));FontData yazı tipi ailesi adını bir dize olarak kabul eder.
Paragraf hizalamasını nasıl ayarlarım?
Kullan paragraphFormat.setAlignment():
import org.aspose.slides.foss.TextAlignment;
tf.getParagraphs().get(0).getParagraphFormat()
.setAlignment(TextAlignment.CENTER);Desteklenen değerler: LEFT, CENTER, RIGHT, JUSTIFY.
Satır aralığını nasıl ayarlarım?
Kullan paragraphFormat.setSpaceBefore() (paragraftan önce noktalar) veya paragraphFormat.setSpaceAfter() (paragraftan sonraki puanlar):
tf.getParagraphs().get(0).getParagraphFormat().setSpaceBefore(12); // 12pt before
tf.getParagraphs().get(0).getParagraphFormat().setSpaceAfter(6); // 6pt after