Cách lưu bản trình chiếu trong .NET
Aspose.Slides FOSS for .NET saves presentations exclusively to .pptx định dạng bằ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.FossBước 2: Mở hoặc Tạo một Bản trình chiếu
Luôn sử dụng một using câu lệnh. 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 mọi thay đổi
Đặt Save() lệnh sau khi mọi sửa đổi đã hoàn tất, trước khi using phạm vi 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
Cung cấp 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 đã tồn tại).
Bước 5: Lưu vào một Stream
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 tệp 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ợ
| Định dạng | Giá trị Enum | Được hỗ trợ |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.Pptx | Có |
| N/A | Không | |
| HTML | N/A | Không |
| SVG | N/A | Không |
| PNG / JPEG | N/A | Không |
| ODP (OpenDocument) | N/A | Không |
Chỉ hỗ trợ PPTX. Tham số format hiện đang bị bỏ qua; mọi 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 hiện trố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 Dispose() chạy, các lần 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ỳ SaveFormat giá trị nào khác ngoài SaveFormat.Pptx không ném ra ngoại lệ — tham số format 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 đối với giá trị định dạng không được nhận dạng.
Câu hỏi thường gặp
Tôi 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 originalViệc lưu có giữ lại nội dung mà tôi chưa chỉnh sửa không?
Có. Các phần XML không xác định từ tệp gốc được giữ nguyên. 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 ra.