Cara Memformat Teks di Java
Aspose.Slides FOSS for Java menyediakan pemformatan teks yang detail melalui kelas PortionFormat. Sebuah Portion adalah unit teks independen terkecil; ia memetakan ke satu run pemformatan dalam sebuah paragraf. Panduan ini menunjukkan cara menerapkan pemformatan tebal, miring, ukuran font, dan warna pada teks dalam sebuah presentasi.
Panduan Langkah-demi-Langkah
Langkah 1: Tambahkan Dependensi Maven
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Langkah 2: Tambahkan Bentuk dengan Bingkai Teks
Sebelum memformat teks, sebuah bentuk harus berisi TextFrame. Gunakan shape.addTextFrame() untuk membuatnya.
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);
}Langkah 3: Akses TextFrame
shape.addTextFrame() mengembalikan objek TextFrame. Anda juga dapat mengambilnya nanti melalui shape.getTextFrame().
ITextFrame tf = shape.getTextFrame(); // if the frame already exists
ITextFrame tf = shape.addTextFrame(""); // creates a new frameSebuah TextFrame berisi daftar objek Paragraph (tf.getParagraphs()). Setiap Paragraph berisi objek Portion (paragraph.getPortions()).
Langkah 4: Terapkan Pemformatan Tebal dan Miring
Gunakan portionFormat.setFontBold() dan portionFormat.setFontItalic(). Metode-metode ini menerima NullableBool.TRUE, NullableBool.FALSE, atau NullableBool.NOT_DEFINED (mewarisi dari master).
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);
}Langkah 5: Atur Ukuran Font dan Warna
Set portionFormat.setFontHeight() untuk ukuran (dalam poin) dan gunakan getFillFormat() untuk warna.
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) menerima nilai 0-255 untuk setiap saluran.
Langkah 6: Beberapa Bagian dalam Satu Paragraf
Sebuah paragraf tunggal dapat berisi beberapa bagian dengan format yang berbeda. Tambahkan Portion baru ke koleksi getPortions() paragraf:
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);
}Masalah Umum dan Solusi
Teks muncul hitam meskipun sudah mengatur warna
Pastikan getFillFormat().setFillType(FillType.SOLID) dipanggil sebelum menetapkan warna. Tanpa mengatur jenis isi, perubahan warna mungkin tidak berpengaruh.
NullableBool.TRUE vs true
portionFormat.setFontBold() mengharapkan NullableBool.TRUE, bukan true milik Java. Mengirimkan boolean akan menyebabkan kesalahan kompilasi karena metode mengharapkan enum NullableBool.
Font tidak muncul di file yang disimpan
Metode setLatinFont() mengatur keluarga font Latin. Jika tidak diatur, font tema presentasi akan digunakan. Font khusus harus disematkan atau tersedia pada mesin penampil.
Pertanyaan yang Sering Diajukan
Bagaimana cara mengubah keluarga font?
Atur portionFormat.setLatinFont():
fmt.setLatinFont(new FontData("Arial"));FontData menerima nama keluarga font sebagai string.
Bagaimana cara mengatur perataan paragraf?
Gunakan paragraphFormat.setAlignment():
import org.aspose.slides.foss.TextAlignment;
tf.getParagraphs().get(0).getParagraphFormat()
.setAlignment(TextAlignment.CENTER);Nilai yang didukung: LEFT, CENTER, RIGHT, JUSTIFY.
Bagaimana cara mengatur spasi baris?
Gunakan paragraphFormat.setSpaceBefore() (poin sebelum paragraf) atau paragraphFormat.setSpaceAfter() (poin setelah paragraf):
tf.getParagraphs().get(0).getParagraphFormat().setSpaceBefore(12); // 12pt before
tf.getParagraphs().get(0).getParagraphFormat().setSpaceAfter(6); // 6pt after