Vytvoření a aplikace efektů WordArt v PHP

Přehled

Efekty WordArt vám umožňují přidávat vizuálně atraktivní, stylizovaný text do vašich prezentací PowerPoint. S Aspose.Slides mohou vývojáři programově vytvářet, upravovat a spravovat WordArt stejně jako v Microsoft PowerPoint — aniž by bylo potřeba mít nainstalovaný Office. Tento článek poskytuje přehled práce s WordArt, včetně toho, jak použít textové transformace, výplňové styly, obrysy, stíny a další možnosti formátování, aby byl obsah vaší prezentace výražnější a poutavější. WordArt vám umožňuje zacházet s textem jako s grafickým objektem. Skládá se z efektů nebo speciálních úprav aplikovaných na text, aby byl atraktivnější nebo výraznější.

Vytvořte jednoduchou šablonu WordArt a aplikujte ji na text

Použití Aspose.Slides

Nejprve vytvoříme jednoduchý text pomocí tohoto PHP kódu:

  $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();
    }
  }

Nyní nastavíme výšku písma textu na větší hodnotu, aby byl efekt výraznější, pomocí tohoto kódu:

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

Použití Microsoft PowerPoint

Přejděte do nabídky efektů WordArt v Microsoft PowerPoint:

todo:image_alt_text

V pravé nabídce můžete vybrat předdefinovaný efekt WordArt. V levé nabídce můžete zadat nastavení pro nový WordArt.

Toto jsou některé z dostupných parametrů nebo možností:

todo:image_alt_text

Použití Aspose.Slides

Zde aplikujeme barvu vzoru SmallGrid na text a přidáme černý textový okraj o šířce 1 pomocí tohoto kódu:

  $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);

Výsledný text:

todo:image_alt_text

Aplikace dalších efektů WordArt

Použití Microsoft PowerPoint

Z rozhraní programu můžete tyto efekty aplikovat na text, textový blok, tvar nebo podobný prvek:

todo:image_alt_text

Například efekty Stín, Odraz a Záře lze aplikovat na text; efekty 3D formát a 3D otočení lze aplikovat na textový blok; vlastnost Měkké hrany lze aplikovat na objekt Shape (má i tak efekt, když není nastavena žádná 3D formátová vlastnost).

Aplikace stínových efektů

Zde chceme nastavit vlastnosti vztahující se pouze na text. Stínový efekt na text aplikujeme pomocí tohoto kódu :

  $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 podporuje tři typy stínů: OuterShadow, InnerShadow a PresetShadow.

S PresetShadow můžete aplikovat stín na text (pomocí předdefinovaných hodnot).

Použití Microsoft PowerPoint

V PowerPointu můžete použít jeden typ stínu. Zde je příklad:

todo:image_alt_text

Použití Aspose.Slides

Aspose.Slides ve skutečnosti umožňuje aplikovat dva typy stínů najednou: InnerShadow a PresetShadow.

Poznámky:

  • Když jsou použity společně OuterShadow a PresetShadow, aplikuje se pouze efekt OuterShadow.
  • Pokud jsou použity současně OuterShadow a InnerShadow, výsledný nebo aplikovaný efekt závisí na verzi PowerPointu. Například v PowerPoint 2013 se efekt zdvojnásobí. V PowerPoint 2007 se aplikuje efekt OuterShadow.

Aplikace reflexních efektů na text

Přidáme odraz na text pomocí tohoto ukázkového kódu :

  $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);

Aplikace zářivých efektů na text

Aplikujeme efekt záře na text, aby zazářil nebo vynikl, pomocí tohoto kódu:

  $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);

Výsledek operace:

todo:image_alt_text

Použití transformací ve WordArt

Používáme vlastnost Transform (obsaženou v celém bloku textu) pomocí tohoto kódu:

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

Výsledek:

todo:image_alt_text

Použití PowerPoint

Pro přístup k předdefinovaným typům transformací přejděte na: Formát -> TextEffect -> Transform

Použití Aspose.Slides

Pro výběr typu transformace použijte výčet TextShapeType.

Aplikace 3D efektů na text a tvary

Nastavíme 3D efekt na textový tvar pomocí tohoto ukázkového kódu:

  $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);

Výsledný text a jeho tvar:

todo:image_alt_text

Aplikujeme 3D efekt na text pomocí tohoto PHP kódu:

  $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);

Výsledek operace:

todo:image_alt_text

Aplikace vnějšího stínu na text

Aspose.Slides pro PHP přes Java poskytuje třídy OuterShadow a InnerShadow, které umožňují aplikovat stínové efekty na text umístěný v TextFrame. Postupujte podle těchto kroků:

  1. Vytvořte instanci třídy Presentation.
  2. Získejte referenci na snímek pomocí jeho indexu.
  3. Přidejte k snímku AutoShape typu Obdélník.
  4. Získejte přístup k TextFrame spojenému s AutoShape.
  5. Nastavte FillType AutoShape na NoFill.
  6. Instanciujte třídu OuterShadow
  7. Nastavte BlurRadius stínu.
  8. Nastavte Direction (směr) stínu
  9. Nastavte Distance (vzdálenost) stínu.
  10. Nastavte RectanglelAlign na TopLeft.
  11. Nastavte PresetColor stínu na Black.
  12. Uložte prezentaci jako soubor PPTX file.

Tento ukázkový kód —implementace výše uvedených kroků—ukazuje, jak aplikovat efekt vnějšího stínu na text:

  $pres = new Presentation();
  try {
    # Získat referenci na snímek
    $sld = $pres->getSlides()->get_Item(0);
    # Přidat AutoShape typu Obdélník
    $ashp = $sld->getShapes()->addAutoShape(ShapeType::Rectangle, 150, 75, 150, 50);
    # Přidat TextFrame k Obdélníku
    $ashp->addTextFrame("Aspose TextBox");
    # Zakázat výplň tvaru pro případ, že chceme získat stín textu
    $ashp->getFillFormat()->setFillType(FillType::NoFill);
    # Přidat vnější stín a nastavit všechny potřebné parametry
    $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);
    # Uložit prezentaci na disk
    $pres->save("pres_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Aplikace vnitřního stínu na tvary

Postupujte podle následujících kroků:

  1. Vytvořte instanci třídy Presentation.
  2. Získejte referenci na snímek.
  3. Přidejte AutoShape typu Obdélník.
  4. Povolte InnerShadowEffect.
  5. Nastavte všechny potřebné parametry.
  6. Nastavte ColorType na Scheme.
  7. Nastavte Scheme Color.
  8. Uložte prezentaci jako soubor PPTX file.

Tento ukázkový kód (na základě výše uvedených kroků) ukazuje, jak přidat spojku mezi dvěma tvary :

  $pres = new Presentation();
  try {
    # Získat referenci na snímek
    $slide = $pres->getSlides()->get_Item(0);
    # Přidat AutoShape typu Obdélník
    $ashp = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 150, 75, 400, 300);
    $ashp->getFillFormat()->setFillType(FillType::NoFill);
    # Přidat TextFrame k Obdélníku
    $ashp->addTextFrame("Aspose TextBox");
    $port = $ashp->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->get_Item(0);
    $pf = $port->getPortionFormat();
    $pf->setFontHeight(50);
    # Povolit InnerShadowEffect
    $ef = $pf->getEffectFormat();
    $ef->enableInnerShadowEffect();
    # Nastavit všechny potřebné parametry
    $ef->getInnerShadowEffect()->setBlurRadius(8.0);
    $ef->getInnerShadowEffect()->setDirection(90.0);
    $ef->getInnerShadowEffect()->setDistance(6.0);
    $ef->getInnerShadowEffect()->getShadowColor()->setB(189);
    # Nastavit ColorType jako Scheme
    $ef->getInnerShadowEffect()->getShadowColor()->setColorType(ColorType::Scheme);
    # Nastavit Scheme Color
    $ef->getInnerShadowEffect()->getShadowColor()->setSchemeColor(SchemeColor->Accent1);
    # Uložit prezentaci
    $pres->save("WordArt_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

FAQ

Mohu použít efekty WordArt s různými písmy nebo skripty (např. arabština, čínština)?

Ano, Aspose.Slides podporuje Unicode a funguje se všemi hlavními písmy a skripty. Efekty WordArt, jako stín, výplň a obrys, lze aplikovat bez ohledu na jazyk, i když dostupnost písma a vykreslování mohou záviset na systémových písmech.

Mohu aplikovat efekty WordArt na prvky hlavního snímku (slide master)?

Ano, můžete aplikovat efekty WordArt na tvary v hlavních snímcích, včetně zástupců titulku, zápatí nebo textu na pozadí. Změny provedené v rozložení hlavního snímku se projeví na všech souvisejících snímcích.

Ovlivňují efekty WordArt velikost souboru prezentace?

Mírně. Efekty WordArt, jako stíny, záře a gradientové výplně, mohou mírně zvýšit velikost souboru kvůli přidaným metadatům formátování, ale rozdíl je obvykle zanedbatelný.

Mohu si prohlédnout výsledek efektů WordArt bez uložení prezentace?

Ano, můžete vykreslit snímky obsahující WordArt do obrázků (např. PNG, JPEG) pomocí metody getImage z tříd Shape nebo Slide. To vám umožní náhled výsledku v paměti nebo na obrazovce před uložením nebo exportem celé prezentace.