ワードアート

ワードアートについて?

ワードアートは、テキストに効果を適用して目立たせる機能です。例えば、ワードアートを使用すると、テキストをアウトライン化したり、色(またはグラデーション)で塗りつぶしたり、3D効果を追加したりすることができます。また、テキストの形を傾けたり、曲げたり、引き延ばしたりすることもできます。

Microsoft PowerPointにおけるワードアート

Microsoft PowerPointでワードアートを使用するには、あらかじめ定義されたワードアートテンプレートのいずれかを選択する必要があります。ワードアートテンプレートは、テキストまたはその形状に適用される効果のセットです。

Aspose.Slidesにおけるワードアート

Aspose.Slides for PHP via Java 20.10では、ワードアートのサポートを実装し、その後のAspose.Slides for PHP via Javaリリースで機能の改善を行いました。

Aspose.Slides for PHP via Javaを使用すると、自分自身のワードアートテンプレート(1つの効果または効果の組み合わせ)を簡単に作成し、テキストに適用できます。

シンプルなワードアートテンプレートを作成し、テキストに適用する

Aspose.Slidesを使用して

まず、次のPHPコードを使用してシンプルなテキストを作成します:

  $pres = new Presentation();
  try {
    $slide = $pres->getSlides()->get_Item(0);
    $autoShape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 200, 200, 400, 200);
    $textFrame = $autoShape->getTextFrame();
    $portion = $textFrame->getParagraphs()->get_Item(0)->getPortions()->get_Item(0);
    $portion->setText("Aspose.Slides");
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

次に、効果をより目立たせるために、テキストのフォントの高さを大きな値に設定します:

  $fontData = new FontData("Arial Black");
  $portion->getPortionFormat()->setLatinFont($fontData);
  $portion->getPortionFormat()->setFontHeight(36);

Microsoft PowerPointを使用して

Microsoft PowerPointでワードアート効果メニューに移動します:

todo:image_alt_text

右側のメニューから、あらかじめ定義されたワードアート効果を選択できます。左側のメニューから、新しいワードアートの設定を指定できます。

これらは利用可能なパラメータやオプションの一部です:

todo:image_alt_text

Aspose.Slidesを使用して

次に、以下のコードを使用してテキストにSmallGridパターンカラーを適用し、幅1の黒いテキストの境界線を追加します:

  $portion->getPortionFormat()->getFillFormat()->setFillType(FillType::Pattern);
  $portion->getPortionFormat()->getFillFormat()->getPatternFormat()->getForeColor()->setColor(java("java.awt.Color")->ORANGE);
  $portion->getPortionFormat()->getFillFormat()->getPatternFormat()->getBackColor()->setColor(java("java.awt.Color")->WHITE);
  $portion->getPortionFormat()->getFillFormat()->getPatternFormat()->setPatternStyle(PatternStyle->SmallGrid);
  $portion->getPortionFormat()->getLineFormat()->getFillFormat()->setFillType(FillType::Solid);
  $portion->getPortionFormat()->getLineFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLACK);

結果のテキスト:

todo:image_alt_text

他のワードアート効果の適用

Microsoft PowerPointを使用して

プログラムのインターフェースから、テキスト、テキストブロック、形状、または同様の要素にこれらの効果を適用できます:

todo:image_alt_text

例えば、影、反射、グロー効果はテキストに適用できます。3Dフォーマットと3D回転効果はテキストブロックに適用でき、ソフトエッジプロパティは形状オブジェクトに適用できます(3Dフォーマットプロパティが設定されていない場合でも影響を与えます)。

影効果の適用

ここでは、テキストに関連するプロパティのみを設定します。このコードを使用してテキストに影効果を適用します:

  $portion->getPortionFormat()->getEffectFormat()->enableOuterShadowEffect();
  $portion->getPortionFormat()->getEffectFormat()->getOuterShadowEffect()->getShadowColor()->setColor(java("java.awt.Color")->BLACK);
  $portion->getPortionFormat()->getEffectFormat()->getOuterShadowEffect()->setScaleHorizontal(100);
  $portion->getPortionFormat()->getEffectFormat()->getOuterShadowEffect()->setScaleVertical(65);
  $portion->getPortionFormat()->getEffectFormat()->getOuterShadowEffect()->setBlurRadius(4.73);
  $portion->getPortionFormat()->getEffectFormat()->getOuterShadowEffect()->setDirection(230);
  $portion->getPortionFormat()->getEffectFormat()->getOuterShadowEffect()->setDistance(2);
  $portion->getPortionFormat()->getEffectFormat()->getOuterShadowEffect()->setSkewHorizontal(30);
  $portion->getPortionFormat()->getEffectFormat()->getOuterShadowEffect()->setSkewVertical(0);
  $portion->getPortionFormat()->getEffectFormat()->getOuterShadowEffect()->getShadowColor()->getColorTransform()->add(ColorTransformOperation->SetAlpha, 0.32);

Aspose.Slides APIは3種類の影をサポートしています:OuterShadow, InnerShadow, およびPresetShadow。

PresetShadowを使用すると、テキストに影を適用できます(プリセット値を使用)。

Microsoft PowerPointを使用して

PowerPointでは、1種類の影を使用できます。以下はその例です:

todo:image_alt_text

Aspose.Slidesを使用して

Aspose.Slidesでは、実際に2種類の影を同時に適用できます:InnerShadowとPresetShadow。

注意事項:

  • OuterShadowとPresetShadowが一緒に使用されると、OuterShadow効果のみが適用されます。
  • OuterShadowとInnerShadowが同時に使用されると、結果の効果はPowerPointのバージョンによって異なります。例えば、PowerPoint 2013では効果が二重になりますが、PowerPoint 2007ではOuterShadow効果が適用されます。

テキストへの表示効果の適用

次のコードサンプルを通じて、テキストに表示を追加します:

  $portion->getPortionFormat()->getEffectFormat()->enableReflectionEffect();
  $portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setBlurRadius(0.5);
  $portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setDistance(4.72);
  $portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setStartPosAlpha(0.0);
  $portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setEndPosAlpha(60.0);
  $portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setDirection(90);
  $portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setScaleHorizontal(100);
  $portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setScaleVertical(-100);
  $portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setStartReflectionOpacity(60.0);
  $portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setEndReflectionOpacity(0.9);
  $portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setRectangleAlign(RectangleAlignment->BottomLeft);

テキストへのグロー効果の適用

次のコードを使用して、テキストにグロー効果を適用し、光るようにさせます:

  $portion->getPortionFormat()->getEffectFormat()->enableGlowEffect();
  $portion->getPortionFormat()->getEffectFormat()->getGlowEffect()->getColor()->setR(255);
  $portion->getPortionFormat()->getEffectFormat()->getGlowEffect()->getColor()->getColorTransform()->add(ColorTransformOperation->SetAlpha, 0.54);
  $portion->getPortionFormat()->getEffectFormat()->getGlowEffect()->setRadius(7);

操作の結果:

todo:image_alt_text

ワードアートにおける変形の使用

次のコードを通じて、テキスト全体のブロックに固有のTransformプロパティを使用します:

  $textFrame->getTextFrameFormat()->setTransform(TextShapeType::ArchUpPour);

結果:

todo:image_alt_text

PowerPointを使用して

あらかじめ定義された変形タイプにアクセスするには、フォーマット -> テキスト効果 -> 変形に進みます。

Aspose.Slidesを使用して

変形タイプを選択するには、TextShapeType列挙体を使用します。

テキストと形状への3D効果の適用

次のサンプルコードを使用して、テキスト形状に3D効果を設定します:

  $autoShape->getThreeDFormat()->getBevelBottom()->setBevelType(BevelPresetType::Circle);
  $autoShape->getThreeDFormat()->getBevelBottom()->setHeight(10.5);
  $autoShape->getThreeDFormat()->getBevelBottom()->setWidth(10.5);
  $autoShape->getThreeDFormat()->getBevelTop()->setBevelType(BevelPresetType::Circle);
  $autoShape->getThreeDFormat()->getBevelTop()->setHeight(12.5);
  $autoShape->getThreeDFormat()->getBevelTop()->setWidth(11);
  $autoShape->getThreeDFormat()->getExtrusionColor()->setColor(java("java.awt.Color")->ORANGE);
  $autoShape->getThreeDFormat()->setExtrusionHeight(6);
  $autoShape->getThreeDFormat()->getContourColor()->setColor(java("java.awt.Color")->RED);
  $autoShape->getThreeDFormat()->setContourWidth(1.5);
  $autoShape->getThreeDFormat()->setDepth(3);
  $autoShape->getThreeDFormat()->setMaterial(MaterialPresetType::Plastic);
  $autoShape->getThreeDFormat()->getLightRig()->setDirection(LightingDirection::Top);
  $autoShape->getThreeDFormat()->getLightRig()->setLightType(LightRigPresetType::Balanced);
  $autoShape->getThreeDFormat()->getLightRig()->setRotation(0, 0, 40);
  $autoShape->getThreeDFormat()->getCamera()->setCameraType(CameraPresetType::PerspectiveContrastingRightFacing);

結果のテキストとその形状:

todo:image_alt_text

次のPHPコードを使用して、テキストに3D効果を適用します:

  $textFrame->getTextFrameFormat()->getThreeDFormat()->getBevelBottom()->setBevelType(BevelPresetType::Circle);
  $textFrame->getTextFrameFormat()->getThreeDFormat()->getBevelBottom()->setHeight(3.5);
  $textFrame->getTextFrameFormat()->getThreeDFormat()->getBevelBottom()->setWidth(3.5);
  $textFrame->getTextFrameFormat()->getThreeDFormat()->getBevelTop()->setBevelType(BevelPresetType::Circle);
  $textFrame->getTextFrameFormat()->getThreeDFormat()->getBevelTop()->setHeight(4);
  $textFrame->getTextFrameFormat()->getThreeDFormat()->getBevelTop()->setWidth(4);
  $textFrame->getTextFrameFormat()->getThreeDFormat()->getExtrusionColor()->setColor(java("java.awt.Color")->ORANGE);
  $textFrame->getTextFrameFormat()->getThreeDFormat()->setExtrusionHeight(6);
  $textFrame->getTextFrameFormat()->getThreeDFormat()->getContourColor()->setColor(java("java.awt.Color")->RED);
  $textFrame->getTextFrameFormat()->getThreeDFormat()->setContourWidth(1.5);
  $textFrame->getTextFrameFormat()->getThreeDFormat()->setDepth(3);
  $textFrame->getTextFrameFormat()->getThreeDFormat()->setMaterial(MaterialPresetType::Plastic);
  $textFrame->getTextFrameFormat()->getThreeDFormat()->getLightRig()->setDirection(LightingDirection::Top);
  $textFrame->getTextFrameFormat()->getThreeDFormat()->getLightRig()->setLightType(LightRigPresetType::Balanced);
  $textFrame->getTextFrameFormat()->getThreeDFormat()->getLightRig()->setRotation(0, 0, 40);
  $textFrame->getTextFrameFormat()->getThreeDFormat()->getCamera()->setCameraType(CameraPresetType::PerspectiveContrastingRightFacing);

操作の結果:

todo:image_alt_text

テキストへのアウトシャドウ効果の適用

Aspose.Slides for PHP via Javaは、IOuterShadowおよびIInnerShadowクラスを提供しており、TextFrameで扱われるテキストに影効果を適用できます。以下の手順に従ってください:

1. Presentationクラスのインスタンスを作成します。 2. インデックスを使用してスライドの参照を取得します。 3. スライドに長方形タイプのオートシェイプを追加します。 4. オートシェイプに関連するTextFrameにアクセスします。 5. オートシェイプのFillTypeをNoFillに設定します。 6. OuterShadowクラスをインスタンス化します。 7. 影のBlurRadiusを設定します。 8. 影のDirectionを設定します。 9. 影のDistanceを設定します。 10. RectanglelAlignをTopLeftに設定します。 11. 影のPresetColorをBlackに設定します。 12. プレゼンテーションをPPTXファイルとして保存します。

次のサンプルコードは、上記の手順の実装であり、テキストにアウトシャドウ効果を適用する方法を示しています:

  $pres = new Presentation();
  try {
    # Get reference of the slide
    $sld = $pres->getSlides()->get_Item(0);
    # Add an AutoShape of Rectangle type
    $ashp = $sld->getShapes()->addAutoShape(ShapeType::Rectangle, 150, 75, 150, 50);
    # Add TextFrame to the Rectangle
    $ashp->addTextFrame("Aspose TextBox");
    # Disable shape fill in case we want to get shadow of text
    $ashp->getFillFormat()->setFillType(FillType::NoFill);
    # Add outer shadow and set all necessary parameters
    $ashp->getEffectFormat()->enableOuterShadowEffect();
    $shadow = $ashp->getEffectFormat()->getOuterShadowEffect();
    $shadow->setBlurRadius(4.0);
    $shadow->setDirection(45);
    $shadow->setDistance(3);
    $shadow->setRectangleAlign(RectangleAlignment->TopLeft);
    $shadow->getShadowColor()->setPresetColor(PresetColor->Black);
    # Write the presentation to disk
    $pres->save("pres_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

シェイプへのインナーシャドウ効果の適用

以下の手順に従ってください:

1. Presentationクラスのインスタンスを作成します。 2. スライドの参照を取得します。 3. 長方形タイプのオートシェイプを追加します。 4. InnerShadowEffectを有効にします。 5. 必要なすべてのパラメータを設定します。 6. ColorTypeをSchemeとして設定します。 7. Scheme Colorを設定します。 8. プレゼンテーションをPPTXファイルとして保存します。

次のサンプルコード(上記の手順に基づく)は、2つのシェイプの間に接続を追加する方法を示しています:

  $pres = new Presentation();
  try {
    # Get reference of the slide
    $slide = $pres->getSlides()->get_Item(0);
    # Add an AutoShape of Rectangle type
    $ashp = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 150, 75, 400, 300);
    $ashp->getFillFormat()->setFillType(FillType::NoFill);
    # Add TextFrame to the Rectangle
    $ashp->addTextFrame("Aspose TextBox");
    $port = $ashp->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->get_Item(0);
    $pf = $port->getPortionFormat();
    $pf->setFontHeight(50);
    # Enable InnerShadowEffect
    $ef = $pf->getEffectFormat();
    $ef->enableInnerShadowEffect();
    # Set all necessary parameters
    $ef->getInnerShadowEffect()->setBlurRadius(8.0);
    $ef->getInnerShadowEffect()->setDirection(90.0);
    $ef->getInnerShadowEffect()->setDistance(6.0);
    $ef->getInnerShadowEffect()->getShadowColor()->setB(189);
    # Set ColorType as Scheme
    $ef->getInnerShadowEffect()->getShadowColor()->setColorType(ColorType::Scheme);
    # Set Scheme Color
    $ef->getInnerShadowEffect()->getShadowColor()->setSchemeColor(SchemeColor->Accent1);
    # Save Presentation
    $pres->save("WordArt_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }