نحوه بارگذاری ارائهها در Java
Aspose.Slides FOSS for Java lets you open any .pptx فایل، محتویات آن را بررسی کنید و یا آن را دوباره به فرمت PPTX ذخیره کنید یا دادهها را از آن استخراج کنید. این راهنما شامل باز کردن فایل، پیمایش اسلایدها، خواندن متن اشکال، و ذخیرهسازی دورانی است.
راهنمای گام به گام
مرحله ۱: افزودن وابستگی 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());
}
}
}
}
}مرحله ۵: خواندن ویژگیهای سند
دسترسی به ویژگیهای اصلی سند از 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());
}مرحله ۶: ذخیرهسازی دورانی
پس از بررسی یا تغییر ارائه، آن را دوباره به 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 فایلهای (binary 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());
}