Πώς να προσθέσετε σχήματα στο PowerPoint σε .NET

Πώς να προσθέσετε σχήματα στο PowerPoint σε .NET

Το Aspose.Slides FOSS for .NET υποστηρίζει την προσθήκη AutoShapes, Tables, Connectors και PictureFrames στις διαφάνειες παρουσίασης. Όλοι οι τύποι σχήματος προστίθενται μέσω της συλλογής slide.Shapes.

Οδηγός βήμα προς βήμα

Βήμα 1: Εγκατάσταση του πακέτου

dotnet add package Aspose.Slides.Foss

Επαληθεύστε την εγκατάσταση:

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

Βήμα 2: Δημιουργία παρουσίασης

Πάντα χρησιμοποιήστε Presentation με μια δήλωση using.

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

Βήμα 3: Προσθήκη AutoShape

slide.Shapes.AddAutoShape(shapeType, x, y, width, height) τοποθετεί ένα σχήμα στη δεδομένη θέση και μέγεθος (όλα σε σημεία). Χρησιμοποιήστε τις σταθερές ShapeType για να επιλέξετε το σχήμα.

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

Βήμα 4: Προσθήκη πίνακα

slide.Shapes.AddTable(x, y, columnWidths, rowHeights) δημιουργεί έναν πίνακα στην καθορισμένη θέση. Τα πλάτη των στηλών και τα ύψη των γραμμών είναι πίνακες τιμών σε μονάδες σημείου.

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: Προσθήκη συνδέσμου

Οι συνδέτες συνδέουν δύο σχήματα οπτικά. Δημιουργήστε πρώτα τα σχήματα, στη συνέχεια προσθέστε έναν σύνδεσμο και ορίστε τα σημεία έναρξης και λήξης του.

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

Οι δείκτες των σημείων σύνδεσης αριθμούνται 0‑3 για ένα ορθογώνιο: πάνω=0, αριστερά=1, κάτω=2, δεξιά=3.


Βήμα 6: Προσθήκη Πλαισίου Εικόνας

Ενσωματώστε μια εικόνα και προσθέστε την στη διαφάνεια ως PictureFrame. Διαβάστε πρώτα τα bytes της εικόνας, προσθέστε τα στη συλλογή εικόνων της παρουσίασης, στη συνέχεια δημιουργήστε το πλαίσιο.

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

Κοινά προβλήματα και διορθώσεις

Το σχήμα εμφανίζεται εκτός της ορατής περιοχής της διαφάνειας

Οι διαφάνειες είναι 720 x 540 σημεία από προεπιλογή. Οι τιμές του x ή του y εκτός αυτών των ορίων τοποθετούν το σχήμα εκτός διαφάνειας. Διατηρήστε το x < 720 και το y < 540, και εξασφαλίστε το x + width <= 720 και το y + height <= 540.

NullReferenceException κατά την πρόσβαση TextFrame

AddAutoShape() επιστρέφει το αντικείμενο σχήματος άμεσα. Εάν δείτε null, ελέγξτε ότι δεν απορρίπτετε την τιμή επιστροφής.

Το κείμενο του κελιού του πίνακα είναι κενό μετά την ανάθεση

Η σωστή ιδιότητα είναι .TextFrame.Text (όχι .Text απευθείας στο κελί). Πρόσβαση στα κελιά ως table.Rows[rowIndex][colIndex].TextFrame.Text = "value".


Συχνές Ερωτήσεις

Πόσα σχήματα μπορώ να προσθέσω σε μια διαφάνεια;

Δεν υπάρχει περιορισμός που να επιβάλλεται από τη βιβλιοθήκη. Οι πρακτικοί περιορισμοί εξαρτώνται από το μέγεθος του αρχείου και την ικανότητα απόδοσης του προγράμματος προβολής PPTX-στόχου.

Μπορώ να αλλάξω τη θέση ενός σχήματος μετά την προσθήκη του;

Ναι. Το αντικείμενο σχήματος που επιστρέφεται από AddAutoShape() έχει τις ιδιότητες X, Y, Width και Height που μπορείτε να ορίσετε:

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

Μπορώ να ορίσω το χρώμα περιγράμματος (border) του σχήματος;

Ναι, μέσω shape.LineFormat:

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

Υποστηρίζονται τα διαγράμματα;

Όχι. Τα διαγράμματα, το SmartArt και τα αντικείμενα OLE δεν έχουν υλοποιηθεί σε αυτήν την έκδοση.


Δείτε επίσης

 Ελληνικά