نحوه بارگذاری ارائهها در جاوا
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());
}