Jak přidat tvary do PowerPointu v .NET

Jak přidat tvary do PowerPointu v .NET

Aspose.Slides FOSS for .NET podporuje přidávání AutoShapes, Tables, Connectors a PictureFrames do snímků prezentace. Všechny typy tvarů jsou přidávány prostřednictvím kolekce slide.Shapes.

Průvodce krok za krokem

Krok 1: Nainstalujte balíček

dotnet add package Aspose.Slides.Foss

Ověřte instalaci:

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

Krok 2: Vytvořit prezentaci

Vždy používejte Presentation s using výrokem.

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

Krok 3: Přidat AutoShape

slide.Shapes.AddAutoShape(shapeType, x, y, width, height) umístí tvar na zadanou pozici a velikost (vše v bodech). Použijte konstanty ShapeType k výběru tvaru.

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

Krok 4: Přidat tabulku

slide.Shapes.AddTable(x, y, columnWidths, rowHeights) vytvoří tabulku na zadané pozici. Šířky sloupců a výšky řádků jsou pole hodnot v bodech.

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

Krok 5: Přidat konektor

Spojnice vizuálně propojují dva tvary. Nejprve vytvořte tvary, poté přidejte spojnici a nastavte její počáteční a koncové připojovací body.

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

Indexy připojovacích míst jsou očíslovány 0‑3 pro obdélník: horní=0, levý=1, dolní=2, pravý=3.


Krok 6: Přidat rám obrázku

Vložte obrázek a přidejte jej do snímku jako PictureFrame. Nejprve načtěte bajty obrázku, přidejte je do kolekce obrázků prezentace a poté vytvořte rámec.

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

Běžné problémy a opravy

Tvar se zobrazuje mimo viditelnou oblast snímku

Snímky mají ve výchozím nastavení rozměry 720 × 540 bodů. Hodnoty x nebo y mimo tyto hranice umístí tvar mimo snímek. Zachovejte x < 720 a y < 540 a zajistěte x + width <= 720 a y + height <= 540.

NullReferenceException při přístupu k TextFrame

AddAutoShape() vrací objekt tvaru přímo. Pokud vidíte null, zkontrolujte, že neodhazujete návratovou hodnotu.

Text buňky tabulky je po přiřazení prázdný

Správná vlastnost je .TextFrame.Text (ne .Text přímo na buňce). Přistupujte k buňkám jako table.Rows[rowIndex][colIndex].TextFrame.Text = "value".


Často kladené otázky

Kolik tvarů mohu přidat na snímek?

Neexistuje žádné omezení uložené knihovnou. Praktická omezení závisí na velikosti souboru a na schopnosti vykreslování vašeho cílového prohlížeče PPTX.

Mohu změnit pozici tvaru po jeho přidání?

Ano. Objekt tvaru vrácený AddAutoShape() má vlastnosti X, Y, Width a Height, které můžete nastavit:

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

Mohu nastavit barvu obrysu (okraje) tvaru?

Ano, přes shape.LineFormat:

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

Jsou grafy podporovány?

Ne. Grafy, SmartArt a OLE objekty nejsou v této edici implementovány.


Viz také

 Čeština