フォントの管理 - PowerPoint Java API

フォント関連プロパティの管理

Aspose.Slides for Javaを使用して段落のフォントプロパティを管理するには:

  1. Presentationクラスのインスタンスを作成します。
  2. インデックスを使用してスライドの参照を取得します。
  3. スライド内のPlaceholderシェイプにアクセスし、それらをAutoShapeに型変換します。
  4. AutoShapeが公開するTextFrameからParagraphを取得します。
  5. 段落を整列させます。
  6. ParagraphのテキストPortionにアクセスします。
  7. FontDataを使用してフォントを定義し、テキストPortionFontをそれに応じて設定します。
    1. フォントを太字に設定します。
    2. フォントを斜体に設定します。
  8. Portionオブジェクトが露出しているFillFormatを使用してフォントの色を設定します。
  9. 修正されたプレゼンテーションをPPTXファイルとして保存します。

上記の手順の実装は以下に示されています。これは装飾のないプレゼンテーションを取り、スライドの1つでフォントをフォーマットします。以下のスクリーンショットは、入力ファイルとコードスニペットがどのようにそれを変更するかを示しています。コードはフォント、色、フォントスタイルを変更します。

todo:image_alt_text
図:入力ファイルのテキスト
todo:image_alt_text
図:フォーマットが更新された同じテキスト
// PPTXファイルを表すPresentationオブジェクトをインスタンス化
Presentation pres = new Presentation("FontProperties.pptx");
try {
	// スライド位置を使用してスライドにアクセス
	ISlide slide = pres.getSlides().get_Item(0);

	// スライド内の最初と二つ目のプレースホルダーにアクセスし、AutoShapeとして型変換
	ITextFrame tf1 = ((IAutoShape) slide.getShapes().get_Item(0)).getTextFrame();
	ITextFrame tf2 = ((IAutoShape) slide.getShapes().get_Item(1)).getTextFrame();

	// 最初の段落にアクセス
	IParagraph para1 = tf1.getParagraphs().get_Item(0);
	IParagraph para2 = tf2.getParagraphs().get_Item(0);

	// 段落を整列
	para2.getParagraphFormat().setAlignment(TextAlignment.JustifyLow);

	// 最初のポーションにアクセス
	IPortion port1 = para1.getPortions().get_Item(0);
	IPortion port2 = para2.getPortions().get_Item(0);

	// 新しいフォントを定義
	FontData fd1 = new FontData("Elephant");
	FontData fd2 = new FontData("Castellar");

	// ポーションに新しいフォントを割り当て
	port1.getPortionFormat().setLatinFont(fd1);
	port2.getPortionFormat().setLatinFont(fd2);

	// フォントを太字に設定
	port1.getPortionFormat().setFontBold(NullableBool.True);
	port2.getPortionFormat().setFontBold(NullableBool.True);

	// フォントを斜体に設定
	port1.getPortionFormat().setFontItalic(NullableBool.True);
	port2.getPortionFormat().setFontItalic(NullableBool.True);

	// フォントの色を設定
	port1.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
	port1.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
	port2.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
	port2.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.GREEN);

	// PPTXをディスクに保存
	pres.save("WelcomeFont.pptx", SaveFormat.Pptx);
} finally {
	if (pres != null) pres.dispose();
}

テキストフォントプロパティの設定

テキストボックスを作成し、その中のテキストのフォントプロパティを設定するには:

  1. Presentationクラスのインスタンスを作成します。
  2. インデックスを使用してスライドの参照を取得します。
  3. スライドに矩形タイプのAutoShapeを追加します。
  4. AutoShapeに関連付けられた塗りつぶしスタイルを削除します。
  5. AutoShapeTextFrameにアクセスします。
  6. TextFrameにテキストを追加します。
  7. TextFrameに関連付けられたPortionオブジェクトにアクセスします。
  8. Portionに使用されるフォントを定義します。
  9. Portionオブジェクトによって公開される関連プロパティを使用して、太字、斜体、下線、色、高さなどの他のフォントプロパティを設定します。
  10. 修正されたプレゼンテーションをPPTXファイルとして保存します。

上記の手順の実装は以下に示されています。

todo:image_alt_text
図:Aspose.Slides for Javaによって設定されたフォントプロパティのあるテキスト
// PPTXファイルを表すPresentationオブジェクトをインスタンス化
Presentation pres = new Presentation();
try {
	// 最初のスライドを取得
	ISlide sld = pres.getSlides().get_Item(0);
	
	// 矩形タイプのAutoShapeを追加
	IAutoShape ashp = sld.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 50);
	
	// AutoShapeに関連付けられた塗りつぶしスタイルを削除
	ashp.getFillFormat().setFillType(FillType.NoFill);
	
	// AutoShapeに関連付けられたTextFrameにアクセス
	ITextFrame tf = ashp.getTextFrame();
	tf.setText("Aspose TextBox");
	
	// TextFrameに関連付けられたPortionにアクセス
	IPortion port = tf.getParagraphs().get_Item(0).getPortions().get_Item(0);
	
	// Portionのフォントを設定
	port.getPortionFormat().setLatinFont(new FontData("Times New Roman"));
	
	// フォントの太字プロパティを設定
	port.getPortionFormat().setFontBold(NullableBool.True);
	
	// フォントの斜体プロパティを設定
	port.getPortionFormat().setFontItalic(NullableBool.True);
	
	// フォントの下線プロパティを設定
	port.getPortionFormat().setFontUnderline(TextUnderlineType.Single);
	
	// フォントの高さを設定
	port.getPortionFormat().setFontHeight(25);
	
	// フォントの色を設定
	port.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
	port.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
	
	// プレゼンテーションをディスクに保存
	pres.save("pptxFont.pptx", SaveFormat.Pptx);
} finally {
	if (pres != null) pres.dispose();
}