Java içinde Sunumları Nasıl Kaydedilir
Aspose.Slides FOSS for Java saves presentations exclusively to .pptx kullanarak format prs.save(path, SaveFormat.PPTX). Bu kılavuz doğru kaydetme desenini, farklı bir yola kaydetmeyi ve yaygın kaydetme ile ilgili hataları kapsar.
Adım Adım Kılavuz
Adım 1: Maven Bağımlılığını Ekleyin
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Adım 2: Bir Sunum Açın veya Oluşturun
Her zaman try-with-resources kullanın. Kaydetme çağrısı try bloğu içinde gerçekleşmelidir.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
// Create new
try (Presentation prs = new Presentation()) {
prs.save("new.pptx", SaveFormat.PPTX);
}
// Open existing
try (Presentation prs = new Presentation("input.pptx")) {
prs.save("output.pptx", SaveFormat.PPTX);
}Adım 3: Tüm Değişikliklerden Sonra Kaydedin
Yerleştir save() çağrıyı, tüm değişiklikler tamamlandıktan sonra, try bloğu içinde son ifade olarak.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 300, 100
);
shape.addTextFrame("Hello, World!");
prs.save("output.pptx", SaveFormat.PPTX);
}Adım 4: Farklı Bir Yola Kaydedin
Orijinali değiştirmeden yeni bir dosya oluşturmak için farklı bir çıktı yolu geçirin:
try (Presentation prs = new Presentation("template.pptx")) {
// modify ...
prs.save("customized.pptx", SaveFormat.PPTX);
}Bu template.pptx dosya değiştirilmedi; customized.pptx oluşturulur (veya zaten mevcutsa üzerine yazılır).
Adım 5: Çıktıyı Doğrulayın
Try bloğu sona erdiğinde dosya tamamlanmış ve kapatılmış olur. Var olduğunu kontrol edin:
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
Path output = Paths.get("output.pptx");
System.out.println("Saved: " + Files.exists(output)
+ ", size: " + Files.size(output) + " bytes");Desteklenen Kaydetme Formatı
| Biçim | Enum Değeri | Desteklenen |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.PPTX | Evet |
| N/A | Hayır | |
| HTML | N/A | Hayır |
| SVG | N/A | Hayır |
| PNG / JPEG | N/A | Hayır |
| ODP (OpenDocument) | N/A | Hayır |
Yalnızca PPTX tam olarak desteklenir. Başka bir şey gönderildiğinde SaveFormat değeri prs.save(path, format) sessizce PPTX olarak kaydeder — hiçbir istisna atılmaz ve format argümanı göz ardı edilir. UnsupportedOperationException yalnızca … tarafından atılır prs.save(ISaveOptions options), format tabanlı aşırı yüklemeler tarafından değil.
Yaygın Sorunlar ve Çözümler
java.io.IOException: Permission denied
Çıktı dosyası başka bir uygulamada açık (ör. PowerPoint dosyayı açmış). Kaydetmeden önce dosyayı diğer uygulamalarda kapatın.
Dosya oluşturuldu ancak boş ya da bozuk görünüyor
Garantileyin prs.save() try bloğu içinde çağrılır, sonrasında değil. try-with-resources bloğu sona erdiğinde, Presentation nesne serbest bırakılır ve sonraki çağrılar başarısız olur.
UnsupportedOperationException kaydederken
Bu, şunu kullanırken meydana gelir prs.save(ISaveOptions options) — ISaveOptions-tabanlı aşırı yükleme uygulanmadı. Not: PPTX olmayan bir SaveFormat şu prs.save(path, format) yapar değil bu istisnayı fırlatmaz; sessizce PPTX olarak kaydeder.
Sık Sorulan Sorular
Açtığım aynı dosyaya kaydedebilir miyim?
Evet. Aynı yola kaydetmek, orijinal dosyanın üzerine yazar:
try (Presentation prs = new Presentation("deck.pptx")) {
// modify ...
prs.save("deck.pptx", SaveFormat.PPTX); // overwrites original
}Bir OutputStream’e kaydedebilir miyim?
Evet. save() metot bir OutputStream:
import java.io.FileOutputStream;
try (Presentation prs = new Presentation();
FileOutputStream fos = new FileOutputStream("output.pptx")) {
prs.save(fos, SaveFormat.PPTX);
}Kaydetme, değiştirmediğim içeriği korur mu?
Evet. Orijinal dosyadan gelen bilinmeyen XML bölümleri olduğu gibi korunur. Kütüphane yalnızca anladığı belge modeli bölümlerini serileştirir ve tanımadığı XML’i olduğu gibi geçirir.