Formátování tvarů PowerPoint v Javě
Úvod
V programu PowerPoint můžete do snímků přidávat tvary. Protože tvary se skládají z čar, můžete je formátovat úpravou nebo použitím efektů na jejich obrysy. Navíc můžete tvary formátovat nastavením, které řídí, jak jsou vyplněny jejich vnitřní části.

Aspose.Slides for Java poskytuje rozhraní a metody, které vám umožňují formátovat tvary pomocí stejných možností, které jsou k dispozici v PowerPointu.
Formátování čar
Pomocí Aspose.Slides můžete pro tvar zadat vlastní styl čáry. Následující kroky popisují postup:
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek podle jeho indexu.
- Přidejte do snímku IAutoShape.
- Nastavte line style tvaru.
- Nastavte šířku čáry.
- Nastavte dash style čáry.
- Nastavte barvu čáry pro tvar.
- Uložte upravenou prezentaci jako soubor PPTX.
Následující kód ukazuje, jak naformátovat obdélníkový AutoShape:
// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
Presentation presentation = new Presentation();
try {
// Získejte první snímek.
ISlide slide = presentation.getSlides().get_Item(0);
// Přidejte automatický tvar typu Rectangle.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 150, 150, 75);
// Nastavte barvu výplně pro tvar obdélníku.
shape.getFillFormat().setFillType(FillType.NoFill);
// Použijte formátování na čáry obdélníku.
shape.getLineFormat().setStyle(LineStyle.ThickThin);
shape.getLineFormat().setWidth(7);
shape.getLineFormat().setDashStyle(LineDashStyle.Dash);
// Nastavte barvu čáry obdélníku.
shape.getLineFormat().getFillFormat().setFillType(FillType.Solid);
shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
// Uložte soubor PPTX na disk.
presentation.save("formatted_lines.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Výsledek:

Formátování stylů spojení
Zde jsou tři možnosti typů spojení:
- Round
- Miter
- Bevel
Ve výchozím nastavení, když PowerPoint spojuje dvě čáry pod úhlem (například na rohu tvaru), používá nastavení Round. Pokud však kreslíte tvar s ostrými úhly, můžete upřednostnit možnost Miter.

// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
Presentation presentation = new Presentation();
try {
// Získejte první snímek.
ISlide slide = presentation.getSlides().get_Item(0);
// Přidejte tři automatické tvary typu Rectangle.
IAutoShape shape1 = slide.getShapes().addAutoShape(ShapeType.Rectangle, 20, 20, 150, 75);
IAutoShape shape2 = slide.getShapes().addAutoShape(ShapeType.Rectangle, 210, 20, 150, 75);
IAutoShape shape3 = slide.getShapes().addAutoShape(ShapeType.Rectangle, 20, 135, 150, 75);
// Nastavte barvu výplně pro každý obdélníkový tvar.
shape1.getFillFormat().setFillType(FillType.Solid);
shape1.getFillFormat().getSolidFillColor().setColor(Color.BLACK);
shape2.getFillFormat().setFillType(FillType.Solid);
shape2.getFillFormat().getSolidFillColor().setColor(Color.BLACK);
shape3.getFillFormat().setFillType(FillType.Solid);
shape3.getFillFormat().getSolidFillColor().setColor(Color.BLACK);
// Nastavte šířku čáry.
shape1.getLineFormat().setWidth(15);
shape2.getLineFormat().setWidth(15);
shape3.getLineFormat().setWidth(15);
// Nastavte barvu čáry pro každý obdélník.
shape1.getLineFormat().getFillFormat().setFillType(FillType.Solid);
shape1.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
shape2.getLineFormat().getFillFormat().setFillType(FillType.Solid);
shape2.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
shape3.getLineFormat().getFillFormat().setFillType(FillType.Solid);
shape3.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
// Nastavte styl spoje.
shape1.getLineFormat().setJoinStyle(LineJoinStyle.Miter);
shape2.getLineFormat().setJoinStyle(LineJoinStyle.Bevel);
shape3.getLineFormat().setJoinStyle(LineJoinStyle.Round);
// Přidejte text do každého obdélníku.
shape1.getTextFrame().setText("Miter Join Style");
shape2.getTextFrame().setText("Bevel Join Style");
shape3.getTextFrame().setText("Round Join Style");
// Uložte soubor PPTX na disk.
presentation.save("join_styles.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Gradientová výplň
V PowerPointu je Gradient Fill (gradientová výplň) volbou formátování, která umožňuje aplikovat plynulý přechod barev na tvar. Například můžete použít dvě nebo více barev tak, aby se jedna postupně promíchávala s druhou.
Pomocí Aspose.Slides můžete aplikovat gradientovou výplň na tvar následujícím způsobem:
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek podle jeho indexu.
- Přidejte do snímku IAutoShape.
- Nastavte tvaru FillType na
Gradient. - Pomocí metod
addze sbírky gradientových zastávek, kterou vystavuje rozhraní IGradientFormat, přidejte své dvě upřednostňované barvy s definovanými pozicemi. - Uložte upravenou prezentaci jako soubor PPTX.
// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
Presentation presentation = new Presentation();
try {
// Získejte první snímek.
ISlide slide = presentation.getSlides().get_Item(0);
// Přidejte automatický tvar typu Ellipse.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Ellipse, 50, 50, 150, 75);
// Aplikujte gradientové formátování na elipsu.
shape.getFillFormat().setFillType(FillType.Gradient);
shape.getFillFormat().getGradientFormat().setGradientShape(GradientShape.Linear);
// Nastavte směr gradientu.
shape.getFillFormat().getGradientFormat().setGradientDirection(GradientDirection.FromCorner2);
// Přidejte dva gradientové zastávky.
shape.getFillFormat().getGradientFormat().getGradientStops().addPresetColor((float)1.0, PresetColor.Purple);
shape.getFillFormat().getGradientFormat().getGradientStops().addPresetColor((float)0, PresetColor.Red);
// Uložte soubor PPTX na disk.
presentation.save("gradient_fill.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Výsledek:

Vzorová výplň
V PowerPointu je Pattern Fill (vzorová výplň) volbou formátování, která umožňuje aplikovat dvoubarevný design – například tečky, pruhy, šrafování nebo šachovnici – na tvar. Můžete zvolit vlastní barvy pro popředí a pozadí vzoru.
Aspose.Slides poskytuje více než 45 předdefinovaných stylů vzorů, které můžete aplikovat na tvary a zvýšit tak vizuální přitažlivost svých prezentací. I po výběru předdefinovaného vzoru můžete ještě určit konkrétní barvy, které má použít.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek podle jeho indexu.
- Přidejte do snímku IAutoShape.
- Nastavte tvaru FillType na
Pattern. - Vyberte styl vzoru z předdefinovaných možností.
- Nastavte Background Color vzoru.
- Nastavte Foreground Color vzoru.
- Uložte upravenou prezentaci jako soubor PPTX.
// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
Presentation presentation = new Presentation();
try {
// Získejte první snímek.
ISlide slide = presentation.getSlides().get_Item(0);
// Přidejte automatický tvar typu Rectangle.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);
// Nastavte typ výplně na Pattern.
shape.getFillFormat().setFillType(FillType.Pattern);
// Nastavte styl vzoru.
shape.getFillFormat().getPatternFormat().setPatternStyle(PatternStyle.Trellis);
// Nastavte barvy pozadí a popředí vzoru.
shape.getFillFormat().getPatternFormat().getBackColor().setColor(Color.LIGHT_GRAY);
shape.getFillFormat().getPatternFormat().getForeColor().setColor(Color.YELLOW);
// Uložte soubor PPTX na disk.
presentation.save("pattern_fill.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Výsledek:

Obrázková výplň
V PowerPointu je Picture Fill (obrázková výplň) volbou formátování, která vám umožňuje vložit obrázek do tvaru – efektivně použít obrázek jako pozadí tvaru.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek podle jeho indexu.
- Přidejte do snímku IAutoShape.
- Nastavte tvaru FillType na
Picture. - Nastavte režim obrázkové výplně na
Tile(nebo jiný preferovaný režim). - Vytvořte objekt IPPImage z obrázku, který chcete použít.
- Předávejte obrázek metodě
ISlidesPicture.setImage. - Uložte upravenou prezentaci jako soubor PPTX.

// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
Presentation presentation = new Presentation();
try {
// Získejte první snímek.
ISlide slide = presentation.getSlides().get_Item(0);
// Přidejte automatický tvar typu Rectangle.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 255, 130);
// Nastavte typ výplně na Picture.
shape.getFillFormat().setFillType(FillType.Picture);
// Nastavte režim výplně obrázkem.
shape.getFillFormat().getPictureFillFormat().setPictureFillMode(PictureFillMode.Tile);
// Načtěte obrázek a přidejte ho do zdrojů prezentace.
IImage image = Images.fromFile("lotus.png");
IPPImage picture = presentation.getImages().addImage(image);
image.dispose();
// Nastavte obrázek.
shape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture);
// Uložte soubor PPTX na disk.
presentation.save("picture_fill.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Výsledek:

Dlaždice obrázku jako textury
Pokud chcete nastavit dlaždicový obrázek jako texturu a přizpůsobit chování dlaždic, můžete použít následující metody rozhraní IPictureFillFormat a třídy PictureFillFormat:
- setPictureFillMode: Nastavuje režim vyplnění obrázkem – buď
Tile, neboStretch. - setTileAlignment: Určuje zarovnání dlaždic v rámci tvaru.
- setTileFlip: Řídí, zda je dlaždice převrácena vodorovně, svisle nebo obojí.
- setTileOffsetX: Nastavuje horizontální posun dlaždice (v bodech) od počátku tvaru.
- setTileOffsetY: Nastavuje vertikální posun dlaždice (v bodech) od počátku tvaru.
- setTileScaleX: Definuje horizontální měřítko dlaždice v procentech.
- setTileScaleY: Definuje vertikální měřítko dlaždice v procentech.
// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
Presentation presentation = new Presentation();
try {
// Získejte první snímek.
ISlide firstSlide = presentation.getSlides().get_Item(0);
// Přidejte automatický tvar typu Rectangle.
IAutoShape shape = firstSlide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 190, 95);
// Nastavte typ výplně tvaru na Picture.
shape.getFillFormat().setFillType(FillType.Picture);
// Načtěte obrázek a přidejte ho do zdrojů prezentace.
IImage sourceImage = Images.fromFile("lotus.png");
IPPImage presentationImage = presentation.getImages().addImage(sourceImage);
sourceImage.dispose();
// Přiřaďte obrázek k tvaru.
IPictureFillFormat pictureFillFormat = shape.getFillFormat().getPictureFillFormat();
pictureFillFormat.getPicture().setImage(presentationImage);
// Nakonfigurujte režim výplně obrázkem a vlastnosti dláždění.
pictureFillFormat.setPictureFillMode(PictureFillMode.Tile);
pictureFillFormat.setTileOffsetX(-32);
pictureFillFormat.setTileOffsetY(-32);
pictureFillFormat.setTileScaleX(50);
pictureFillFormat.setTileScaleY(50);
pictureFillFormat.setTileAlignment(RectangleAlignment.BottomRight);
pictureFillFormat.setTileFlip(TileFlip.FlipBoth);
// Uložte soubor PPTX na disk.
presentation.save("tile.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Výsledek:

Jednobarevná výplň
V PowerPointu je Solid Color Fill (jednobarevná výplň) volbou formátování, která vyplní tvar jednou, jednotnou barvou. Tato jednoduchá barva pozadí se použije bez jakýchkoli gradientů, textur nebo vzorů.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek podle jeho indexu.
- Přidejte do snímku IAutoShape.
- Nastavte tvaru FillType na
Solid. - Přiřaďte tvaru preferovanou barvu výplně.
- Uložte upravenou prezentaci jako soubor PPTX.
// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
Presentation presentation = new Presentation();
try {
// Získejte první snímek.
ISlide slide = presentation.getSlides().get_Item(0);
// Přidejte automatický tvar typu Rectangle.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);
// Nastavte typ výplně na Solid.
shape.getFillFormat().setFillType(FillType.Solid);
// Nastavte barvu výplně.
shape.getFillFormat().getSolidFillColor().setColor(Color.YELLOW);
// Uložte soubor PPTX na disk.
presentation.save("solid_color_fill.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Výsledek:

Nastavení průhlednosti
V PowerPointu, když použijete jednobarevnou, gradientovou, obrázkovou nebo texturovou výplň na tvary, můžete také nastavit úroveň průhlednosti, která řídí neprůhlednost výplně. Vyšší hodnota průhlednosti způsobí, že tvar bude více průhledný a podklad nebo podřazené objekty budou částečně viditelné.
Aspose.Slides vám umožňuje nastavit úroveň průhlednosti úpravou alfa komponenty barvy použité pro výplň. Postup:
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek podle jeho indexu.
- Přidejte do snímku IAutoShape.
- Nastavte FillType na
Solid. - Použijte
Colork definování barvy s průhledností (komponentaalphařídí průhlednost). - Uložte prezentaci.
// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
Presentation presentation = new Presentation();
try {
// Získejte první snímek.
ISlide slide = presentation.getSlides().get_Item(0);
// Přidejte automatický tvar Rectangle s plnou výplní.
IAutoShape solidShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);
// Přidejte transparentní obdélníkový automatický tvar nad pevný tvar.
IAutoShape transparentShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 80, 80, 150, 75);
transparentShape.getFillFormat().setFillType(FillType.Solid);
transparentShape.getFillFormat().getSolidFillColor().setColor(new Color(255, 255, 0, 204));
// Uložte soubor PPTX na disk.
presentation.save("shape_transparency.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Výsledek:

Rotace tvarů
Aspose.Slides vám umožňuje otáčet tvary v prezentacích PowerPoint. To může být užitečné při umisťování vizuálních prvků s konkrétními požadavky na zarovnání nebo design.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek podle jeho indexu.
- Přidejte do snímku IAutoShape.
- Nastavte vlastnost rotace tvaru na požadovaný úhel.
- Uložte prezentaci.
// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
Presentation presentation = new Presentation();
try {
// Získejte první snímek.
ISlide slide = presentation.getSlides().get_Item(0);
// Přidejte automatický tvar typu Rectangle.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);
// Otočte tvar o 5 stupňů.
shape.setRotation(5);
// Uložte soubor PPTX na disk.
presentation.save("shape_rotation.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Výsledek:

Přidání 3D efektů zkosení
Aspose.Slides umožňuje aplikovat 3D efekty zkosení na tvary konfigurací jejich vlastností ThreeDFormat.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek podle jeho indexu.
- Přidejte do snímku IAutoShape.
- Nakonfigurujte ThreeDFormat tvaru pro definování nastavení zkosení.
- Uložte prezentaci.
// Vytvořte instanci třídy Presentation.
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
// Přidejte tvar do snímku.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Ellipse, 50, 50, 100, 100);
shape.getFillFormat().setFillType(FillType.Solid);
shape.getFillFormat().getSolidFillColor().setColor(Color.GREEN);
shape.getLineFormat().getFillFormat().setFillType(FillType.Solid);
shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.ORANGE);
shape.getLineFormat().setWidth(2.0);
// Nastavte vlastnosti ThreeDFormat tvaru.
shape.getThreeDFormat().setDepth(4);
shape.getThreeDFormat().getBevelTop().setBevelType(BevelPresetType.Circle);
shape.getThreeDFormat().getBevelTop().setHeight(6);
shape.getThreeDFormat().getBevelTop().setWidth(6);
shape.getThreeDFormat().getCamera().setCameraType(CameraPresetType.OrthographicFront);
shape.getThreeDFormat().getLightRig().setLightType(LightRigPresetType.ThreePt);
shape.getThreeDFormat().getLightRig().setDirection(LightingDirection.Top);
// Uložte prezentaci jako soubor PPTX.
presentation.save("3D_bevel_effect.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Výsledek:

Přidání 3D efektů rotace
Aspose.Slides umožňuje aplikovat 3D rotaci na tvary konfigurací jejich vlastností ThreeDFormat.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek podle jeho indexu.
- Přidejte do snímku IAutoShape.
- Pomocí metod setCameraType a setLightType definujte 3D rotaci.
- Uložte prezentaci.
// Vytvořte instanci třídy Presentation.
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape autoShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);
autoShape.getTextFrame().setText("Hello, Aspose!");
autoShape.getThreeDFormat().setDepth(6);
autoShape.getThreeDFormat().getCamera().setRotation(40, 35, 20);
autoShape.getThreeDFormat().getCamera().setCameraType(CameraPresetType.IsometricLeftUp);
autoShape.getThreeDFormat().getLightRig().setLightType(LightRigPresetType.Balanced);
// Uložte prezentaci jako soubor PPTX.
presentation.save("3D_rotation_effect.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Výsledek:

Obnovení formátování
Následující Java kód ukazuje, jak resetovat formátování snímku a vrátit pozici, velikost a formátování všech tvarů s placeholdery na LayoutSlide na jejich výchozí nastavení:
Presentation presentation = new Presentation("sample.pptx");
try {
for (ISlide slide : presentation.getSlides()) {
// Resetujte každý tvar na snímku, který má placeholder v rozložení.
slide.reset();
}
presentation.save("reset_formatting.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Často kladené otázky
Ovlivňuje formátování tvarů velikost konečného souboru prezentace?
Pouze nepatrně. Vložené obrázky a média zabírají většinu místa v souboru, zatímco parametry tvarů, jako jsou barvy, efekty a gradienty, jsou uloženy jako metadata a přidávají prakticky žádnou další velikost.
Jak mohu detekovat tvary na snímku, které mají identické formátování, abych je mohl seskupit?
Porovnejte klíčové vlastnosti formátování každého tvaru – nastavení výplně, čáry a efektů. Pokud se všechny odpovídající hodnoty shodují, považujte jejich styly za identické a logicky je seskupte, což usnadní následnou správu stylů.
Mohu uložit sadu vlastních stylů tvarů do samostatného souboru pro opětovné použití v jiných prezentacích?
Ano. Uložte vzorové tvary s požadovanými styly do šablony prezentace nebo souboru šablony .POTX. Při vytváření nové prezentace otevřete šablonu, zkopírujte potřebné stylované tvary a znovu aplikujte jejich formátování tam, kde je to potřeba.