Java에서 텍스트 서식 지정 방법

Java에서 텍스트 서식 지정 방법

Aspose.Slides FOSS for Java provides fine-grained text formatting through the PortionFormat 클래스. A Portion 텍스트의 가장 작은 독립 단위이며; 단락 내에서 단일 서식 실행에 매핑됩니다. 이 가이드는 프레젠테이션에서 텍스트에 굵게, 기울임꼴, 글꼴 크기 및 색상 서식을 적용하는 방법을 보여줍니다.

단계별 가이드

1단계: Maven 의존성 추가

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

단계 2: 텍스트 프레임이 있는 도형 추가

텍스트를 서식 지정하기 전에, 도형은 반드시 a TextFrame.사용 shape.addTextFrame() 하나를 만들기 위해.

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: TextFrame에 접근하기

shape.addTextFrame() 반환합니다 TextFrame 객체. 또한 나중에 다음을 통해 검색할 수 있습니다 shape.getTextFrame().

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

A TextFrame 목록을 포함합니다 Paragraph 객체 (tf.getParagraphs()). 각 Paragraph 포함합니다 Portion 객체 (paragraph.getPortions()).


단계 4: 굵게 및 기울임 서식 적용

사용 portionFormat.setFontBold()portionFormat.setFontItalic(). 이러한 메서드는 NullableBool.TRUE, NullableBool.FALSE, 또는 NullableBool.NOT_DEFINED (마스터에서 상속).

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: 글꼴 크기 및 색상 설정

설정 portionFormat.setFontHeight() 크기(포인트 단위)와 사용 getFillFormat() 색상용.

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) 각 채널에 대해 0-255 값을 허용합니다.


단계 6: 하나의 단락에 여러 Portion 사용

단일 단락은 서로 다른 서식이 적용된 여러 부분을 포함할 수 있습니다. 새 Portion 단락의 getPortions() 컬렉션:

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

일반적인 문제 및 해결책

색상을 설정한 후에도 텍스트가 검게 표시됩니다

확인하십시오 getFillFormat().setFillType(FillType.SOLID) 색상을 할당하기 전에 호출되어야 합니다. 채우기 유형을 설정하지 않으면 색상 변경이 효과가 없을 수 있습니다.

NullableBool.TRUE vs true

portionFormat.setFontBold() 예상합니다 NullableBool.TRUE, not Java’s true. 불리언을 전달하면 메서드가 기대하는 NullableBool 열거형.

저장된 파일에 글꼴이 표시되지 않습니다.

setLatinFont() 메서드는 라틴 글꼴 패밀리를 설정합니다. 설정되지 않으면 프레젠테이션 테마 글꼴이 사용됩니다. 사용자 정의 글꼴은 임베드되거나 뷰어 머신에 있어야 합니다.


자주 묻는 질문

글꼴 패밀리를 어떻게 변경하나요?

설정 portionFormat.setLatinFont():

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

FontData 글꼴 패밀리 이름을 문자열로 받아들입니다.

단락 정렬을 어떻게 설정하나요?

사용 paragraphFormat.setAlignment():

import org.aspose.slides.foss.TextAlignment;

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

지원되는 값: LEFT, CENTER, RIGHT, JUSTIFY.

줄 간격을 어떻게 설정하나요?

사용 paragraphFormat.setSpaceBefore() (문단 앞에 점) 또는 paragraphFormat.setSpaceAfter() (문단 뒤의 점):

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

또 보기

 한국어