Kuinka luoda esityksiä .NET:ssä

Kuinka luoda esityksiä .NET:ssä

Aspose.Slides FOSS for .NET antaa sinun luoda PowerPoint-esityksiä kokonaan C#:lla ilman riippuvuutta Microsoft Officesta. Tämä opas näyttää, miten luodaan uusi esitys, lisätään dioja ja muotoja, muotoillaan tekstiä ja tallennetaan tulos.

Vaiheittainen opas

Vaihe 1: Asenna paketti

Asenna Aspose.Slides FOSS NuGetista. .NET 9.0 tai uudempi vaaditaan.

dotnet add package Aspose.Slides.Foss

Vahvista asennus:

using Aspose.Slides.Foss;

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

Muita järjestelmäpaketteja ei tarvita.


Vaihe 2: Tuo vaaditut nimiavaruudet

Lisää esitysten luomiseen ja tallentamiseen tarvittavat nimialueet.

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

Kaikki muoto-tyypin vakioita löytyy Aspose.Slides.Foss.ShapeType. Kaikki muotoilutyypit (FillType, NullableBool) ovat myös Aspose.Slides.Fossssa.


Vaihe 3: Luo esitys

Käytä new Presentation() using-lauseella. Uusi esitys alkaa yhdellä tyhjällä dialla.

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

Tärkeää: Käytä aina Presentation using-lauseella. Luokka toteuttaa IDisposable, eikä resursseja vapauteta oikein ilman sitä.


Vaihe 4: Avaa dia

Ensimmäinen dia on indeksissä 0. Tyhjä esitys sisältää täsmälleen yhden dian.

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

Vaihe 5: Lisää muoto

Käytä slide.Shapes.AddAutoShape() lisätäksesi AutoShapea. Parametrit ovat (shapeType, x, y, width, height) kaikki pisteinä (1 piste = 1/72 tuumaa; standardi dia on 720 x 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);

Vaihe 6: Tallenna esitys

Kutsu prs.Save(path, SaveFormat.Pptx) ennen kuin objekti vapautetaan. PPTX on ainoa tuettu tulostusmuoto.

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

Tiedosto kirjoitetaan atomisesti; jos virhe tapahtuu ennen tätä kutsua, tulostetiedostoa ei luoda.


Täydellinen toimiva esimerkki

Seuraava ohjelma luo kaksidiapisteisen esityksen, jossa on otsikkomuoto ensimmäisellä dialla ja taulukko toisella.

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

Yleisiä ongelmia ja korjauksia

ObjectDisposedException

Käytät Presentation-objektia sen jälkeen, kun using-lohko on päättynyt. Kaiken työn on suoritettava ennen kuin objekti vapautetaan.

Puuttuva nimiavaruusvirhe kohteelle ShapeType

Varmista, että using Aspose.Slides.Foss; on tiedostosi yläosassa. ShapeType, NullableBool, FillType ja muut enumit ovat tässä nimialueessa.

SaveFormat muuta kuin Pptx

Kun annetaan mikä tahansa SaveFormat arvo muu kuin SaveFormat.Pptx, poikkeusta ei heitetä. Muoto‑parameteri jätetään hiljaisesti huomiotta, ja PPTX tuotetaan aina. Käytä aina SaveFormat.Pptx ollaksesi täsmällinen.


Usein kysytyt kysymykset

Mikä on dian oletuskoko?

Uusi Presentation() luo dioja standardikokoisina 10 x 7,5 tuumaa (720 x 540 pistettä) kokoisina. Dia‑koon muuttamista ei vielä tueta tässä versiossa.

Voinko lisätä useamman kuin yhden dian?

Kyllä. Kutsu prs.Slides.AddEmptySlide(prs.LayoutSlides[0]) lisätäksesi tyhjän dian ja käyttää sitä indeksin avulla:

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

Voinko avata olemassa olevan tiedoston ja lisätä dioja?

Kyllä:

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

Mihin formaatteihin voin tallentaa?

Vain SaveFormat.Pptx on tuettu. Vienti PDF-, HTML-, SVG- tai kuviin ei ole saatavilla tässä versiossa.


Katso myös

 Suomi