Jak přidat tvary do programu PowerPoint v .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 Sbírka.
Krok za krokem
Krok 1: Nainstalujte balíček
aspose-slides-foss/slides is not yet published — build from source until it ships. See the project README for build instructions.
Ověřte instalaci:
using Aspose.Slides.Foss;
Console.WriteLine("Ready");Druhý krok: Vytvořte prezentaci
Vždy používejte: Presentation s výjimkou: using prohlášení.
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řidání automatického tvaru
slide.Shapes.AddAutoShape(shapeType, x, y, width, height) umístí tvar v dané poloze a velikosti (všechny ve bodech). Použijte ShapeType Konstanty pro výběr 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řidání tabulky
slide.Shapes.AddTable(x, y, columnWidths, rowHeights) Vytvoří tabulku ve stanovené poloze. Šíry sloupců a výšky řádků jsou soubory bodových hodnot.
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řidání konektoru
Konektory vizuálně propojují dva tvary. Vytvořte nejdříve tvar, pak přidejte konektor a nastavit jeho začátek a konec spojení bodů.
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);Indeksy místa připojení jsou číslovány 0-3 pro obdélník: horní = 0, levé = 1, spodní= 2, pravé = 3.
Krok 6: Přidejte rámec obrázku
Vkládat obrázek a přidat ho do snímku jako PictureFrame.Nejdřív přečtěte byty obrázku, přidejte je do sbírky obrazů prezentace a pak vytvořete rámeček.
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);Obvyklé problémy a řešení
Tvar se objevuje mimo viditelnou plochu skluzujícího snímku.
Vybrané rozměry diapozitivů jsou 720 x 540 bodů. x nebo: y Za těmito hranicemi se dá obrys odkládat. x < 720 a) y < 540,a zajistit , aby se v rámci x + width <= 720 a) y + height <= 540.
NullReferenceException při přístupu k TextFrame
AddAutoShape() Vrátí tvar objektu přímo. null, ověřte, zda nevylučujete vrácenou hodnotu.
Text v buňce tabulky je po přiřazení prázdný .
Správná vlastnost je: .TextFrame.Text (ne) .Text Přístup k buňkám jako table.Rows[rowIndex][colIndex].TextFrame.Text = "value".
Časté otázky
Kolik tvarů můžu přidat do snímku?
Praktické limity závisí na velikosti souboru a schopnosti zobrazování cílového prohlížeče PPTX.
Můžu změnit polohu tvaru po jeho přidání?
Ano, tvarový objekt vrátil… AddAutoShape() má: X, Y, Width,a) Height vlastnosti, které můžete nastavit:
shape.X = 100;
shape.Y = 200;
shape.Width = 400;
shape.Height = 80;Můžu nastavit barvu tvaru?
Ano, prostřednictvím: shape.LineFormat:
using Aspose.Slides.Foss.Drawing;
shape.LineFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);Jsou podporovány grafy?
Ne. V této edici nejsou implementovány grafy, SmartArt a objekty OLE.