چگونه متن را در Java قالب‌بندی کنیم

چگونه متن را در Java قالب‌بندی کنیم

Aspose.Slides FOSS for Java provides fine-grained text formatting through the PortionFormat کلاس. A Portion کوچک‌ترین واحد مستقل متن است؛ به یک اجرای قالب‌بندی تک درون یک پاراگراف نگاشت می‌شود. این راهنما نشان می‌دهد چگونه قالب‌بندی bold، italic، font size و color را بر متن در یک presentation اعمال کنید.

راهنمای گام به گام

مرحله ۱: افزودن وابستگی Maven

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

مرحله ۲: افزودن یک شکل با یک قاب متن

قبل از قالب‌بندی متن، یک shape باید شامل یک 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);
}

مرحله ۳: دسترسی به TextFrame

shape.addTextFrame() باز می‌گرداند TextFrame object. می‌توانید همچنین آن را بعداً از طریق 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()).


مرحله ۴: اعمال قالب‌بندی Bold و Italic

استفاده کنید portionFormat.setFontBold() و portionFormat.setFontItalic(). این متدها می‌پذیرند NullableBool.TRUE, NullableBool.FALSE,، یا NullableBool.NOT_DEFINED (از 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);
}

مرحله ۵: تنظیم اندازه قلم و رنگ

تنظیم 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 را برای هر کانال می‌پذیرد.


مرحله ۶: چندین Portion در یک پاراگراف

یک پاراگراف می‌تواند چندین بخش با قالب‌بندی متفاوت داشته باشد. یک مورد جدید Portion به پاراگراف’s 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 در مقابل true

portionFormat.setFontBold() انتظار دارد NullableBool.TRUE, نه Java’s true. ارسال یک مقدار بولی باعث خطای کامپایل می‌شود زیرا متد انتظار دارد NullableBool enum.

قلم در فایل ذخیره‌شده ظاهر نمی‌شود

این 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

همچنین ببینید

 فارسی