Kaip pridėti formas į PowerPoint naudojant .NET

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.Foss

Patikrinkite 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.


Žr. taip pat

 Lietuvių