Kaip kurti prezentacijas .NET

Kaip kurti prezentacijas .NET

Aspose.Slides FOSS for .NET leidžia kurti PowerPoint pristatymus visiškai C# kalba, nesikliaujant Microsoft Office. Šiame vadove parodyta, kaip sukurti naują pristatymą, pridėti skaidres ir formas, formatuoti tekstą ir išsaugoti rezultatą.

Žingsnis po žingsnio vadovas

Žingsnis 1: Įdiekite paketą

Įdiekite Aspose.Slides FOSS iš NuGet. Reikalingas .NET 9.0 arba vėlesnė versija.

dotnet add package Aspose.Slides.Foss

Patikrinkite diegimą:

using Aspose.Slides.Foss;

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

Kiti sistemos paketai nėra reikalingi.


Žingsnis 2: Importuokite reikiamus vardų sritis

Pridėkite reikalingas vardų sritis, skirtas kurti ir išsaugoti pristatymus.

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

Visos formų tipo konstantos yra Aspose.Slides.Foss.ShapeType. Visų formatavimo tipų (FillType, NullableBool) taip pat yra Aspose.Slides.Foss.


Žingsnis 3: Sukurti prezentaciją

Naudokite new Presentation() su using teiginiu. Nauja prezentacija prasideda viena tuščia skaidrė.

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

Svarbu: Visada naudokite Presentation kartu su using pareiškimu. Klasė įgyvendina IDisposable ir ištekliai nebus teisingai atlaisvinti be to.


Žingsnis 4: Prieiti prie skaidrės

Pirmoji skaidrė yra indekse 0. Tuščia prezentacija turi lygiai vieną skaidrę.

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

Žingsnis 5: Pridėti formą

Naudokite slide.Shapes.AddAutoShape(), kad pridėtumėte AutoShape. Parametrai yra (shapeType, x, y, width, height), visi matuojami taškais (1 taškas = 1/72 colio; standartinis skaidrės dydis yra 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 žingsnis: Išsaugoti pristatymą

Iškvieskite prs.Save(path, SaveFormat.Pptx) prieš objektas bus atlaisvintas. PPTX yra vienintelis palaikomas išvesties formatas.

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

Failas rašomas atominiu būdu; jei įvyksta klaida prieš šį iškvietimą, išvesties failas nesukuriamas.


Pilnas veikiantis pavyzdys

Žemiau pateikta programa sukuria dviejų skaidrių pristatymą su pavadinimo forma pirmoje skaidrėje ir lentele antroje.

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

Dažnos problemos ir sprendimai

ObjectDisposedException

Jūs naudojate Presentation objektą po to, kai using blokas baigėsi. Visas darbas turi būti atliktas prieš objekto išmetimą.

Trūksta vardų srities klaida dėl ShapeType

Įsitikinkite, kad failo viršuje yra using Aspose.Slides.Foss;. ShapeType, NullableBool, FillType ir kiti enumai yra šioje vardų erdvėje.

SaveFormat išskyrus Pptx

Perduodant bet kurią SaveFormat reikšmę, kuri nėra SaveFormat.Pptx, nekelia išimties. Formato parametras tyliai ignoruojamas ir visada kuriamas PPTX. Visada naudokite SaveFormat.Pptx, kad būtumėte aiškūs.


Dažniausiai užduodami klausimai

Koks yra numatytasis skaidrės dydis?

Naujas Presentation() sukuria skaidres standartiniu 10 x 7,5 colio (720 x 540 taškų) dydžiu. Skaidrių dydžio keitimas šioje leidimo versijoje dar nepalaikomas.

Ar galiu pridėti daugiau nei vieną skaidrę?

Taip. Iškvieskite prs.Slides.AddEmptySlide(prs.LayoutSlides[0]), kad pridėtumėte tuščią skaidrę ir pasiektumėte ją pagal indeksą:

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

Ar galiu atidaryti esamą failą ir pridėti skaidres?

Taip:

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

Kokius formatus galiu išsaugoti?

Palaikoma tik SaveFormat.Pptx. Eksportavimas į PDF, HTML, SVG arba vaizdus šioje leidimo versijoje nėra prieinamas.


Žr. taip pat

 Lietuvių