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

Πώς να προσθέσετε σχήματα στο PowerPoint σε .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 συλλογή .

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

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

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

Ελέγξτε την εγκατάσταση:

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

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

Πάντα χρησιμοποιείτε Presentation Με το A 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.Διαβάστε πρώτα τα byte εικόνας, προσθέστε αυτά στη συλλογή εικόνων της παρουσίασης και στη συνέχεια δημιουργήστε το πλαίσιο.

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

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

Η μορφή εμφανίζεται έξω από την ορατή περιοχή της σκιής

Τα Slides είναι 720 x 540 σημεία ανά προεπιλογή. x ή y πέρα από αυτά τα όρια τοποθετείται η μορφή off-slide. x < 720 και y < 540,και να εξασφαλίσει x + width <= 720 και y + height <= 540.

NullReferenceException Όταν η πρόσβαση TextFrame

AddAutoShape() επιστρέφει το αντικείμενο σχήματος απευθείας. αν δείτε null,Βεβαιωθείτε ότι δεν απορρίπτει την αξία επιστροφής.

Το κείμενο του πίνακα κελί είναι άδειο μετά την αποστολή

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


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

Πόσες μορφές μπορώ να προσθέσω σε ένα σκι;?

Πρακτικά όρια εξαρτώνται από το μέγεθος του αρχείου και την ικανότητα rendering του στόχου σας PPTX προβολέας.

Μπορώ να αλλάξω τη θέση μιας μορφής μετά την προσθήκη της;?

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

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

Μπορώ να ορίσω το χρώμα του σχήματος (συνοριακό);?

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

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

Οι πίνακες υποστηρίζονται;?

Οι πίνακες, τα SmartArt και τα αντικείμενα OLE δεν εφαρμόζονται σε αυτή την έκδοση.


Δείτε επίσης

 Ελληνικά