كيفية تحميل العروض التقديمية في Java

كيفية تحميل العروض التقديمية في Java

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>

الخطوة 2: فتح عرض تقديمي موجود

مرّر مسار الملف إلى مُنشئ 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 غير المعروفة في ملف المصدر كما هي حرفيًا: المكتبة لا تزيل أبدًا المحتوى الذي لا تفهمه بعد.


الخطوة 3: فحص الشرائح

تكرار جميع الشرائح وطباعة عدد الأشكال الخاصة بها:

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");
    }
}

الخطوة 4: قراءة نص الشكل

تكرار عبر الأشكال وقراءة النص من الأشكال التي تحتوي على 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());
}

انظر أيضًا

 العربية