Cara Memformat Teks di Java

Cara Memformat Teks di Java

Aspose.Slides FOSS for Java provides fine-grained text formatting through the PortionFormat class. A Portion adalah unit teks independen terkecil; ia memetakan ke satu rangkaian format dalam sebuah paragraf. Panduan ini menunjukkan cara menerapkan format 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 shape harus berisi sebuah 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 TextFrame objek. Anda juga dapat mengambilnya nanti melalui shape.getTextFrame().

ITextFrame tf = shape.getTextFrame();          // if the frame already exists
ITextFrame tf = shape.addTextFrame("");        // creates a new frame

A TextFrame berisi daftar Paragraph objek (tf.getParagraphs()). Setiap Paragraph berisi Portion objek (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

Atur 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 Portion dalam Satu Paragraf

Sebuah paragraf tunggal dapat berisi beberapa bagian dengan pemformatan yang berbeda. Tambahkan yang baru Portion ke paragraf getPortions() koleksi:

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 Solusinya

Teks tetap berwarna hitam meskipun sudah mengatur warna

Pastikan getFillFormat().setFillType(FillType.SOLID) dipanggil sebelum menetapkan warna. Tanpa mengatur tipe isian, perubahan warna mungkin tidak berpengaruh.

NullableBool.TRUE vs true

portionFormat.setFontBold() mengharapkan NullableBool.TRUE, bukan Java’s true. Mengirimkan boolean akan menyebabkan kesalahan kompilasi karena metode mengharapkan NullableBool enum.

Font tidak muncul dalam file yang disimpan

Metode setLatinFont() metode mengatur keluarga font Latin. Jika tidak diatur, font tema presentasi yang digunakan. Font khusus harus disematkan atau tersedia di 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() (titik 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

Lihat Juga

 Bahasa Indonesia