چگونه ارائهها را در جاوا بارگذاری کنیم
Aspose.Slides FOSS for Java به شما امکان میدهد هر فایل .pptx را باز کنید، محتوای آن را بررسی کنید و یا آن را به PPTX ذخیره کنید یا دادهها را از آن استخراج کنید. این راهنما شامل باز کردن یک فایل، پیمایش اسلایدها، خواندن متن شکل و ذخیرهسازی دورانی است.
راهنمای گام به گام
مرحله 1: افزودن وابستگی Maven
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>مرحله ۲: باز کردن یک ارائه موجود
مسیر فایل را به سازنده Presentation بدهید. از try‑with‑resources برای اطمینان از پاکسازی استفاده کنید.
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);
}بخشهای ناشناخته XML در فایل منبع به همان صورت حفظ میشوند: کتابخانه هرگز محتوایی را که هنوز درک نمیکند حذف نمیکند.
مرحله ۳: بررسی اسلایدها
بر روی تمام اسلایدها تکرار کنید و تعداد اشکال آنها را چاپ کنید:
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");
}
}مرحله ۴: خواندن متن شکل
بر روی اشکال تکرار کنید و متن را از اشکالی که TextFrame دارند بخوانید:
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());
}
}
}
}
}مرحله 5: خواندن ویژگیهای سند
دسترسی به ویژگیهای اصلی سند از prs.getDocumentProperties():
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());
}مرحله 6: ذخیرهسازی دورگرد
پس از بررسی یا اصلاح ارائه، آن را بهصورت PPTX ذخیره کنید:
prs.save("output.pptx", SaveFormat.PPTX);ذخیرهسازی در مسیر متفاوت یک فایل جدید ایجاد میکند. ذخیرهسازی در همان مسیر فایل اصلی را بازنویسی میکند.
مشکلات رایج و راهحلها
java.io.FileNotFoundException
اطمینان حاصل کنید که مسیر فایل .pptx نسبت به دایرکتوری کاری صحیح است. برای ساخت مسیر مقاوم از java.nio.file.Paths استفاده کنید:
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
کتابخانه فقط .pptx (Office Open XML) را پشتیبانی میکند. فایلهای قدیمی .ppt (PowerPoint باینری 97-2003) پشتیبانی نمیشوند.
اشکال متد getTextFrame() را ندارند
برخی اشکال (Connectors, PictureFrames, GroupShapes) قاب متنی ندارند. قبل از تبدیل و دسترسی به متن، با instanceof IAutoShape بررسی کنید.
سوالات متداول
آیا بارگذاری تمام محتوای اصلی را حفظ میکند؟
بله. بخشهای ناشناخته XML بهصورت دقیق در ذخیرهسازی دورانی حفظ میشوند. کتابخانه فقط بخشهای مدل سند را که میفهمد سریالسازی میکند و هر XMLی که شناسایی نمیکند را عبور میدهد.
آیا میتوانم یک فایل PPTX محافظتشده با رمز عبور را بارگذاری کنم؟
ارائههای دارای رمز عبور (رمزگذاریشده) در این نسخه پشتیبانی نمیشوند.
آیا بارگذاری از یک InputStream پشتیبانی میشود؟
بله. سازنده Presentation یک InputStream میپذیرد:
import java.io.FileInputStream;
try (FileInputStream fis = new FileInputStream("deck.pptx");
Presentation prs = new Presentation(fis)) {
System.out.println("Slides: " + prs.getSlides().size());
}