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); } } }
関連記事
コメント 0