Cách Tạo Bản Trình Chiếu trong .NET

Cách Tạo Bản Trình Chiếu trong .NET

Aspose.Slides FOSS for .NET cho phép bạn tạo các bài thuyết trình PowerPoint hoàn toàn bằng C# mà không phụ thuộc vào Microsoft Office. Hướng dẫn này cho thấy cách tạo một bài thuyết trình mới, thêm các slide và hình dạng, định dạng văn bản và lưu kết quả.

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 hoặc phiên bản mới hơn.

dotnet add package Aspose.Slides.Foss

Xá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 gói hệ thống nào khác.


Bước 2: Nhập các không gian tên cần thiết

Thêm các không gian tên cần thiết để tạo và lưu các bản trình chiếu.

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

Tất cả các hằng số kiểu hình dạng đều 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 câu lệnh using. 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 sử dụng Presentation với một câu lệnh using. Lớp thực thi IDisposable và 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ỉ mục 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

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 đối tượng Presentation sau khi khối using đã 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 mình. ShapeType, NullableBool, FillType, và các enum khác nằm trong không gian tên này.

SaveFormat ngoại trừ Pptx

Việc truyền bất kỳ giá trị SaveFormat nào khác SaveFormat.Pptx không ném ra ngoại lệ. Tham số format bị bỏ qua một cách âm thầm và PPTX luôn được tạo ra. 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 Presentation() mới tạo các slide với kích thước tiêu chuẩn 10 x 7,5 inch (720 x 540 point). Việc 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ó bằng 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);

Các định dạng nào tôi có thể lưu?

Chỉ hỗ trợ SaveFormat.Pptx. Xuất ra PDF, HTML, SVG hoặc hình ảnh không khả dụng trong phiên bản này.


Xem thêm

 Tiếng Việt