Java'da Sunumları Nasıl Yüklenir
Aspose.Slides FOSS for Java, herhangi bir .pptx dosyasını açmanıza, içeriğini incelemenize ve ya PPTX olarak geri kaydetmenize ya da verileri çıkarmanıza olanak tanır. Bu kılavuz, bir dosyanın açılmasını, slaytların yinelemesini, şekil metninin okunmasını ve kaydetmenin geri döndürülmesini 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: Mevcut Bir Sunumu Aç
Dosya yolunu Presentation yapıcısına geçirin. Temizliği sağlamak için try-with-resources kullanın.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation("input.pptx")) {
System.out.println("Slide count: " + prs.getSlides().size());
prs.save("output.pptx", SaveFormat.PPTX);
}Kaynak dosyadaki bilinmeyen XML bölümleri olduğu gibi korunur: kütüphane henüz anlayamadığı içeriği asla kaldırmaz.
Adım 3: Slaytları İncele
Tüm slaytlar üzerinde yineleyin ve şekil sayısını yazdırın:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation("deck.pptx")) {
for (int i = 0; i < prs.getSlides().size(); i++) {
ISlide slide = prs.getSlides().get(i);
int shapeCount = slide.getShapes().size();
System.out.println("Slide " + i + ": " + shapeCount + " shapes");
}
}Adım 4: Şekil Metnini Oku
Şekiller üzerinde yineleme yapın ve TextFrame içeren şekillerden metni okuyun:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation("deck.pptx")) {
for (ISlide slide : prs.getSlides()) {
for (IShape shape : slide.getShapes()) {
if (shape instanceof IAutoShape) {
IAutoShape autoShape = (IAutoShape) shape;
ITextFrame tf = autoShape.getTextFrame();
if (tf != null && !tf.getText().isEmpty()) {
System.out.println(" Shape text: " + tf.getText());
}
}
}
}
}Adım 5: Belge Özelliklerini Oku
prs.getDocumentProperties()‘den temel belge özelliklerine erişin:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation("deck.pptx")) {
IDocumentProperties props = prs.getDocumentProperties();
System.out.println("Title: " + props.getTitle());
System.out.println("Author: " + props.getAuthor());
System.out.println("Subject: " + props.getSubject());
}Adım 6: Çift Yönlü Kaydet
Sunumu inceleyip veya değiştirdikten sonra, PPTX olarak kaydedin:
prs.save("output.pptx", SaveFormat.PPTX);Farklı bir yola kaydetmek yeni bir dosya oluşturur. Aynı yola kaydetmek ise orijinali üzerine yazar.
Yaygın Sorunlar ve Çözümler
java.io.FileNotFoundException
Çalışma dizinine göre .pptx dosyasının yolunun doğru olduğundan emin olun. Sağlam yol oluşturma için java.nio.file.Paths kullanın:
import java.nio.file.Path;
import java.nio.file.Paths;
Path path = Paths.get("assets", "deck.pptx");
try (Presentation prs = new Presentation(path.toString())) {
// ...
}Exception: File format is not supported
Kütüphane yalnızca .pptx (Office Open XML) destekler. Eski .ppt (ikili PowerPoint 97-2003) dosyaları desteklenmez.
Şekillerin getTextFrame() yöntemi yok
Bazı şekiller (Connectors, PictureFrames, GroupShapes) bir metin çerçevesine sahip değildir. Dönüştürme ve metne erişmeden önce instanceof IAutoShape ile kontrol edin.
Sıkça Sorulan Sorular
Yükleme tüm orijinal içeriği korur mu?
Evet. Bilinmeyen XML bölümleri, çift yönlü kaydetme sırasında tam olarak korunur. Kütüphane yalnızca anladığı belge modeli bölümlerini serileştirir ve tanımadığı XML’i olduğu gibi geçirir.
Şifre korumalı bir PPTX dosyasını yükleyebilir miyim?
Şifre korumalı (şifrelenmiş) sunumlar bu sürümde desteklenmez.
InputStream’ten yükleme destekleniyor mu?
Evet. Presentation yapıcı bir InputStream kabul eder:
import java.io.FileInputStream;
try (FileInputStream fis = new FileInputStream("deck.pptx");
Presentation prs = new Presentation(fis)) {
System.out.println("Slides: " + prs.getSlides().size());
}