مقدمة
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 | نعم |
| نعم | ||
| 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 – توثيق كامل للفئات والطرق