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.