Cách Tạo Bản trình chiếu trong .NET
Aspose.Slides FOSS for .NET lets you create PowerPoint presentations entirely in C# with no dependency on Microsoft Office. This guide shows how to create a new presentation, add slides and shapes, format text, and save the result.
Hướng Dẫn Từng Bước
Bước 1: Cài Đặt Gói
Cài đặt Aspose.Slides FOSS từ NuGet. Yêu cầu .NET 9.0 trở lên.
dotnet add package Aspose.Slides.FossXác minh việc cài đặt:
using Aspose.Slides.Foss;
using var prs = new Presentation();
Console.WriteLine("Aspose.Slides FOSS ready");Không cần bất kỳ gói hệ thống nào khác.
Bước 2: Nhập các Namespace cần thiết
Thêm các namespace cần thiết để tạo và lưu các bài thuyết trình.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;Tất cả các hằng số kiểu hình dạng nằm trong Aspose.Slides.Foss.ShapeType. Tất cả các kiểu định dạng (FillType, NullableBool) cũng nằm trong Aspose.Slides.Foss.
Bước 3: Tạo một Bản trình chiếu
Sử dụng new Presentation() với một using câu lệnh. Một bản trình bày mới bắt đầu với một slide trống.
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);Quan trọng: Luôn luôn sử dụng Presentation với một using câu lệnh. Lớp này triển khai IDisposable và các tài nguyên sẽ không được giải phóng đúng cách nếu không có nó.
Bước 4: Truy cập một Slide
Slide đầu tiên có chỉ số 0. Một bản trình chiếu trống có đúng một slide.
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);Bước 5: Thêm một Hình dạng
Sử dụng slide.Shapes.AddAutoShape() để thêm một AutoShape. Các tham số là (shapeType, x, y, width, height) tất cả tính bằng điểm (1 điểm = 1/72 inch; slide tiêu chuẩn là 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);Bước 6: Lưu Bản trình chiếu
Gọi prs.Save(path, SaveFormat.Pptx) trước khi đối tượng bị giải phóng. PPTX là định dạng đầu ra duy nhất được hỗ trợ.
prs.Save("result.pptx", SaveFormat.Pptx);Tệp được ghi một cách nguyên tử; nếu có lỗi xảy ra trước lời gọi này, sẽ không tạo ra tệp đầu ra.
Ví dụ Hoạt động Đầy đủ
Chương trình sau tạo một bản trình bày gồm hai slide, với một hình dạng tiêu đề trên slide đầu tiên và một bảng trên slide thứ hai.
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");Các Vấn Đề Thường Gặp và Cách Khắc Phục
ObjectDisposedException
Bạn đang sử dụng Presentation đối tượng sau khi using khối đã kết thúc. Tất cả công việc phải được thực hiện trước khi đối tượng bị giải phóng.
Lỗi thiếu namespace cho ShapeType
Đảm bảo bạn có using Aspose.Slides.Foss; ở đầu tệp của bạn. ShapeType, NullableBool, FillType, và các enum khác nằm trong không gian tên này.
SaveFormat ngoại trừ Pptx
Truyền bất kỳ SaveFormat giá trị nào khác SaveFormat.Pptx không ném ra ngoại lệ. Tham số format bị bỏ qua một cách im lặng và luôn tạo ra PPTX. Luôn sử dụng SaveFormat.Pptx để rõ ràng.
Câu hỏi thường gặp
Kích thước slide mặc định là gì?
Một mới Presentation() tạo các slide với kích thước tiêu chuẩn 10 x 7,5 inch (720 x 540 point). Thay đổi kích thước slide chưa được hỗ trợ trong phiên bản này.
Tôi có thể thêm hơn một slide không?
Có. Gọi prs.Slides.AddEmptySlide(prs.LayoutSlides[0]) để thêm một slide trống và truy cập nó theo chỉ mục:
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];Tôi có thể mở một tệp hiện có và thêm slide không?
Có:
using var prs = new Presentation("existing.pptx");
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
prs.Save("existing.pptx", SaveFormat.Pptx);Tôi có thể lưu dưới định dạng nào?
Chỉ SaveFormat.Pptx được hỗ trợ. Xuất ra PDF, HTML, SVG, hoặc hình ảnh không khả dụng trong phiên bản này.