Java içinde Sunumları Nasıl Kaydedilir

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çimEnum DeğeriDesteklenen
PPTX (Office Open XML)SaveFormat.PPTXEvet
PDFN/AHayır
HTMLN/AHayır
SVGN/AHayır
PNG / JPEGN/AHayır
ODP (OpenDocument)N/AHayı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.


Ayrıca Bakınız

 Türkçe