Formatera PowerPoint-former i Java
Introduktion
Formatera former i PowerPoint genom att justera deras konturer, fyllningar och effekter. Aspose.Slides för Java låter dig kontrollera dessa inställningar programmässigt, inklusive transparens, rotation och 3D-formatering.

Aspose.Slides för Java tillhandahåller gränssnitt och metoder som låter dig formatera former med samma alternativ som finns i PowerPoint.
Formatera linjer
Använd IShape.getLineFormat för att kontrollera en formas kontur. Detta exempel skapar en ofylld rektangel med en blå, streckad kontur. ILineFormat.setStyle väljer en tjock‑tunn sammansatt linje, medan ILineFormat.setWidth sätter dess bredd till 7 punkter och ILineFormat.setDashStyle väljer dash‑mönstret.
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);
shape.getFillFormat().setFillType(FillType.NoFill);
shape.getLineFormat().setStyle(LineStyle.ThickThin);
shape.getLineFormat().setWidth(7);
shape.getLineFormat().setDashStyle(LineDashStyle.Dash);
shape.getLineFormat().getFillFormat().setFillType(FillType.Solid);
shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
presentation.save("formatted_lines.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Resultatet:

Ange anpassade dash‑mönster för linjer
Använd ILineFormat.setCustomDashPattern när fördefinierade linjestilar inte ger de dash‑längder och -gap du behöver, till exempel för varumärkeskonturer eller tekniska diagram. Att tilldela ett mönster ändrar automatiskt linjens dash‑stil till LineDashStyle.Custom.
Array‑poster alternerar mellan dash‑ och gap‑längder, med en dash först. Varje värde är en multipel av linjebredden: { 4, 2 } vid en bredd på 3 punkter ger en 12‑punkts dash följd av ett 6‑punkts gap. Använd par av ändliga, icke‑negativa värden för att definiera kompletta dash‑och‑gap‑segment. Exemplet använder positiva värden för att hålla varje dash och gap synliga.
Detta exempel skapar fem blå linjer med samma längd och platta ändar. De tre första jämför mönster vid en bredd på 3 punkter. Den fjärde upprepar det första mönstret med dubbelt så stor bredd, vilket fördubblar både dash‑ och gap‑längderna. Den femte växlar från ett anpassat mönster till en solid linje.
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
presentation.getSlideSize().setSize(600, 300, SlideSizeScaleType.DoNotScale);
ISlide slide = presentation.getSlides().get_Item(0);
float[][] patterns = {
{ 4, 2 },
{ 1, 2 },
{ 6, 2, 1, 2 },
{ 4, 2 },
{ 4, 2 }
};
for (int i = 0; i < patterns.length; i++) {
IAutoShape line = slide.getShapes().addAutoShape(ShapeType.Line, 50, 50 + i * 50, 500, 0);
line.getLineFormat().setWidth(i == 3 ? 6 : 3);
line.getLineFormat().getFillFormat().setFillType(FillType.Solid);
line.getLineFormat().getFillFormat().getSolidFillColor().setColor(new Color(0, 0, 139));
line.getLineFormat().setCapStyle(LineCapStyle.Flat);
line.getLineFormat().setBeginArrowheadStyle(LineArrowheadStyle.None);
line.getLineFormat().setEndArrowheadStyle(LineArrowheadStyle.None);
line.getLineFormat().setCustomDashPattern(patterns[i]);
}
// Returnera den sista linjen till en solid stil.
slide.getShapes().get_Item(4).getLineFormat().setDashStyle(LineDashStyle.Solid);
presentation.save("custom_dash_patterns.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
För att återgå till en fördefinierad streckad stil istället, skicka LineDashStyle.Dash till ILineFormat.setDashStyle. Den valda stilen styr linjens utseende.
Resultatet i PowerPoint, uppifrån och ner: {4, 2}, 3 pt; {1, 2}, 3 pt; {6, 2, 1, 2}, 3 pt; {4, 2}, 6 pt; och Solid, 3 pt.

Ange linjeändar
Använd ILineFormat.setCapStyle för att sätta ändarna på en öppen linje. Klassen LineCapStyle tillhandahåller tre explicita ändstil:
Flat: Linjen slutar vid ändpunkten.Round: En halvcirkulär ändning sträcker sig bortom ändpunkten med halva linjebredden.Square: En fyrkantig ändning sträcker sig bortom ändpunkten med halva linjebredden.
Klassen innehåller också NotDefined, vilket betyder att ingen ändstil är explicit tilldelad.
Ändar är olika från pilhuvuden, som lägger till symboler i linjeändar, och fogar, som styr hörn mellan linjesegment. Detta exempel inaktiverar pilhuvuden via ILineFormat.setBeginArrowheadStyle och ILineFormat.setEndArrowheadStyle så att endast ändformer jämförs.
Följande exempel skapar tre annars identiska horisontella linjer, 20 punkter breda. Uppifrån och ner använder de platta, runda och fyrkantiga ändar. Deras ändpunkter har samma horisontella koordinater; de runda och fyrkantiga ändarna sträcker sig 10 punkter bortom varje ändpunkt.
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
presentation.getSlideSize().setSize(500, 240, SlideSizeScaleType.DoNotScale);
ISlide slide = presentation.getSlides().get_Item(0);
byte[] capStyles = new byte[] { LineCapStyle.Flat, LineCapStyle.Round, LineCapStyle.Square };
for (int i = 0; i < capStyles.length; i++) {
IAutoShape line = slide.getShapes().addAutoShape(ShapeType.Line, 100, 50 + i * 70, 300, 0);
line.getLineFormat().setWidth(20);
line.getLineFormat().getFillFormat().setFillType(FillType.Solid);
line.getLineFormat().getFillFormat().getSolidFillColor().setColor(new Color(0, 0, 139));
line.getLineFormat().setDashStyle(LineDashStyle.Solid);
line.getLineFormat().setCapStyle(capStyles[i]);
line.getLineFormat().setBeginArrowheadStyle(LineArrowheadStyle.None);
line.getLineFormat().setEndArrowheadStyle(LineArrowheadStyle.None);
}
presentation.save("line_caps.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Resultatet i PowerPoint, uppifrån och ner: Flat, Round och Square.

Applicera skiss‑effekter på formens linjer
En skisseffekt får en formlinje att se handritad ut. Använd IShape.getLineFormat för att komma åt linjeinställningarna, ILineFormat.getSketchFormat för att komma åt skissinställningarna, och ISketchFormat.setSketchType för att välja ett värde från klassen LineSketchType.
Följande Java‑kod visar hur man applicerar en LineSketchType.Curved effekt, läser det explicit tilldelade värdet, och tar bort effekten med LineSketchType.None:
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 100);
ISketchFormat sketchFormat = shape.getLineFormat().getSketchFormat();
sketchFormat.setSketchType(LineSketchType.Curved);
int explicitSketchType = sketchFormat.getSketchType();
System.out.println("Explicit sketch type: " + explicitSketchType);
sketchFormat.setSketchType(LineSketchType.None);
} finally {
presentation.dispose();
}
Värdet som returneras av ISketchFormat.getSketchType representerar inställningen som tilldelats direkt till formen. Om linjeformateringen kan ärvas från ett tema, en masterslide eller en layoutslide, använd ILineFormat.getEffective, nå ILineFormatEffectiveData.getSketchFormat, och läs ISketchFormatEffectiveData.getSketchType. Det effektiva värdet speglar den formatering som faktiskt tillämpas efter att arv har lösts. Detta exempel kräver en befintlig presentation med minst en form på den första bilden och skriver ut båda värdena:
import com.aspose.slides.*;
Presentation presentation = new Presentation("presentation.pptx");
try {
IShape shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0);
ILineFormat lineFormat = shape.getLineFormat();
int explicitSketchType = lineFormat.getSketchFormat().getSketchType();
ILineFormatEffectiveData effectiveLineFormat = lineFormat.getEffective();
int effectiveSketchType = effectiveLineFormat.getSketchFormat().getSketchType();
System.out.println("Explicit sketch type: " + explicitSketchType);
System.out.println("Effective sketch type: " + effectiveSketchType);
} finally {
presentation.dispose();
}
Formatera fogstilar
Här är de tre alternativen för fogtyp:
- Round
- Miter
- Bevel
Fogstilen styr hur två kontursegment möts i ett hörn. Använd Round för rundade hörn, Miter för spetsiga hörn, eller Bevel för avplattade hörn.

Detta exempel skapar tre svarta rektanglar med blå konturer 15 punkter breda. Det använder ILineFormat.setJoinStyle för att sätta miter-, bevel- och round‑värdena i LineJoinStyle, respektive, för att jämföra hur hörnen ritas.
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape miterShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 20, 20, 150, 75);
IAutoShape bevelShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 210, 20, 150, 75);
IAutoShape roundShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 20, 135, 150, 75);
miterShape.getFillFormat().setFillType(FillType.Solid);
miterShape.getFillFormat().getSolidFillColor().setColor(Color.BLACK);
bevelShape.getFillFormat().setFillType(FillType.Solid);
bevelShape.getFillFormat().getSolidFillColor().setColor(Color.BLACK);
roundShape.getFillFormat().setFillType(FillType.Solid);
roundShape.getFillFormat().getSolidFillColor().setColor(Color.BLACK);
miterShape.getLineFormat().setWidth(15);
bevelShape.getLineFormat().setWidth(15);
roundShape.getLineFormat().setWidth(15);
miterShape.getLineFormat().getFillFormat().setFillType(FillType.Solid);
miterShape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
bevelShape.getLineFormat().getFillFormat().setFillType(FillType.Solid);
bevelShape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
roundShape.getLineFormat().getFillFormat().setFillType(FillType.Solid);
roundShape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
miterShape.getLineFormat().setJoinStyle(LineJoinStyle.Miter);
bevelShape.getLineFormat().setJoinStyle(LineJoinStyle.Bevel);
roundShape.getLineFormat().setJoinStyle(LineJoinStyle.Round);
miterShape.getTextFrame().setText("Miter Join Style");
bevelShape.getTextFrame().setText("Bevel Join Style");
roundShape.getTextFrame().setText("Round Join Style");
presentation.save("join_styles.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Begränsa Miter-fogar vid spetsiga hörn
Använd ILineFormat.setMiterLimit ihop med ILineFormat.setJoinStyle satt till LineJoinStyle.Miter för att begränsa hur långt ett spetsigt hörn kan sträcka sig.
Gränsen är ett förhållande mellan avståndet mellan den inre och yttre hörnan i fogen och linjebredden. Till exempel tillåter ett värde på 8 en miterlängd på upp till åtta gånger linjebredden; det är inte ett mått i punkter. Om hörnet skulle överstiga gränsen använder PowerPoint en avfasad fog på det hörnet. En större gräns tillåter skarpare spetsar. Inställningen påverkar endast miter-fogar, och att ändra den har ingen synlig effekt när hörnet förblir inom båda gränserna.
Detta exempel skapar två identiska, ofyllda trianglar med konturer 20 punkter breda. Den vänstra triangeln använder en gräns på 2, och den högra använder 8. Varje triangel är 80 punkter bred och 160 punkter hög, vilket ger dess översta hörn ett miter‑längd‑till‑linjebredd‑förhållande på ungefär 4.12. Följaktligen avfasar PowerPoint den vänstra spetsen och bevarar den högra spetsen.
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
presentation.getSlideSize().setSize(500, 320, SlideSizeScaleType.DoNotScale);
ISlide slide = presentation.getSlides().get_Item(0);
float[] miterLimits = new float[] { 2f, 8f };
for (int i = 0; i < miterLimits.length; i++) {
IAutoShape triangle = slide.getShapes().addAutoShape(ShapeType.Triangle, 90 + i * 240, 110, 80, 160);
triangle.getFillFormat().setFillType(FillType.NoFill);
triangle.getLineFormat().setWidth(20);
triangle.getLineFormat().getFillFormat().setFillType(FillType.Solid);
triangle.getLineFormat().getFillFormat().getSolidFillColor().setColor(new Color(0, 0, 139));
triangle.getLineFormat().setJoinStyle(LineJoinStyle.Miter);
triangle.getLineFormat().setMiterLimit(miterLimits[i]);
}
presentation.save("miter_limits.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Resultatet i PowerPoint: Miter limit 2 till vänster och miter limit 8 till höger.

Gradientfyllning
En gradientfyllning blandar färger över en form. Detta exempel fyller en ellips med en linjär gradient i 45‑graders vinkel från rött till lila med hjälp av IFillFormat.getGradientFormat. Metoden IGradientStopCollection.addPresetColor placerar färgstopp vid 0 och 1, början och slutet av gradienten. Att rensa befintliga stopp säkerställer att endast dessa två färger används.
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Ellipse, 50, 50, 150, 75);
shape.getFillFormat().setFillType(FillType.Gradient);
shape.getFillFormat().getGradientFormat().setGradientShape(GradientShape.Linear);
shape.getFillFormat().getGradientFormat().setLinearGradientAngle(45);
shape.getFillFormat().getGradientFormat().getGradientStops().clear();
shape.getFillFormat().getGradientFormat().getGradientStops().addPresetColor(1.0f, PresetColor.Purple);
shape.getFillFormat().getGradientFormat().getGradientStops().addPresetColor(0.0f, PresetColor.Red);
presentation.save("gradient_fill.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Resultatet:

Om en gradient ser annorlunda ut i en exporterad bild jämfört med PowerPoint, se Choose a Gradient Rendering Style. Du kan välja en renderingsstil utan att ändra den gradientfyllning som lagras i presentationen.
Ange vinkeln för linjär gradient
Använd IGradientFormat.setLinearGradientAngle för att kontrollera orienteringen av en GradientShape.Linear‑fyllning. Vinkeln mäts i grader och ökar medurs: 0 går från vänster till höger, 90 från topp till botten, 180 från höger till vänster, och 270 från botten till topp. Bråkdelar av grader stöds. Finitra vinklar utanför [0, 360) normaliseras till en hel varv; till exempel blir -45 315 och 360 blir 0.
Detta exempel skapar sex rektanglar med identiska röd, grön och blå stopp på positionerna 0, 0.5 och 1. Skalning är avstängd så att vinkeln kan jämföras oberoende av rektanglarnas proportioner. Vinklarna, från vänster till höger, är 0, 45 och 90 i första raden, samt 135, 180 och 270 i andra raden.
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
presentation.getSlideSize().setSize(720, 400, SlideSizeScaleType.DoNotScale);
ISlide slide = presentation.getSlides().get_Item(0);
float[] angles = new float[] { 0, 45, 90, 135, 180, 270 };
for (int i = 0; i < angles.length; i++) {
int x = 30 + (i % 3) * 230;
int y = 30 + (i / 3) * 190;
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, x, y, 200, 150);
shape.getLineFormat().getFillFormat().setFillType(FillType.NoFill);
shape.getFillFormat().setFillType(FillType.Gradient);
IGradientFormat gradient = shape.getFillFormat().getGradientFormat();
gradient.setGradientShape(GradientShape.Linear);
gradient.getGradientStops().clear();
gradient.getGradientStops().add(0f, Color.RED);
gradient.getGradientStops().add(0.5f, Color.GREEN);
gradient.getGradientStops().add(1f, Color.BLUE);
gradient.setLinearGradientScaled(NullableBool.False);
gradient.setLinearGradientAngle(angles[i]);
}
presentation.save("linear_gradient_angles.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Resultatet i PowerPoint:

Skala en linjär gradient med formen
IGradientFormat.setLinearGradientScaled accepterar ett NullableBool‑värde. Ställ in det explicit till False för att behålla den geometriska gradientvinkeln när formens proportioner ändras, eller till True för att skala gradienten med formens bredd och höjd. Med skalning aktiverad kan den synliga vinkeln skilja sig från den tilldelade vinkeln på en icke‑kvadratisk form.
Följande exempel använder en 45‑graders vinkel och samma färgstopp som vinkeljämförelsen. Den vänstra kolumnen använder False; den högra kolumnen använder True. Varje kolumn innehåller en bred rektangel ovanför en hög rektangel. Båda börjar med samma breda dimensioner; förändring av den andra rektangelns bredd och höjd visar hur fyllningen svarar på storleksändring utan att ändra sina gradientinställningar.
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
presentation.getSlideSize().setSize(720, 460, SlideSizeScaleType.DoNotScale);
ISlide slide = presentation.getSlides().get_Item(0);
byte[] scalingOptions = new byte[] { NullableBool.False, NullableBool.True };
for (int column = 0; column < scalingOptions.length; column++) {
for (int row = 0; row < 2; row++) {
int x = 30 + column * 360;
int y = row == 0 ? 30 : 150;
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, x, y, 300, 90);
shape.getLineFormat().getFillFormat().setFillType(FillType.NoFill);
shape.getFillFormat().setFillType(FillType.Gradient);
IGradientFormat gradient = shape.getFillFormat().getGradientFormat();
gradient.setGradientShape(GradientShape.Linear);
gradient.getGradientStops().clear();
gradient.getGradientStops().add(0f, Color.RED);
gradient.getGradientStops().add(0.5f, Color.GREEN);
gradient.getGradientStops().add(1f, Color.BLUE);
gradient.setLinearGradientAngle(45);
gradient.setLinearGradientScaled(scalingOptions[column]);
if (row == 1) {
shape.setWidth(90);
shape.setHeight(280);
}
}
}
presentation.save("linear_gradient_scaling.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Resultatet i PowerPoint, med skalning inaktiverad till vänster och aktiverad till höger:

Med skalning avstängd behåller de diagonala färgbanden samma orientering i båda rektanglarna. Med skalning på sträcker banden sig med formens proportioner. Detta hjälper till att reproducera en mall‑gradient när en form anpassas till en annan storlek. På en kvadrat ändrar inte aktivering av skalning utseendet på denna 45‑graders gradient.
Både vinkeln och skalningsinställningarna gäller för linjära gradienter. De styr inte GradientShape.Radial or GradientShape.Rectangle‑fyllningar.
Kombinera vinkeln med gradientens riktning
IGradientFormat.setGradientDirection väljer en gradientstil från klassen GradientDirection; den är ingen ersättning för en numerisk vinkel. För en linjär gradient kan hörnstilarna ändra området där färgerna distribueras utan att ändra vinkeln som tilldelats via setLinearGradientAngle. Behåll riktningen oförändrad när du jämför vinklar eller skalning.
Följande exempel applicerar samma inställningar i omvänd ordning. De två rektanglarna ser likadana ut: att ange riktningen före eller efter vinkeln ändrar inte resultatet.
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
for (int i = 0; i < 2; i++) {
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 30, 30 + i * 140, 320, 100);
shape.getLineFormat().getFillFormat().setFillType(FillType.NoFill);
shape.getFillFormat().setFillType(FillType.Gradient);
IGradientFormat gradient = shape.getFillFormat().getGradientFormat();
gradient.setGradientShape(GradientShape.Linear);
gradient.getGradientStops().clear();
gradient.getGradientStops().add(0f, Color.RED);
gradient.getGradientStops().add(0.5f, Color.GREEN);
gradient.getGradientStops().add(1f, Color.BLUE);
gradient.setLinearGradientScaled(NullableBool.True);
if (i == 0) {
gradient.setGradientDirection(GradientDirection.FromCorner1);
gradient.setLinearGradientAngle(30);
} else {
gradient.setLinearGradientAngle(30);
gradient.setGradientDirection(GradientDirection.FromCorner1);
}
}
presentation.save("linear_gradient_direction.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Mönsterfyllning
En mönsterfyllning applicerar en tvåfärgsdesign, såsom prickar, ränder eller rutnät. Detta exempel använder IPatternFormat.setPatternStyle för att välja ett galler‑mönster. IPatternFormat.getBackColor tillhandahåller den ljusgrå bakgrunden, och IPatternFormat.getForeColor ger den gula mönsterfärgen.
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);
shape.getFillFormat().setFillType(FillType.Pattern);
shape.getFillFormat().getPatternFormat().setPatternStyle(PatternStyle.Trellis);
shape.getFillFormat().getPatternFormat().getBackColor().setColor(Color.LIGHT_GRAY);
shape.getFillFormat().getPatternFormat().getForeColor().setColor(Color.YELLOW);
presentation.save("pattern_fill.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Resultatet:

Bildfyllning
En bildfyllning använder en bild inuti en form. Detta exempel kräver en lokal bild och använder Images.fromFile för att ladda den i presentationens bildsamling. Att sätta IPictureFillFormat.setPictureFillMode till det kaklade läget upprepar bilden inom rektangeln. Källbilden som används visas nedan:

import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 255, 130);
shape.getFillFormat().setFillType(FillType.Picture);
shape.getFillFormat().getPictureFillFormat().setPictureFillMode(PictureFillMode.Tile);
IImage image = Images.fromFile("lotus.png");
IPPImage picture;
try {
picture = presentation.getImages().addImage(image);
} finally {
image.dispose();
}
shape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture);
presentation.save("picture_fill.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Resultatet:

Tile Bild som Textur
Om du vill sätta en kaklad bild som textur och anpassa kaklingsbeteendet kan du använda följande metoder i gränssnittet IPictureFillFormat och klassen PictureFillFormat:
- setPictureFillMode: Ställer in bildfyllningsläget— antingen
TileellerStretch. - setTileAlignment: Specificerar justeringen av rutorna inom formen.
- setTileFlip: Styr om rutan vänds horisontellt, vertikalt eller båda.
- setTileOffsetX: Ställer in den horisontella förskjutningen av rutan (i punkter) från formens ursprung.
- setTileOffsetY: Ställer in den vertikala förskjutningen av rutan (i punkter) från formens ursprung.
- setTileScaleX: Definierar den horisontella skalan av rutan som en procentandel.
- setTileScaleY: Definierar den vertikala skalan av rutan som en procentandel.
Detta exempel kräver en lokal bild och konfigurerar IPictureFillFormat för att upprepa den på 50 % av sin ursprungliga storlek. Förskjutningar på −32 punkter flyttar rutorna horisontellt och vertikalt; justering längst ner till höger och spegling i båda riktningarna bestämmer hur den upprepade texturen placeras.
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide firstSlide = presentation.getSlides().get_Item(0);
IAutoShape shape = firstSlide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 190, 95);
shape.getFillFormat().setFillType(FillType.Picture);
IImage sourceImage = Images.fromFile("lotus.png");
IPPImage presentationImage;
try {
presentationImage = presentation.getImages().addImage(sourceImage);
} finally {
sourceImage.dispose();
}
IPictureFillFormat pictureFillFormat = shape.getFillFormat().getPictureFillFormat();
pictureFillFormat.getPicture().setImage(presentationImage);
pictureFillFormat.setPictureFillMode(PictureFillMode.Tile);
pictureFillFormat.setTileOffsetX(-32);
pictureFillFormat.setTileOffsetY(-32);
pictureFillFormat.setTileScaleX(50);
pictureFillFormat.setTileScaleY(50);
pictureFillFormat.setTileAlignment(RectangleAlignment.BottomRight);
pictureFillFormat.setTileFlip(TileFlip.FlipBoth);
presentation.save("tile.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Resultatet:

Solid färgfyllning
En solid fyllning ger en form en enda, enhetlig färg. Detta exempel använder IFillFormat.setFillType för att sätta solid fyllningsläge och tilldelar gult via IFillFormat.getSolidFillColor, och sparar sedan rektangeln i en presentation.
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);
shape.getFillFormat().setFillType(FillType.Solid);
shape.getFillFormat().getSolidFillColor().setColor(Color.YELLOW);
presentation.save("solid_color_fill.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Resultatet:

Kopiera färger samtidigt som temareferenser bevaras
Använd IColorFormat.copyFrom för att kopiera en färgdefinition, inklusive dess färgtyp, temareferens och transformationer. Detta är användbart när du överför en fyllningsfärg mellan former som ska fortsätta följa presentationens tema. Metoden kopierar endast färgen: den kopierar inte fyllningstyp, kontur eller annan formatering. Ställ in destinationens fyllningstyp explicit med IFillFormat.setFillType.
Detta exempel skapar tre rektanglar, från vänster till höger: källan, en temamedveten kopia och en fast RGB‑kopia. Källan använder IColorFormat.setSchemeColor för att referera till den första accentfärgen och lägger till en nyans via IColorOperationCollection.add. RGB‑kopian använder källans effektiva fyllningsfärg så att alla tre initialt ser identiska ut. Att anropa IColorFormat.setColor sätter ett fast RGB‑värde och rensar eventuella befintliga färgtransformationer.
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
presentation.getSlideSize().setSize(660, 220, SlideSizeScaleType.DoNotScale);
ISlide slide = presentation.getSlides().get_Item(0);
presentation.getMasterTheme().getColorScheme().getAccent1().setColor(new Color(65, 105, 225));
IAutoShape source = slide.getShapes().addAutoShape(ShapeType.Rectangle, 30, 40, 180, 140);
IAutoShape themeCopy = slide.getShapes().addAutoShape(ShapeType.Rectangle, 240, 40, 180, 140);
IAutoShape rgbCopy = slide.getShapes().addAutoShape(ShapeType.Rectangle, 450, 40, 180, 140);
for (IAutoShape shape : new IAutoShape[] { source, themeCopy, rgbCopy }) {
shape.getFillFormat().setFillType(FillType.Solid);
shape.getLineFormat().getFillFormat().setFillType(FillType.NoFill);
}
IColorFormat sourceColor = source.getFillFormat().getSolidFillColor();
sourceColor.setSchemeColor(SchemeColor.Accent1);
sourceColor.getColorTransform().add(ColorTransformOperation.Tint, 0.75f);
themeCopy.getFillFormat().getSolidFillColor().copyFrom(sourceColor);
rgbCopy.getFillFormat().getSolidFillColor().setColor(source.getFillFormat().getEffective().getSolidFillColor());
IImage before = slide.getImage(1f, 1f);
try {
before.save("color-copy-before.png", ImageFormat.Png);
} finally {
before.dispose();
}
// Temareferenser följer den nya accentfärgen; det fasta RGB‑värdet gör det inte.
presentation.getMasterTheme().getColorScheme().getAccent1().setColor(new Color(255, 69, 0));
IImage after = slide.getImage(1f, 1f);
try {
after.save("color-copy-after.png", ImageFormat.Png);
} finally {
after.dispose();
}
presentation.save("copied_colors.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Före temabytet matchar alla tre fyllningarna:

Efter temabytet följer källan och den temamedvetna kopian den nya accentfärgen och behåller sin nyans. Den fasta RGB‑kopian förblir blå:

Den kopierade definitionen är oberoende av källan. Att senare ändra källans temareferens, tilldela en annan färg eller lägga till eller ta bort dess transformationer förändrar inte destinationen. Ett temabyte påverkar fortfarande båda formerna eftersom var och en refererar oberoende till samma temafärg.
Att spara och öppna PPTX igen bevarar den kopierade färgens typ som returneras av IColorFormat.getColorType, temareferens samt transformationssamling som returneras av IColorFormat.getColorTransform; den flattar inte ner definitionen till RGB.
När du kopierar mellan olika temakontexter, såsom presentationer med olika accentpaletter, löses den kopierade referensen mot destinationens tema. Samma referens och transformationer kan därför ge en annan synlig färg. Se Presentation Theme för mer om konfiguration av temafärger.
Använd bildbakgrund som formfyllning
Använd IAutoShape.setUseBackgroundFill när en form ska matcha bildbakgrunden, exempelvis i en presentationsmall. Ställ in fyllningstypen med IFillFormat.setFillType till FillType.NotDefined först för att ta bort eventuell explicit fyllning. Med denna kombination använder formen bildbakgrunden istället för sin stilmall‑fyllning. Att bara aktivera flaggan tar inte bort en befintlig explicit fyllning.
Detta skiljer sig från FillType.NoFill: bakgrundsfyllning täcker objekt bakom formen med motsvarande område av bildbakgrunden, medan ingen fyllning låter dessa objekt vara synliga. En gradient förblir justerad med bilden snarare än att starta om i varje form.
Följande exempel skapar en masterbakgrund som ärvs av bilden och placerar ett magentaband bakom tre rektanglar. Den vänstra rektangeln använder bakgrunden, den mellersta har ingen fyllning, och den högra växlar från bakgrundsfyllning till en explicit orange fyllning.
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
presentation.getSlideSize().setSize(720, 400, SlideSizeScaleType.DoNotScale);
ISlide slide = presentation.getSlides().get_Item(0);
// Ärva gradienten från master.
slide.getBackground().setType(BackgroundType.NotDefined);
slide.getLayoutSlide().getBackground().setType(BackgroundType.NotDefined);
IBackground background = slide.getLayoutSlide().getMasterSlide().getBackground();
background.setType(BackgroundType.OwnBackground);
background.getFillFormat().setFillType(FillType.Gradient);
IGradientFormat gradient = background.getFillFormat().getGradientFormat();
gradient.setGradientShape(GradientShape.Linear);
gradient.setLinearGradientAngle(0);
gradient.getGradientStops().clear();
gradient.getGradientStops().add(0, new Color(0, 0, 139));
gradient.getGradientStops().add(1, new Color(135, 206, 250));
// Lägg till detta objekt först så att det hamnar bakom rektanglarna.
IAutoShape band = slide.getShapes().addAutoShape(ShapeType.Rectangle, 25, 150, 670, 100);
band.getFillFormat().setFillType(FillType.Solid);
band.getFillFormat().getSolidFillColor().setColor(Color.MAGENTA);
band.getLineFormat().getFillFormat().setFillType(FillType.NoFill);
IAutoShape backgroundShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 100, 160, 200);
backgroundShape.getFillFormat().setFillType(FillType.NotDefined);
backgroundShape.setUseBackgroundFill(true);
IAutoShape noFillShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 280, 100, 160, 200);
noFillShape.getFillFormat().setFillType(FillType.NoFill);
IAutoShape explicitShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 510, 100, 160, 200);
explicitShape.getFillFormat().setFillType(FillType.NotDefined);
explicitShape.setUseBackgroundFill(true);
// Inaktivera bakgrundsfyllning innan en explicit fyllning appliceras.
explicitShape.setUseBackgroundFill(false);
explicitShape.getFillFormat().setFillType(FillType.Solid);
explicitShape.getFillFormat().getSolidFillColor().setColor(new Color(255, 165, 0));
presentation.save("background_fill.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Resultatet, från vänster till höger: background fill, no fill, och explicit fill. Magentabandet är dolt av den vänstra och högra rektangeln men förblir synligt genom den mellersta rektangeln.

Samma beteende gäller för en bakgrund som definieras direkt på bilden eller ärvs från en layout. Formen använder bildens lösta bakgrund; i exemplet lämnas både bild‑ och layoutbakgrunder odefinierade så att master levererar den.
Ställ in transparens
För en solid fyllning kontrollerar färgens alfa‑komponent opaciteten: 0 är helt transparent och 255 är helt ogenomskinlig. Detta exempel använder ett alfa‑värde på 128 för en gul rektangel, vilket gör den ungefär 50 % transparent så att rektangeln under förblir synlig. Färgen tilldelas via IFillFormat.getSolidFillColor.
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape solidShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);
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, 128));
presentation.save("shape_transparency.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Resultatet:

Rotera former
Använd IShape.setRotation för att rotera en form i bildplanet. Vinkeln mäts i grader; detta exempel roterar en rektangel 5 grader medurs och sparar presentationen.
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);
shape.setRotation(5);
presentation.save("shape_rotation.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Resultatet:

Lägg till 3D‑bågeffekter
Använd IShape.getThreeDFormat för att ge en form djup och avfasade kanter. Detta exempel skapar en grön ellips med en orange kontur, använder IThreeDFormat.setDepth för att sätta djupet till 4 punkter, och applicerar en cirkulär toppbåge med bredd och höjd på 6 punkter via IThreeDFormat.getBevelTop. En framåtriktad ortografisk kamera och tredjepunktsbelysning gör bågen synlig.
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Ellipse, 50, 50, 100, 100);
shape.getFillFormat().setFillType(FillType.Solid);
shape.getFillFormat().getSolidFillColor().setColor(new Color(0, 128, 0));
shape.getLineFormat().getFillFormat().setFillType(FillType.Solid);
shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(new Color(255, 165, 0));
shape.getLineFormat().setWidth(2.0);
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);
presentation.save("3D_bevel_effect.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Resultatet:

Lägg till 3D‑rotations‑effekter
En formations 3D‑vy styrs av dess kamerainställningar. Detta exempel använder ICamera.setRotation med latitud, longitud och rotationsvinklar på 40, 35 respektive 20 grader. Det väljer en isometrisk kamera via ICamera.setCameraType och balanserad belysning via ILightRig.setLightType, och sparar sedan den formaterade rektangeln.
import com.aspose.slides.*;
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().getCamera().setCameraType(CameraPresetType.IsometricLeftUp);
autoShape.getThreeDFormat().getCamera().setRotation(40, 35, 20);
autoShape.getThreeDFormat().getLightRig().setLightType(LightRigPresetType.Balanced);
presentation.save("3D_rotation_effect.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Resultatet:

Styr svart‑vit rendering för former
Metoden IShape.setBlackWhiteMode specificerar hur en enskild form renderas när en presentation visas eller bearbetas i svart‑vit läge. Den aktiverar inte svart‑vit visning i sig, och den ändrar inte formens fyllning, linje eller annan formatering i normalt färgläge.
Använd ett värde från klassen BlackWhiteMode för att välja önskat beteende. Till exempel låter Automatic renderingsprogrammet välja konverteringen, Gray och LightGray använder grå färgning, BlackWhite använder endast svart och vitt, Black och White tvingar en enda färg, Color bevarar normal färgning, och Hidden utelämnar formen i svart‑vit läge. NotDefined betyder att inget form‑nivå‑läge är tilldelat.
Detta exempel skapar en orange rektangel och använder IShape.setBlackWhiteMode för att sätta läget till Gray. Den sparade formen behåller sin orange fyllning för normalt färgvisning och begär grå färgning från program som hedrar svart‑vit visningsinställningar:
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 100);
shape.getFillFormat().setFillType(FillType.Solid);
shape.getFillFormat().getSolidFillColor().setColor(new Color(255, 165, 0));
shape.setBlackWhiteMode(BlackWhiteMode.Gray);
presentation.save("shape_black_white_mode.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
I normalt färgläge behåller rektangeln sin orange fyllning. I ett arbetsflöde med svart‑vit visning använder den grå färgning eftersom dess läge är satt till Gray. Detta låter dig bevara en helfärgsbild på bilden samtidigt som du definierar ett separat utseende för utskrift, förhandsgranskning eller andra flöden som hedrar presentationens svart‑vita visningsinställningar.
Återställ formatering
Använd ISlide.reset för att återställa position, storlek och formatering av bildplatshållare från deras motsvarande layout‑platshållare. Detta exempel kräver en befintlig presentation med layout‑länkade platshållare och återställer varje bild innan den sparas. Former utan motsvarande layout‑platshållare återställs inte.
import com.aspose.slides.*;
Presentation presentation = new Presentation("sample.pptx");
try {
for (ISlide slide : presentation.getSlides()) {
slide.reset();
}
presentation.save("reset_formatting.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
FAQ
Påverkar formatering av former den slutgiltiga presentationsfilens storlek?
Färger, linjestilar och effektinställningar lägger generellt till lite data jämfört med inbäddade bilder och media. Bildfyllningar kan öka filstorleken eftersom deras bilder lagras i presentationen.
Hur kan jag identifiera former på en bild som har identisk formatering så att jag kan gruppera dem?
Jämför varje formes nyckelformaterings‑egenskaper—fyllning, linje och effektinställningar. Om alla motsvarande värden matchar, behandla deras stilar som identiska och gruppera logiskt dessa former, vilket förenklar senare stilhantering.
Kan jag spara en uppsättning anpassade formstilar i en separat fil för återanvändning i andra presentationer?
Ja. Spara exempelformer med önskade stilar i en mall‑presentation eller en .POTX‑mallfil. När du skapar en ny presentation, öppna mallen, klona de stiliserade formerna du behöver och applicera deras formatering där de behövs.