Hogyan készítsünk prezentációkat .NET-ben

Hogyan készítsünk prezentációkat .NET-ben

Az Aspose.Slides FOSS for .NET lehetővé teszi, hogy teljesen C#-ban PowerPoint előadásokat hozzon létre, Microsoft Office függőség nélkül. Ez az útmutató bemutatja, hogyan lehet új előadást létrehozni, diákot és alakzatokat hozzáadni, szöveget formázni, és az eredményt menteni.

Lépésről‑lépésre útmutató

1. lépés: A csomag telepítése

Telepítse az Aspose.Slides FOSS-t a NuGetből. A .NET 9.0 vagy újabb verziója szükséges.

dotnet add package Aspose.Slides.Foss

Ellenőrizze a telepítést:

using Aspose.Slides.Foss;

using var prs = new Presentation();
Console.WriteLine("Aspose.Slides FOSS ready");

Nem szükséges más rendszercsomag.


2. lépés: A szükséges névterek importálása

Adja hozzá a prezentációk létrehozásához és mentéséhez szükséges névtereket.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

Minden alakzat‑típusú állandó a Aspose.Slides.Foss.ShapeType‑ben található. Minden formázási típus (FillType, NullableBool) szintén a Aspose.Slides.Foss‑ben van.


3. lépés: Prezentáció létrehozása

Használja a new Presentation()-t egy using utasítással. Egy új prezentáció egy üres diával kezdődik.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
Console.WriteLine($"Slides in new presentation: {prs.Slides.Count}");
// work with prs
prs.Save("output.pptx", SaveFormat.Pptx);

Fontos: Mindig használja a Presentation-t egy using állítással. Az osztály implementálja a IDisposable-t, és az erőforrások nem szabadulnak fel helyesen nélküle.


4. lépés: Diapozitív elérése

Az első dia indexe 0. Egy üres prezentációnak pontosan egy diája van.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];  // zero-based index
Console.WriteLine($"Slide at index 0: {slide}");
prs.Save("output.pptx", SaveFormat.Pptx);

5. lépés: Alakzat hozzáadása

Használja a slide.Shapes.AddAutoShape() parancsot egy AutoShape hozzáadásához. A paraméterek (shapeType, x, y, width, height) mind pontban (1 pont = 1/72 hüvelyk; a szabványos dia 720 × 540 pt).

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];

// Rectangle at (50, 50) with 400 wide and 120 tall
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 400, 120);

// Attach a text frame
shape.AddTextFrame("Hello from Aspose.Slides FOSS!");

prs.Save("with-shape.pptx", SaveFormat.Pptx);

6. lépés: A bemutató mentése

Hívja meg a prs.Save(path, SaveFormat.Pptx)-t, mielőtt az objektum felszabadul. A PPTX az egyetlen támogatott kimeneti formátum.

prs.Save("result.pptx", SaveFormat.Pptx);

A fájl atomik módon kerül írásra; ha hiba lép fel a hívás előtt, nem jön létre kimeneti fájl.


Teljes működő példa

Az alábbi program egy kétdiapozíciós prezentációt hoz létre, amelynek az első dián egy címszöveg alakzat, a másodikon pedig egy táblázat található.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();

// --- Slide 1: title shape ---
var slide1 = prs.Slides[0];
var title = slide1.Shapes.AddAutoShape(ShapeType.Rectangle, 40, 40, 640, 80);
var tf = title.AddTextFrame("Q1 Results: Executive Summary");
var fmt = tf.Paragraphs[0].Portions[0].PortionFormat;
fmt.FontHeight = 32;
fmt.FontBold = NullableBool.True;
fmt.FillFormat.FillType = FillType.Solid;
fmt.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 0, 70, 127);

// --- Slide 2: table ---
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];
var table = slide2.Shapes.AddTable(40, 40,
    new double[] { 200.0, 120.0, 120.0 },
    new double[] { 40.0, 40.0, 40.0 });

string[] headers = { "Region", "Revenue", "Growth" };
string[][] data = {
    new[] { "North", "$1.2M", "+8%" },
    new[] { "South", "$0.9M", "+4%" },
};

for (int col = 0; col < headers.Length; col++)
    table.Rows[0][col].TextFrame.Text = headers[col];

for (int row = 0; row < data.Length; row++)
    for (int col = 0; col < data[row].Length; col++)
        table.Rows[row + 1][col].TextFrame.Text = data[row][col];

prs.Save("q1-results.pptx", SaveFormat.Pptx);
Console.WriteLine("Saved q1-results.pptx");

Általános problémák és megoldások

ObjectDisposedException

A Presentation objektumot a using blokk befejezése után használja. Minden műveletnek az objektum eldobása előtt kell megtörténnie.

Hiányzó névtér hiba a ShapeType-hez

Győződj meg róla, hogy a using Aspose.Slides.Foss; a fájlod tetején van. A ShapeType, NullableBool, FillType és egyéb enumok ebben a névtérben vannak.

SaveFormat kivéve Pptx

Bármely SaveFormat érték átadása, amely nem SaveFormat.Pptx, nem dob kivételt. A formátum paraméter csendben figyelmen kívül marad, és mindig PPTX készül. Mindig használja SaveFormat.Pptx‑t a kifejezőség érdekében.


Gyakran Ismételt Kérdések

Mi a diák alapértelmezett mérete?

Egy új Presentation() 10 × 7,5 hüvelykes (720 × 540 pont) szabványos méretű diát hoz létre. A dia méretének módosítása még nem támogatott ebben a kiadásban.

Hozzáadhatok több mint egy diát?

Igen. Hívja meg prs.Slides.AddEmptySlide(prs.LayoutSlides[0])-t, hogy egy üres diát fűzzön hozzá, és index szerint érje el:

prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];

Megnyithatok egy meglévő fájlt, és hozzáadhatok diákokhoz?

Igen:

using var prs = new Presentation("existing.pptx");
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
prs.Save("existing.pptx", SaveFormat.Pptx);

Milyen formátumokba menthetek?

Csak a SaveFormat.Pptx támogatott. A PDF, HTML, SVG vagy képek exportálása nem érhető el ebben a kiadásban.


Lásd még

 Magyar