Tworzenie i stosowanie efektów WordArt w Androidzie

Przegląd

Efekty WordArt pozwalają dodać wizualnie atrakcyjny, stylizowany tekst do prezentacji PowerPoint. Dzięki Aspose.Slides programiści mogą programowo tworzyć, dostosowywać i zarządzać WordArt tak jak w Microsoft PowerPoint — bez konieczności instalacji Office. Ten artykuł przedstawia przegląd pracy z WordArt, w tym jak stosować transformacje tekstu, style wypełnień, obrysy, cienie i inne opcje formatowania, aby treść prezentacji była bardziej wyrazista i angażująca. WordArt umożliwia traktowanie tekstu jako obiektu graficznego. Składa się z efektów lub specjalnych modyfikacji stosowanych do tekstu, aby był bardziej atrakcyjny lub zauważalny.

Utwórz prosty szablon WordArt i zastosuj go do tekstu

Używanie Aspose.Slides

Najpierw tworzymy prosty tekst przy użyciu tego kodu Java:

Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    IAutoShape autoShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200);
    ITextFrame textFrame = autoShape.getTextFrame();

    Portion portion = (Portion)textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0);
    portion.setText("Aspose.Slides");
} finally {
    if (pres != null) pres.dispose();
}

Teraz ustawiamy wysokość czcionki tekstu na większą wartość, aby efekt był bardziej widoczny, używając tego kodu:

FontData fontData = new FontData("Arial Black");
portion.getPortionFormat().setLatinFont(fontData);
portion.getPortionFormat().setFontHeight(36);

Używanie Microsoft PowerPoint

Przejdź do menu efektów WordArt w Microsoft PowerPoint:

todo:image_alt_text

Z menu po prawej możesz wybrać predefiniowany efekt WordArt. Z menu po lewej możesz określić ustawienia nowego WordArt.

Oto niektóre z dostępnych parametrów lub opcji:

todo:image_alt_text

Używanie Aspose.Slides

Tutaj stosujemy wzór koloru SmallGrid do tekstu i dodajemy czarną obwódkę o szerokości 1, używając tego kodu:

portion.getPortionFormat().getFillFormat().setFillType(FillType.Pattern);
portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(Color.ORANGE);
portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(Color.WHITE);
portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(PatternStyle.SmallGrid);

portion.getPortionFormat().getLineFormat().getFillFormat().setFillType(FillType.Solid);
portion.getPortionFormat().getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);

Uzyskany tekst:

todo:image_alt_text

Zastosuj inne efekty WordArt

Używanie Microsoft PowerPoint

Z interfejsu programu możesz zastosować te efekty do tekstu, bloku tekstowego, kształtu lub podobnego elementu:

todo:image_alt_text

Na przykład efekty Cień, Odbicie i Poświata można zastosować do tekstu; formatowanie 3D i obrót 3D można zastosować do bloku tekstowego; właściwość Miękkie Krawędzie można zastosować do obiektu kształtu (działa ona również, gdy nie ustawiono właściwości Format 3D).

Zastosuj efekty cienia

Tutaj zamierzamy ustawić właściwości dotyczące wyłącznie tekstu. Stosujemy efekt cienia do tekstu przy użyciu tego kodu w Java:

portion.getPortionFormat().getEffectFormat().enableOuterShadowEffect();
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().setColor(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.32f);

API Aspose.Slides obsługuje trzy typy cieni: OuterShadow, InnerShadow i PresetShadow.

Przy użyciu PresetShadow możesz zastosować cień do tekstu (korzystając z wartości predefiniowanych).

Używanie Microsoft PowerPoint

W PowerPoint można używać jednego typu cienia. Oto przykład:

todo:image_alt_text

Używanie Aspose.Slides

Aspose.Slides faktycznie pozwala zastosować dwa typy cieni jednocześnie: InnerShadow i PresetShadow.

Uwaga:

  • Gdy OuterShadow i PresetShadow są używane razem, stosowany jest tylko efekt OuterShadow.
  • Jeśli OuterShadow i InnerShadow są używane jednocześnie, wynikowy lub zastosowany efekt zależy od wersji PowerPoint. Na przykład w PowerPoint 2013 efekt jest podwajany. W PowerPoint 2007 stosowany jest efekt OuterShadow.

Zastosuj efekty odbicia do tekstu

Dodajemy odbicie do tekstu przy użyciu tego przykładu kodu w Java:

portion.getPortionFormat().getEffectFormat().enableReflectionEffect();
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setBlurRadius(0.5);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDistance(4.72);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartPosAlpha(0f);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndPosAlpha(60f);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDirection(90);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleHorizontal(100);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleVertical(-100);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartReflectionOpacity(60f);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndReflectionOpacity(0.9f);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setRectangleAlign(RectangleAlignment.BottomLeft);   

Zastosuj efekty poświaty do tekstu

Stosujemy efekt poświaty do tekstu, aby się świecił lub wyróżniał, używając tego kodu:

portion.getPortionFormat().getEffectFormat().enableGlowEffect();
portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().setR((byte)255);
portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().getColorTransform().add(ColorTransformOperation.SetAlpha, 0.54f);
portion.getPortionFormat().getEffectFormat().getGlowEffect().setRadius(7);

Wynik operacji:

todo:image_alt_text

Użyj transformacji w WordArt

Używamy właściwości Transform (obowiązującej dla całego bloku tekstu) poprzez ten kod:

textFrame.getTextFrameFormat().setTransform(TextShapeType.ArchUpPour);

Wynik:

todo:image_alt_text

Użycie PowerPoint

Aby uzyskać dostęp do predefiniowanych typów transformacji, przejdź przez: Format -> TextEffect -> Transform

Używanie Aspose.Slides

Aby wybrać typ transformacji, użyj wyliczenia TextShapeType.

Zastosuj efekty 3D do tekstu i kształtów

Ustawiamy efekt 3D dla kształtu tekstowego przy użyciu tego przykładowego kodu:

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(Color.ORANGE);
autoShape.getThreeDFormat().setExtrusionHeight(6);

autoShape.getThreeDFormat().getContourColor().setColor(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);

Uzyskany tekst i jego kształt:

todo:image_alt_text

Stosujemy efekt 3D do tekstu przy użyciu tego kodu Java:

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(Color.ORANGE);
textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(6);

textFrame.getTextFrameFormat().getThreeDFormat().getContourColor().setColor(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);

Wynik operacji:

todo:image_alt_text

Zastosuj efekty zewnętrznego cienia do tekstu

Aspose.Slides dla Androida w Javie udostępnia klasy IOuterShadow i IInnerShadow, które pozwalają stosować efekty cienia do tekstu umieszczonego w TextFrame. Przejdź przez następujące kroki:

  1. Utwórz instancję klasy Presentation .
  2. Uzyskaj odwołanie do slajdu, używając jego indeksu.
  3. Dodaj AutoShape typu Rectangle do slajdu.
  4. Uzyskaj dostęp do TextFrame powiązanego z AutoShape.
  5. Ustaw właściwość FillType AutoShape na NoFill.
  6. Zainicjuj klasę OuterShadow.
  7. Ustaw BlurRadius cienia.
  8. Ustaw Direction cienia.
  9. Ustaw Distance cienia.
  10. Ustaw RectanglelAlign na TopLeft.
  11. Ustaw PresetColor cienia na Black.
  12. Zapisz prezentację jako plik PPTX .

Ten przykładowy kod w Javie — implementacja powyższych kroków — pokazuje, jak zastosować efekt zewnętrznego cienia do tekstu:

Presentation pres = new Presentation();
try {
    // Pobierz odwołanie do slajdu
    ISlide sld = pres.getSlides().get_Item(0);

    // Dodaj AutoShape typu Prostokąt
    IAutoShape ashp = sld.getShapes().addAutoShape(ShapeType.Rectangle, 150, 75, 150, 50);

    // Dodaj TextFrame do prostokąta
    ashp.addTextFrame("Aspose TextBox");

    // Wyłącz wypełnienie kształtu, jeśli chcemy uzyskać cień tekstu
    ashp.getFillFormat().setFillType(FillType.NoFill);

    // Dodaj zewnętrzny cień i ustaw wszystkie niezbędne parametry
    ashp.getEffectFormat().enableOuterShadowEffect();
    IOuterShadow shadow = ashp.getEffectFormat().getOuterShadowEffect();
    shadow.setBlurRadius(4.0);
    shadow.setDirection(45);
    shadow.setDistance(3);
    shadow.setRectangleAlign(RectangleAlignment.TopLeft);
    shadow.getShadowColor().setPresetColor(PresetColor.Black);

    //Zapisz prezentację na dysku
    pres.save("pres_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Zastosuj efekty wewnętrznego cienia do kształtów

Przejdź przez następujące kroki:

  1. Utwórz instancję klasy Presentation .
  2. Uzyskaj odwołanie do slajdu.
  3. Dodaj AutoShape typu Rectangle.
  4. Włącz InnerShadowEffect.
  5. Ustaw wszystkie niezbędne parametry.
  6. Ustaw ColorType na Scheme.
  7. Ustaw kolor Scheme.
  8. Zapisz prezentację jako plik PPTX .

Ten przykładowy kod (oparty na powyższych krokach) pokazuje, jak dodać łącze między dwoma kształtami w Javie:

Presentation pres = new Presentation();
try {
    // Pobierz odwołanie do slajdu
    ISlide slide = pres.getSlides().get_Item(0);

    // Dodaj AutoShape typu Prostokąt
    IAutoShape ashp = slide.getShapes().addAutoShape(ShapeType.Rectangle, 150, 75, 400, 300);
    ashp.getFillFormat().setFillType(FillType.NoFill);

    // Dodaj TextFrame do prostokąta
    ashp.addTextFrame("Aspose TextBox");
    IPortion port = ashp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0);
    IPortionFormat pf = port.getPortionFormat();
    pf.setFontHeight(50);

    // Włącz efekt wewnętrznego cienia
    IEffectFormat ef = pf.getEffectFormat();
    ef.enableInnerShadowEffect();

    // Ustaw wszystkie niezbędne parametry
    ef.getInnerShadowEffect().setBlurRadius(8.0);
    ef.getInnerShadowEffect().setDirection(90.0F);
    ef.getInnerShadowEffect().setDistance(6.0);
    ef.getInnerShadowEffect().getShadowColor().setB((byte)189);

    // Ustaw ColorType jako Scheme
    ef.getInnerShadowEffect().getShadowColor().setColorType(ColorType.Scheme);

    // Ustaw kolor schematu
    ef.getInnerShadowEffect().getShadowColor().setSchemeColor(SchemeColor.Accent1);

    // Zapisz prezentację
    pres.save("WordArt_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

FAQ

Czy mogę używać efektów WordArt z różnymi czcionkami lub skryptami (np. arabski, chiński)?

Tak, Aspose.Slides obsługuje Unicode i współpracuje ze wszystkimi głównymi czcionkami i skryptami. Efekty WordArt, takie jak cień, wypełnienie i obrys, można zastosować niezależnie od języka, choć dostępność czcionek i renderowanie mogą zależeć od czcionek systemowych.

Czy mogę zastosować efekty WordArt do elementów mastera slajdu?

Tak, możesz stosować efekty WordArt do kształtów na slajdach master, w tym symboli tytułu, stopki lub tekstu tła. Zmiany w układzie mastera będą odzwierciedlane na wszystkich powiązanych slajdach.

Czy efekty WordArt wpływają na rozmiar pliku prezentacji?

Nieznacznie. Efekty WordArt, takie jak cienie, poświaty i gradientowe wypełnienia, mogą nieco zwiększyć rozmiar pliku ze względu na dodatkowe metadane formatowania, ale różnica jest zazwyczaj pomijalna.

Czy mogę podglądnąć wynik efektów WordArt bez zapisywania prezentacji?

Tak, możesz renderować slajdy zawierające WordArt do obrazów (np. PNG, JPEG) używając metody getImage z interfejsów IShape lub ISlide. Pozwala to na podgląd wyniku w pamięci lub na ekranie przed zapisaniem lub wyeksportowaniem pełnej prezentacji.