Kaip pridėti formas į PowerPoint naudojant .NET
Aspose.Slides FOSS for .NET palaiko AutoShapes, Tables, Connectors ir PictureFrames pridėjimą į pristatymo skaidres. Visų formų tipai pridedami per slide.Shapes kolekciją.
Žingsnis po žingsnio vadovas
Žingsnis 1: Įdiekite paketą
dotnet add package Aspose.Slides.FossPatikrinkite diegimą:
using Aspose.Slides.Foss;
Console.WriteLine("Ready");Žingsnis 2: Sukurti pristatymą
Visada naudokite Presentation su using teiginiu.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
// ... add shapes ...
prs.Save("output.pptx", SaveFormat.Pptx);Žingsnis 3: Pridėti AutoShape
slide.Shapes.AddAutoShape(shapeType, x, y, width, height) patalpina formą nurodytoje padėtyje ir dydyje (visi taškais). Naudokite ShapeType konstantas norėdami pasirinkti formą.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
// Rectangle
var rect = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 300, 100);
rect.AddTextFrame("Rectangle shape");
// Ellipse
var ellipse = slide.Shapes.AddAutoShape(ShapeType.Ellipse, 400, 50, 200, 100);
ellipse.AddTextFrame("Ellipse shape");
prs.Save("autoshapes.pptx", SaveFormat.Pptx);Žingsnis 4: Pridėti lentelę
slide.Shapes.AddTable(x, y, columnWidths, rowHeights) sukuria lentelę nurodytoje vietoje. Stulpelių plotiai ir eilučių aukščiai yra taškų reikšmių masyvai.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
var colWidths = new double[] { 150.0, 150.0, 150.0 };
var rowHeights = new double[] { 40.0, 40.0, 40.0 };
var table = slide.Shapes.AddTable(50, 200, colWidths, rowHeights);
// Set header row text
string[] headers = { "Product", "Units", "Revenue" };
for (int col = 0; col < headers.Length; col++)
table.Rows[0][col].TextFrame.Text = headers[col];
// Set data rows
string[][] rows = {
new[] { "Widget A", "120", "$2,400" },
new[] { "Widget B", "85", "$1,700" },
};
for (int rowIdx = 0; rowIdx < rows.Length; rowIdx++)
for (int col = 0; col < rows[rowIdx].Length; col++)
table.Rows[rowIdx + 1][col].TextFrame.Text = rows[rowIdx][col];
prs.Save("table.pptx", SaveFormat.Pptx);5 žingsnis: Pridėti jungiklį
Jungikliai vizualiai sujungia dvi figūras. Pirma sukurkite figūras, tada pridėkite jungiklį ir nustatykite jo pradžios ir pabaigos prisijungimo taškus.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
var box1 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 100, 150, 60);
box1.AddTextFrame("Start");
var box2 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 350, 100, 150, 60);
box2.AddTextFrame("End");
var conn = slide.Shapes.AddConnector(ShapeType.BentConnector3, 0, 0, 10, 10);
conn.StartShapeConnectedTo = box1;
conn.StartShapeConnectionSiteIndex = 3; // right side of box1
conn.EndShapeConnectedTo = box2;
conn.EndShapeConnectionSiteIndex = 1; // left side of box2
prs.Save("connector.pptx", SaveFormat.Pptx);Jungties vietų indeksai yra sunumeruoti 0-3 stačiakampiui: viršus=0, kairė=1, apačia=2, dešinė=3.
Žingsnis 6: Pridėti paveikslų rėmelį
Įterpkite vaizdą ir pridėkite jį prie skaidrės kaip PictureFrame. Pirmiausia perskaitykite vaizdo baitus, pridėkite juos prie pristatymo vaizdų kolekcijos, tada sukurkite rėmelį.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
byte[] imageData = File.ReadAllBytes("logo.png");
var image = prs.Images.AddImage(imageData);
var slide = prs.Slides[0];
slide.Shapes.AddPictureFrame(
ShapeType.Rectangle, // bounding shape type
50, 50, // x, y in points
200, 150, // width, height in points
image
);
prs.Save("with-image.pptx", SaveFormat.Pptx);Įprastos problemos ir sprendimai
Figūra atsiranda už matomo skaidrės ploto
Skaidrės pagal numatytuosius nustatymus yra 720 × 540 taškų. x arba y reikšmės, viršijančios šias ribas, padeda formą už skaidrės ribų. Išlaikykite x < 720 ir y < 540, ir užtikrinkite x + width <= 720 ir y + height <= 540.
NullReferenceException kai pasiekiama TextFrame
AddAutoShape() grąžina formos objektą tiesiogiai. Jei matote null, patikrinkite, ar neignoruojate grąžinamos vertės.
Lentelės langelio tekstas po priskyrimo yra tuščias
Teisinga savybė yra .TextFrame.Text (ne .Text tiesiogiai ląstelėje). Pasiekite ląsteles kaip table.Rows[rowIndex][colIndex].TextFrame.Text = "value".
Dažnai užduodami klausimai
Kiek figūrų galiu pridėti į skaidrę?
Nėra bibliotekos nustatyto apribojimo. Praktiniai apribojimai priklauso nuo failo dydžio ir jūsų tikslo PPTX peržiūros programos atvaizdavimo galimybių.
Ar galiu pakeisti figūros padėtį po jos pridėjimo?
Taip. Formos objektas, grąžintas AddAutoShape(), turi X, Y, Width ir Height savybes, kurias galite nustatyti:
shape.X = 100;
shape.Y = 200;
shape.Width = 400;
shape.Height = 80;Ar galiu nustatyti figūros kontūro (rėmo) spalvą?
Taip, per shape.LineFormat:
using Aspose.Slides.Foss.Drawing;
shape.LineFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);Ar diagramos palaikomos?
Ne. Diagramos, SmartArt ir OLE objektai nėra įgyvendinti šioje leidimo versijoje.