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:

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í:

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:

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:

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:

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:

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:

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:

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:

Aplikace 3D efektů na texty nebo jejich tvary a interakce mezi efekty jsou založeny na určitých pravidlech.
Uvažujte scénu pro text a tvar, který text obsahuje. 3D efekt obsahuje reprezentaci 3D objektu a scénu, do které je objekt umístěn.
- Když je scéna nastavena jak pro tvar, tak pro text, má scéna tvaru vyšší prioritu – scéna textu je ignorována.
- Když tvar nemá vlastní scénu, ale má 3D reprezentaci, použije se scéna textu.
- Jinak – když tvar původně nemá 3D efekt – je tvar plochý a 3D efekt se aplikuje pouze na text.
Tyto popisy jsou spojeny s metodami ThreeDFormat.getLightRig() a ThreeDFormat.getCamera().
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ů:
- Vytvořte instanci třídy Presentation.
- Získejte referenci na snímek pomocí jeho indexu.
- Přidejte k snímku AutoShape typu Obdélník.
- Získejte přístup k TextFrame spojenému s AutoShape.
- Nastavte FillType AutoShape na NoFill.
- Instanciujte třídu OuterShadow
- Nastavte BlurRadius stínu.
- Nastavte Direction (směr) stínu
- Nastavte Distance (vzdálenost) stínu.
- Nastavte RectanglelAlign na TopLeft.
- Nastavte PresetColor stínu na Black.
- 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ů:
- Vytvořte instanci třídy Presentation.
- Získejte referenci na snímek.
- Přidejte AutoShape typu Obdélník.
- Povolte InnerShadowEffect.
- Nastavte všechny potřebné parametry.
- Nastavte ColorType na Scheme.
- Nastavte Scheme Color.
- 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.