Apache POI – HSLF – テキストボックスに書式を設定するには


テキストボックスに書式を設定するには、RichTextRunクラスを使用します。

package net.tk_factory.example.apache.poi.hslf;

import java.awt.Color;
import java.awt.Rectangle;
import java.io.FileOutputStream;
import java.io.IOException;

import net.tk_factory.example.AbstractExample;
import org.apache.log4j.Logger;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.model.TextBox;
import org.apache.poi.hslf.usermodel.RichTextRun;
import org.apache.poi.hslf.usermodel.SlideShow;

/**
 * Apache POI-HSLF,XSLFを使用したサンプルプログラムです。<br/>
 * <br/>
 * <b>内容</b>
 * <ol type="1">
 * <li>テキストボックスの書式を指定します。</li>
 * </ol>
 *
 * @author Takafumi Kondo (TK Factory)
 */
public class ExampleDrawTextBoxOnTheFormat extends AbstractExample
{
    /** クラス名 */
    private static final String CLASS_NAME =
            ExampleDrawTextBoxOnTheFormat.class.getSimpleName();

    /** ロガー */
    private static final Logger LOGGER =
        Logger.getLogger(ExampleDrawTextBoxOnTheFormat.class.getName());

    /** 出力ファイル名 */
    private static final String OUT_FILE_NAME =
        EXAMPLE_FILE_DIRECTORY + CLASS_NAME + "Out.ppt";

    /**
     * ExampleDrawTextBoxOnTheFormatオブジェクトを構築すると、
     * UnsupportedOperationExceptionがスローされます。<br/>
     */
    protected ExampleDrawTextBoxOnTheFormat()
    {
        throw new UnsupportedOperationException();
    }

    /**
     * mainメソッドです。<br/>
     *
     * @param args 引数
     */
    public static void main(String[] args)
    {
        LOGGER.info("[START]" + CLASS_NAME);

        FileOutputStream out = null;

        try
        {
            //すでに出力ファイルが存在している場合は削除する
            deleteExistsFile(OUT_FILE_NAME);

            //プレゼンテーションを生成する
            SlideShow ppt = new SlideShow();

            //スライドを追加する
            Slide slide = ppt.createSlide();

            //テキストボックスを描く
            TextBox txt = new TextBox();
            txt.setText("Hello, World!");
            txt.setAnchor(new Rectangle(300, 100, 300, 50));

            //テキストボックスのフォーマットを指定する
            RichTextRun rt = txt.getTextRun().getRichTextRuns()[0];
            //フォントサイズ
            rt.setFontSize(32);
            //フォント
            rt.setFontName("Arial");
            //太字
            rt.setBold(true);
            //斜体
            rt.setItalic(true);
            //下線
            rt.setUnderlined(true);
            //文字色
            rt.setFontColor(Color.red);
            //文字位置
            rt.setAlignment(TextBox.AlignRight);

            slide.addShape(txt);

            //ファイルを保存する
            out = new FileOutputStream(OUT_FILE_NAME);
            ppt.write(out);
        }
        catch (IOException ioex)
        {
            LOGGER.error(getStackTrace(ioex));
        }
        finally
        {
            try
            {
                if (out != null)
                {
                    out.close();
                }
            }
            catch (IOException ioex)
            {
                LOGGER.error(getStackTrace(ioex));
            }

            LOGGER.info("[E N D]" + CLASS_NAME);
        }
    }
}

作成されたファイルを開くと、以下のように表示されます。
ExampleDrawTextBoxOnTheFormat

関連記事

  1. コメント 0

  1. トラックバック 0

return top