Cara Menyimpan Pembentangan dalam .NET
Aspose.Slides FOSS for .NET saves presentations exclusively to .pptx format menggunakan prs.Save(path, SaveFormat.Pptx). Panduan ini merangkumi corak simpan yang betul, menyimpan ke laluan yang berbeza, menyimpan ke aliran, dan ralat biasa yang berkaitan dengan penyimpanan.
Panduan Langkah demi Langkah
Langkah 1: Pasang Pakej
dotnet add package Aspose.Slides.FossLangkah 2: Buka atau Cipta Persembahan
Sentiasa gunakan using pernyataan. Panggilan simpan mesti berlaku sebelum objek dibuang.
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);Langkah 3: Simpan Selepas Semua Pengubahsuaian
Letakkan Save() panggilan selepas semua pengubahsuaian selesai, sebelum using skop berakhir.
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);Langkah 4: Simpan ke Laluan yang Berbeza
Berikan laluan output yang berbeza untuk mencipta fail baru tanpa mengubah asal:
using var prs = new Presentation("template.pptx");
// modify ...
prs.Save("customized.pptx", SaveFormat.Pptx);Fail template.pptx fail tidak diubah; customized.pptx dicipta (atau ditulis semula jika ia sudah wujud).
Langkah 5: Simpan ke Aliran
Kaedah Presentation.Save kaedah juga menerima satu 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");Langkah 6: Sahkan Output
Selepas menyimpan ke fail, periksa bahawa ia wujud:
var info = new FileInfo("output.pptx");
Console.WriteLine($"Saved: {info.Exists}, size: {info.Length} bytes");Format Simpan yang Disokong
| Format | Nilai Enum | Disokong |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.Pptx | Ya |
| N/A | Tidak | |
| HTML | N/A | Tidak |
| SVG | N/A | Tidak |
| PNG / JPEG | N/A | Tidak |
| ODP (OpenDocument) | N/A | Tidak |
Hanya PPTX disokong. Parameter format kini diabaikan; semua pembentangan disimpan sebagai PPTX tanpa mengira SaveFormat yang ditentukan.
Isu Umum dan Penyelesaian
IOException: The process cannot access the file
Fail output dibuka dalam aplikasi lain (contoh, PowerPoint mempunyai fail terbuka). Tutup fail dalam aplikasi lain sebelum menyimpan.
Fail dicipta tetapi kelihatan kosong atau rosak
Pastikan prs.Save() dipanggil sebelum objek dibuang. Selepas Dispose() berjalan, panggilan seterusnya akan gagal atau menghasilkan output yang rosak.
Format output yang tidak dijangka semasa menyimpan
Melewatkan apa-apa SaveFormat nilai selain SaveFormat.Pptx tidak melemparkan pengecualian — parameter format diabaikan secara senyap dan fail sentiasa disimpan sebagai PPTX. Tiada NotSupportedException untuk nilai format yang tidak dikenali.
Soalan Lazim
Bolehkah saya menyimpan ke fail yang sama yang saya buka?
Ya. Menyimpan ke laluan yang sama akan menulis semula fail asal:
using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx); // overwrites originalAdakah penyimpanan mengekalkan kandungan yang tidak saya ubah?
Ya. Bahagian XML yang tidak dikenali daripada fail asal dipelihara secara tepat. Perpustakaan hanya menserialkan bahagian model dokumen yang difahaminya, dan meneruskan sebarang XML yang tidak dikenali.