Java'da Sunumları Kaydetme

Java'da Sunumları Kaydetme

Aspose.Slides FOSS for Java, sunumları yalnızca .pptx formatında prs.save(path, SaveFormat.PPTX) kullanarak kaydeder. 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: Sunumu Aç veya Oluştur

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 Kaydet

save() çağrısını, tüm değişiklikler tamamlandıktan sonra, try bloğu içinde son ifade olarak yerleştirin.

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 Kaydet

Orijinali değiştirmeden yeni bir dosya oluşturmak için farklı bir çıktı yolu belirtin:

try (Presentation prs = new Presentation("template.pptx")) {
    // modify ...
    prs.save("customized.pptx", SaveFormat.PPTX);
}

template.pptx dosyası değiştirilmez; customized.pptx oluşturulur (veya zaten varsa üzerine yazılır).


Adım 5: Çıktıyı Doğrula

try bloğu çıktığında, dosya tamamlanır ve kapanır. Var olup olmadığını 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ğeriDestekleniyor
PPTX (Office Open XML)SaveFormat.PPTXEvet
PDFN/AHayır
HTMLN/AHayır
SVGN/AHayır
PNG / JPEGN/AHayır
ODP (OpenDocument)N/AHayır

Sadece PPTX tam olarak desteklenir. Başka herhangi bir SaveFormat değerini prs.save(path, format)‘ye geçirirseniz sessizce PPTX olarak kaydedilir — istisna atılmaz ve format argümanı yok sayılır. UnsupportedOperationException yalnızca prs.save(ISaveOptions options) tarafından atılır, format temelli 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ş veya bozuk görünüyor

prs.save()‘nin try bloğu içinde çağrıldığından emin olun, sonrasında değil. try-with-resources bloğu sona erdiğinde, Presentation nesnesi serbest bırakılır ve sonraki çağrılar başarısız olur.

UnsupportedOperationException kaydederken

Bu, prs.save(ISaveOptions options) kullanıldığında meydana gelir — ISaveOptions tabanlı aşırı yükleme uygulanmamıştır. Not: bir non-PPTX SaveFormat‘yi prs.save(path, format)‘ye geçirmek fırlatmaz bu istisna; sessizce PPTX olarak kaydeder.


Sıkça 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() yöntemi bir OutputStream kabul eder:

import java.io.FileOutputStream;

try (Presentation prs = new Presentation();
     FileOutputStream fos = new FileOutputStream("output.pptx")) {
    prs.save(fos, SaveFormat.PPTX);
}

Kaydetmek, değiştirmediğim içeriği korur mu?

Evet. Orijinal dosyadan gelen bilinmeyen XML bölümleri kelimesi kelimesine korunur. Kütüphane yalnızca anladığı belge modelinin bölümlerini serileştirir ve tanımadığı XML’leri olduğu gibi geçirir.


İlgili

 Türkçe