Jak vytvářet prezentace v .NET
Aspose.Slides FOSS for .NET vám umožňuje vytvářet prezentace PowerPoint kompletně v C# bez závislosti na Microsoft Office. Tento průvodce ukazuje, jak vytvořit novou prezentaci, přidat snímky a tvary, formátovat text a uložit výsledek.
Průvodce krok za krokem
Krok 1: Nainstalujte balíček
Nainstalujte Aspose.Slides FOSS z NuGet. Je vyžadováno .NET 9.0 nebo novější.
dotnet add package Aspose.Slides.FossOvěřte instalaci:
using Aspose.Slides.Foss;
using var prs = new Presentation();
Console.WriteLine("Aspose.Slides FOSS ready");Nejsou vyžadovány žádné další systémové balíčky.
Krok 2: Importovat požadované jmenné prostory
Přidejte potřebné jmenné prostory pro vytváření a ukládání prezentací.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;Všechny konstanty typu tvaru jsou umístěny v Aspose.Slides.Foss.ShapeType. Všechny typy formátování (FillType, NullableBool) jsou také v Aspose.Slides.Foss.
Krok 3: Vytvořit prezentaci
Použijte new Presentation() s using výrokem. Nová prezentace začíná jedním prázdným snímkem.
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);Důležité: Vždy používejte Presentation s using výrokem. Třída implementuje IDisposable a prostředky nebudou uvolněny správně bez toho.
Krok 4: Přístup k snímku
První snímek má index 0. Prázdná prezentace má přesně jeden snímek.
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);Krok 5: Přidat tvar
Použijte slide.Shapes.AddAutoShape() k přidání AutoShape. Parametry jsou (shapeType, x, y, width, height) všechny v bodech (1 bod = 1/72 palce; standardní snímek má 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);Krok 6: Uložit prezentaci
Zavolejte prs.Save(path, SaveFormat.Pptx) před tím, než je objekt uvolněn. PPTX je jediný podporovaný výstupní formát.
prs.Save("result.pptx", SaveFormat.Pptx);Soubor je zapisován atomicky; pokud dojde k chybě před tímto voláním, nevytvoří se žádný výstupní soubor.
Kompletní funkční příklad
Následující program vytvoří prezentaci se dvěma snímky, na prvním snímku s tvarem nadpisu a na druhém se tabulkou.
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");Běžné problémy a opravy
ObjectDisposedException
Používáte objekt Presentation po ukončení bloku using. Veškerá práce musí být provedena před tím, než je objekt uvolněn.
Chyba chybějícího jmenného prostoru pro ShapeType
Ujistěte se, že máte using Aspose.Slides.Foss; na začátku souboru. ShapeType, NullableBool, FillType a další výčty jsou v tomto jmenném prostoru.
SaveFormat jiné než Pptx
Předání jakékoli hodnoty SaveFormat jinak než SaveFormat.Pptx nevyvolá výjimku. Parametr formátu je tiše ignorován a PPTX je vždy vytvořen. Vždy použijte SaveFormat.Pptx, abyste byli explicitní.
Často kladené otázky
Jaká je výchozí velikost snímku?
Nový Presentation() vytváří snímky ve standardní velikosti 10 × 7,5 palce (720 × 540 bodů). Změna velikosti snímku zatím není v této edici podporována.
Mohu přidat více než jeden snímek?
Ano. Zavolejte prs.Slides.AddEmptySlide(prs.LayoutSlides[0]) pro přidání prázdného snímku a přístup k němu pomocí indexu:
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];Mohu otevřít existující soubor a přidat snímky?
Ano:
using var prs = new Presentation("existing.pptx");
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
prs.Save("existing.pptx", SaveFormat.Pptx);Do jakých formátů mohu uložit?
Pouze SaveFormat.Pptx je podporováno. Export do PDF, HTML, SVG nebo obrázků není v této edici k dispozici.