مقدمة

Aspose.Slides FOSS for Java هي مكتبة مجانية ومفتوحة المصدر تتيح لمطوري Java إنشاء وتعديل عروض PowerPoint دون أي اعتماد على Microsoft Office. تُوزَّع المكتبة تحت حزمة org.aspose.slides.foss وتستهدف Java 21 وما فوق.

المشروع مرخص تحت رخصة MIT، لذا يمكنك استخدامه في المشاريع الشخصية والتجارية دون تكلفة وبدون مفتاح API. يوفر نموذج كائن غني للشرائح، الأشكال، النص، الجداول، الصور، التعليقات، وخصائص المستند، مدعومًا بالتلاعب المباشر بصيغة حزمة Office Open XML.

مع 273 فئة، وأكثر من 2,600 طريقة، و42 تعدادًا، يغطي API الأساسي الكتل الأساسية التي تحتاجها لأتمتة سير عمل العروض التقديمية في أي تطبيق جافا.


ما هو المشمول

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

فئة Presentation هي نقطة الدخول لكل عملية. يمكنك إنشاء عرض تقديمي فارغ وحفظ النتيجة على القرص أو إلى OutputStream بمجموعة متنوعة من الصيغ. الفئة تنفّذ AutoCloseable، لذا تعمل بطبيعية مع كتل try-with-resources.

import org.aspose.slides.foss.*;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation pres = new Presentation()) {
    // A new presentation starts with one blank slide
    System.out.println("Slides: " + pres.getSlides().size());
    pres.save("output.pptx", SaveFormat.PPTX);
}

إدارة الشرائح

SlideCollection يوفّر تحكمًا كاملاً في مجموعة الشرائح. يمكنك إضافة شرائح فارغة باستخدام addEmptySlide()، وتكرار الشرائح الموجودة باستخدام addClone()، وإدراج شرائح في فهرس محدد باستخدام insertEmptySlide()، وإزالة الشرائح عن طريق المرجع أو الفهرس، والتنقل عبر المجموعة.

try (Presentation pres = new Presentation()) {
    ILayoutSlide layout = pres.getLayoutSlides().get(0);
    pres.getSlides().addEmptySlide(layout);
    pres.getSlides().addClone(pres.getSlides().get(0));
    System.out.println("Total slides: " + pres.getSlides().size());
}

الأشكال والرسومات التلقائية

تمثل الفئة AutoShape أكثر كائن قابل للرسم شيوعًا على الشريحة. تقوم بإنشاء الأشكال عبر IShapeCollection.addAutoShape()، مع تحديد ثابت ShapeType (مثل ShapeType.RECTANGLE) وإحداثيات الموقع. كل AutoShape يكشف عن TextFrame لمحتوى النص وFillFormat لتنسيق بصري.

try (Presentation pres = new Presentation()) {
    ISlide slide = pres.getSlides().get(0);
    IAutoShape shape = slide.getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 300, 100, false);
    ITextFrame tf = shape.addTextFrame("Hello from Aspose.Slides FOSS");
    System.out.println(tf.getText());
}

النص والفقرات

يتم نمذجة النص المنسق كهرمية من كائنات TextFrame، ParagraphCollection، Paragraph، PortionCollection، وPortion. يمكنك تعيين نص عادي على إطار مباشرةً باستخدام TextFrame.setText()، أو بناء فقرات متعددة الجمل بإضافة مثيلات Portion الفردية ذات تنسيق مميز.

try (Presentation pres = new Presentation()) {
    ISlide slide = pres.getSlides().get(0);
    IAutoShape shape = slide.getShapes()
        .addAutoShape(ShapeType.RECTANGLE, 50, 50, 400, 100, false);
    ITextFrame tf = shape.addTextFrame("First run ");
    Portion extra = new Portion("second run");
    tf.getParagraphs().get(0).getPortions().add(extra);
    System.out.println(tf.getText());
}

خصائص المستند

تُظهر فئة DocumentProperties حقول البيانات الوصفية القياسية مثل العنوان، المؤلف، الموضوع، الكلمات المفتاحية، الفئة، والطوابع الزمنية. تُحفظ الخصائص في أجزاء الخصائص الأساسية والامتدادية لملف PPTX وتستمر عبر دورات الحفظ/إعادة التحميل.

try (Presentation pres = new Presentation()) {
    IDocumentProperties props = pres.getDocumentProperties();
    props.setTitle("Quarterly Report");
    props.setAuthor("Engineering Team");
    pres.save("report.pptx", SaveFormat.PPTX);
}

التعليقات والشرح

يتضمن نظام التعليقات CommentAuthorCollection وCommentCollection. يمكنك إضافة مؤلفين، إرفاق تعليقات بشرائح ومواقع محددة، وقراءة التعليقات الموجودة مرة أخرى. يتم تخزين بيانات التعليقات في أجزاء ppt/commentAuthors.xml وppt/comments/*.xml من حزمة PPTX.


البدء السريع

أضف تبعية Maven إلى pom.xml الخاصة بك:

<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>

ثم أنشئ واحفظ عرضًا تقديميًا:

import org.aspose.slides.foss.*;
import org.aspose.slides.foss.export.SaveFormat;

public class QuickStart {
    public static void main(String[] args) {
        try (Presentation pres = new Presentation()) {
            ISlide slide = pres.getSlides().get(0);

            // Add a title shape
            IAutoShape title = slide.getShapes().addAutoShape(
                ShapeType.RECTANGLE, 50, 30, 600, 60, false);
            title.addTextFrame("Aspose.Slides FOSS for Java");

            // Add a content shape
            IAutoShape body = slide.getShapes().addAutoShape(
                ShapeType.RECTANGLE, 50, 120, 600, 300, false);
            body.addTextFrame(
                "This presentation was created entirely in Java "
                + "using a free, open-source library.");

            pres.save("quick-start.pptx", SaveFormat.PPTX);
        }
    }
}

الصيغ المدعومة

تحدد تعداد SaveFormat كل تنسيق إخراج يمكن للمكتبة كتابته. يُدرج الجدول أدناه الإدخالات المؤكدة.

الصيغةالامتدادالكتابة
PPTX.pptxنعم
PPTM.pptmنعم
PPSX.ppsxنعم
PPSM.ppsmنعم
POTX.potxنعم
POTM.potmنعم
ODP.odpنعم
OTP.otpنعم
FODP.fodpنعم
PPT.pptنعم
PPS.ppsنعم
POT.potنعم
PDF.pdfنعم
XPS.xpsنعم
HTML.htmlنعم
HTML5.htmlنعم
SVG.svgنعم
TIFF.tiffنعم
PNG.pngنعم
JPEG.jpegنعم
BMP.bmpنعم
GIF.gifنعم
MD.mdنعم

الصيغ المذكورة أعلاه هي أهداف تصدير مؤكدة معرفة في تعداد SaveFormat.


المصدر المفتوح والترخيص

يتم توزيع Aspose.Slides FOSS for Java تحت رخصة MIT. الشيفرة المصدرية الكاملة متاحة على GitHub في Aspose.Slides-FOSS-for-Java. يمكنك استخدام المكتبة وتعديلها وإعادة توزيعها في أي مشروع دون رسوم ملكية أو مفاتيح ترخيص.


البدء

هل أنت مستعد للغوص أعمق؟ إليك الموارد التي تساعدك على البدء:

  • Developer Guide – دروس إرشادية وشروحات لكل مجال من مجالات الميزة
  • Knowledge Base – مقالات إرشادية وأسئلة شائعة
  • API Reference – توثيق كامل للفئات والطرق