Wie man Text in Java formatiert

Wie man Text in Java formatiert

Aspose.Slides FOSS for Java provides fine-grained text formatting through the PortionFormat Klasse A. Portion ist die kleinste unabhängige Einheit des Textes; es erfasst eine einzige Formatierung innerhalb eines Absatzes. Dieser Leitfaden zeigt, wie man Fett-, Kursiv- und Farbformatierungen auf den Text in einer Präsentation anwenden kann.

Schritt für Schritte

Schritt 1: Hinzufügen der Maven-Abhängigkeit

<dependency>
  <groupId>org.aspose</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>26.7.0</version>
</dependency>

Schritt 2: Fügen Sie eine Form mit einem Textrahmen hinzu

Vor dem Formatieren von Text muss eine Form einen TextFrame.- Verwenden . shape.addTextFrame() um einen zu schaffen.

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);
}

Schritt 3: Zugriff auf den Textrahmen

shape.addTextFrame() gibt den TextFrame Objekt. Sie können es auch später über shape.getTextFrame().

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

A) Die TextFrame enthält eine Liste von Paragraph Objekte (tf.getParagraphs()) Jeder einzelne. Paragraph enthält: Portion Objekte (paragraph.getPortions()).


Schritt 4: Fett- und Kursivformatierung anwenden

Verwendung portionFormat.setFontBold() und . portionFormat.setFontItalic().Diese Methoden akzeptieren die NullableBool.TRUE, NullableBool.FALSE,oder , NullableBool.NOT_DEFINED (Erbe vom Meister).

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);
}

Schritt 5: Fontskala und Farbe festlegen

Setz portionFormat.setFontHeight() für Größe (in Punkten) und Verwendung getFillFormat() für Farbe.

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) Akzeptiert Werte 0-255 für jeden Kanal.


Schritt 6: Mehrfach in einem Absatz

Ein einzelner Absatz kann mehrere Teile mit unterschiedlicher Formatierung enthalten. Portion Die Kommission hat die getPortions() Sammlung:

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);
}

Häufige Probleme und Lösungen

Text erscheint auch nach Einstellung der Farbe schwarz

Sicherstellen getFillFormat().setFillType(FillType.SOLID) ohne den Fülltyp zu setzen, hat die Farbänderung möglicherweise keine Wirkung.

NullableBool.TRUE gegen true

portionFormat.setFontBold() Erwartungen NullableBool.TRUE, nicht Java’s true.Das Übergeben eines Boolean führt zu einem Kompilierungsfehler, da die Methode erwartet, dass der Bool-Wert nicht mehr als das des Elements ist. NullableBool - Ich weiß.

Schriftart nicht in der gespeicherten Datei angezeigt

Die setLatinFont() method setzt die lateinische Schriftfamilie fest. Wenn nicht festgelegt, wird die Präsentations-Themenschrift verwendet. Benutzerdefinierte Schriften müssen eingebettet oder auf der Betrachtungsmaschine verfügbar sein.


Häufig gestellte Fragen

Wie ändere ich die Schriftfamilie?

Setz portionFormat.setLatinFont():

fmt.setLatinFont(new FontData("Arial"));

FontData Akzeptiert den Schriftfamiliennamen als Zeichenfolge.

Wie kann ich die Absätze ausrichten?

Verwendung paragraphFormat.setAlignment():

import org.aspose.slides.foss.TextAlignment;

tf.getParagraphs().get(0).getParagraphFormat()
    .setAlignment(TextAlignment.CENTER);

Unterstützte Werte: LEFT, CENTER, RIGHT, JUSTIFY.

Wie kann ich den Linienabstand einstellen?

Verwendung paragraphFormat.setSpaceBefore() (Punkte vor Absatz) oder paragraphFormat.setSpaceAfter() (Punkte nach Absatz):

tf.getParagraphs().get(0).getParagraphFormat().setSpaceBefore(12);  // 12pt before
tf.getParagraphs().get(0).getParagraphFormat().setSpaceAfter(6);    // 6pt after

Siehe auch:

 Deutsch