Wie man in PowerPoint Formen hinzufügt .NET

Wie man in PowerPoint Formen hinzufügt .NET

Aspose.Slides FOSS for .NET supports adding AutoShapes, Tables, Connectors, and PictureFrames to presentation slides. All shape types are added through the slide.Shapes Sammlung.

Schritt für Schritte

Schritt 1: Installieren des Pakets

aspose-slides-foss/slides is not yet published — build from source until it ships. See the project README for build instructions.

Die Installation überprüfen:

using Aspose.Slides.Foss;
Console.WriteLine("Ready");

Schritt 2: Erstellen Sie eine Präsentation

Verwenden Sie immer: Presentation mit einem using Erklärungen.

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);

Schritt 3: Ein AutoShape hinzufügen

slide.Shapes.AddAutoShape(shapeType, x, y, width, height) Die Verwendung von “System” ist nicht unbedingt erforderlich. ShapeType Konstanten zur Auswahl der 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);

Schritt 4: Ein Tabelle hinzufügen

slide.Shapes.AddTable(x, y, columnWidths, rowHeights) Die Spaltenbreiten und Zeilenhöhen sind Arrays von Punktwerten.

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);

Schritt 5: Hinzufügen eines Anschlusses

Die Anschlüsse verbinden zwei Formen visuell. Erstellen Sie die Forme zuerst, fügen Sie dann einen Ansprechpartner hinzu und setzen Sie seine Start- und Endverbindungspunkte fest.

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);

Die Verbindungsstandorte sind für ein Rechteck 0-3 nummeriert: oben = 0, links = 1, unten = 2, rechts = 3.


Schritt 6: Ein Bildrahmen hinzufügen

Einbinden eines Bildes und fügen Sie es als ein Slide hinzu. PictureFrame.Lesen Sie die Bildbyte zuerst, fügen sie in die Bilderkollektion der Präsentation hinzu und erstellen Sie dann den Rahmen.

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);

Häufige Probleme und Lösungen

Form erscheint außerhalb des sichtbaren Schiebetreffs.

Die Bilder sind standardmäßig 720 x 540 Punkte. x oder y Über diese Grenzen hinaus, legen Sie die Form abseits der Folie. x < 720 und . y < 540, und gewährleisten, dass die x + width <= 720 und . y + height <= 540.

NullReferenceException beim Zugriff auf die Datenbank TextFrame

AddAutoShape() Wir haben eine neue Form, die das Objekt direkt zurückgibt. null, überprüfen, ob Sie den Rückgabewert nicht verwerfen.

Tabellenzellentext nach Zuweisung leer .

Die richtige Eigenschaft ist: .TextFrame.Text (nicht in der EU) .Text Zellen als “Zell” zugreifen. table.Rows[rowIndex][colIndex].TextFrame.Text = "value".


Häufig gestellte Fragen

Wie viele Formen kann ich einer Folie hinzufügen?

Es gibt keine Bibliotheksgrenze. Praktische Grenzen hängen von der Dateigröße und den Rendering-Fähigkeiten des Ziel-PPTX Viewers ab.

Kann ich die Position einer Form ändern, nachdem ich sie hinzugefügt habe?

Ja, das von der Schreibmaschine zurückgegebene Objekt hat eine Form. AddAutoShape() hat X, Y, Width,und . Height Eigenschaften, die Sie einstellen können:

shape.X = 100;
shape.Y = 200;
shape.Width = 400;
shape.Height = 80;

Kann ich die Farbe der Form umrissen?

Ja, über die shape.LineFormat:

using Aspose.Slides.Foss.Drawing;
shape.LineFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);

Werden Diagramme unterstützt?

Chart, SmartArt und OLE-Objekte werden in dieser Ausgabe nicht implementiert.


Siehe auch:

 Deutsch