Cách Lưu Bản Trình Chiếu trong .NET

Cách Lưu Bản Trình Chiếu trong .NET

Aspose.Slides FOSS for .NET lưu các bản trình chiếu duy nhất ở định dạng .pptx bằng cách sử dụng prs.Save(path, SaveFormat.Pptx). Hướng dẫn này bao gồm mẫu lưu đúng, lưu vào đường dẫn khác, lưu vào luồng và các lỗi thường gặp liên quan đến lưu.

Hướng Dẫn Từng Bước

Bước 1: Cài đặt gói

dotnet add package Aspose.Slides.Foss

Bước 2: Mở hoặc Tạo một Bản trình chiếu

Luôn sử dụng một câu lệnh using. Lệnh lưu phải được thực hiện trước khi đối tượng bị giải phóng.

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

// Create new
using var prs = new Presentation();
prs.Save("new.pptx", SaveFormat.Pptx);
// Open existing
using var prs = new Presentation("input.pptx");
prs.Save("output.pptx", SaveFormat.Pptx);

Bước 3: Lưu sau khi thực hiện tất cả các sửa đổi

Đặt lời gọi Save() sau khi tất cả các sửa đổi đã hoàn thành, trước khi phạm vi using kết thúc.

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

using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 300, 100);
shape.AddTextFrame("Hello, World!");
prs.Save("output.pptx", SaveFormat.Pptx);

Bước 4: Lưu vào một Đường dẫn Khác

Chỉ định một đường dẫn đầu ra khác để tạo tệp mới mà không thay đổi tệp gốc:

using var prs = new Presentation("template.pptx");
// modify ...
prs.Save("customized.pptx", SaveFormat.Pptx);

Tệp template.pptx không được sửa đổi; customized.pptx được tạo (hoặc ghi đè nếu nó đã tồn tại).


Bước 5: Lưu vào luồng

Phương thức Presentation.Save cũng chấp nhận một Stream:

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

using var prs = new Presentation();
using var stream = new MemoryStream();
prs.Save(stream, SaveFormat.Pptx);
byte[] pptxBytes = stream.ToArray();
Console.WriteLine($"Size: {pptxBytes.Length} bytes");

Bước 6: Xác minh Đầu ra

Sau khi lưu vào tệp, kiểm tra xem nó có tồn tại không:

var info = new FileInfo("output.pptx");
Console.WriteLine($"Saved: {info.Exists}, size: {info.Length} bytes");

Định dạng Lưu được Hỗ trợ

FormatEnum ValueSupported
PPTX (Office Open XML)SaveFormat.Pptx
PDFN/AKhông
HTMLN/AKhông
SVGN/AKhông
PNG / JPEGN/AKhông
ODP (OpenDocument)N/AKhông

Chỉ hỗ trợ PPTX. Tham số format hiện đang bị bỏ qua; tất cả các bản trình chiếu đều được lưu dưới dạng PPTX bất kể SaveFormat được chỉ định.


Các vấn đề thường gặp và cách khắc phục

IOException: The process cannot access the file

Tệp đầu ra đang được mở trong một ứng dụng khác (ví dụ, PowerPoint đang mở tệp). Đóng tệp trong các ứng dụng khác trước khi lưu.

Tệp được tạo nhưng trông rỗng hoặc bị hỏng

Đảm bảo prs.Save() được gọi trước khi đối tượng bị giải phóng. Sau khi Dispose() chạy, các lời gọi tiếp theo sẽ thất bại hoặc tạo ra đầu ra bị hỏng.

Định dạng đầu ra không mong đợi khi lưu

Việc truyền bất kỳ giá trị SaveFormat nào khác SaveFormat.Pptx sẽ không ném ra ngoại lệ — tham số format sẽ bị bỏ qua một cách im lặng và tệp luôn được lưu dưới dạng PPTX. Không có NotSupportedException cho giá trị định dạng không được nhận dạng.


Câu hỏi thường gặp

Có thể lưu vào cùng một tệp mà tôi đã mở không?

Có. Lưu vào cùng một đường dẫn sẽ ghi đè lên tệp gốc:

using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx);  // overwrites original

Lưu có giữ lại nội dung tôi chưa chỉnh sửa không?

Vâng. Các phần XML không xác định từ tệp gốc được giữ nguyên như bản gốc. Thư viện chỉ tuần tự hoá các phần của mô hình tài liệu mà nó hiểu, và truyền qua bất kỳ XML nào mà nó không nhận dạng.


Xem thêm

 Tiếng Việt