كيفية إنشاء العروض التقديمية في Java
Aspose.Slides FOSS for Java lets you create PowerPoint presentations entirely in Java with no dependency on Microsoft Office. This guide shows how to create a new presentation, add slides and shapes, format text, and save the result.
خطوة بخطوة دليل
الخطوة 1: إضافة الاعتماد على Maven
إضافة Aspose.Slides FOSS إلى الخاص بك pom.xml.Java 21 أو أحدث مطلوب.
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>26.7.0</version>
</dependency>تحقق من التثبيت :
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");الخطوة 2: استيراد الفصول المطلوبة
استيرادها Presentation فئة و SaveFormat الـنـبـيـل لـالـمـحـسـر.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;كل نوع من الحيوانات المنوية يعيش في org.aspose.slides.foss.ShapeType.إعدادات (FillType, NullableBool(و) أن يكون أيضا في org.aspose.slides.foss.
الخطوة الثالثة: إعداد عرض
استخدام new Presentation() ودفعه في الموارد محاولة. تبدأ عرض جديد مع شريط واحد فارغ.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation()) {
System.out.println("Slides in new presentation: " + prs.getSlides().size());
prs.save("output.pptx", SaveFormat.PPTX);
}أهمية : استخدم دائمًا الموارد أو المكالمات prs.dispose() في آخر كتلة.الموارد لن يتم إصدارها بشكل صحيح خلاف ذلك.
الخطوة 4: الوصول إلى الشرائح
أول شريط هو في المؤشر 0.A white presentation has exactly one slide.
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0); // zero-based index
System.out.println("Slide at index 0: " + slide);
prs.save("output.pptx", SaveFormat.PPTX);
}الخطوة الخامسة: إضافة شكل
استخدام slide.getShapes().addAutoShape() إضافة AutoShape.المعايير هي (shapeType, x, y, width, height) كلها في النقاط (1 نقطة = 1/72 بوصة؛ الشريط القياسي هو 720 × 540 بيتر).
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ITable;
import org.aspose.slides.foss.ILayoutSlide;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
// Rectangle at (50, 50) with 400 wide and 120 tall
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 400, 120
);
// Attach a text frame
shape.addTextFrame("Hello from Aspose.Slides FOSS!");
prs.save("with-shape.pptx", SaveFormat.PPTX);
}الخطوة 6: حفظ العرض التقديمي
مكالمة prs.save(path, SaveFormat.PPTX) قبل خروج الكتلة المحاولة PPTX هو تنسيق النتيجة الوحيد المدعوم.
prs.save("result.pptx", SaveFormat.PPTX);يتم كتابة الملف بشكل ذاتي؛ إذا حدث خطأ قبل هذا المكالمة، لا يتم إنشاء ملف الناتج.
نموذج عمل كامل
يخلق البرنامج التالي عرضًا مزدوجًّا مع شكل عنوان على الشريط الأول وطاولة على الثانية.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ITable;
import org.aspose.slides.foss.ILayoutSlide;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
public class CreatePresentation {
public static void main(String[] args) {
try (Presentation prs = new Presentation()) {
// --- Slide 1: title shape ---
ISlide slide1 = prs.getSlides().get(0);
IAutoShape title = slide1.getShapes().addAutoShape(
ShapeType.RECTANGLE, 40, 40, 640, 80
);
ITextFrame tf = title.addTextFrame("Q1 Results: Executive Summary");
IPortionFormat fmt = tf.getParagraphs().get(0)
.getPortions().get(0).getPortionFormat();
fmt.setFontHeight(32);
fmt.setFontBold(NullableBool.TRUE);
fmt.getFillFormat().setFillType(FillType.SOLID);
fmt.getFillFormat().getSolidFillColor().setColor(
Color.fromArgb(255, 0, 70, 127)
);
// --- Slide 2: table ---
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);
ITable table = slide2.getShapes().addTable(
40, 40,
new double[]{200.0, 120.0, 120.0},
new double[]{40.0, 40.0, 40.0}
);
String[] headers = {"Region", "Revenue", "Growth"};
String[][] data = {
{"North", "$1.2M", "+8%"},
{"South", "$0.9M", "+4%"},
};
for (int col = 0; col < headers.length; col++) {
table.getRows().get(0).get(col).getTextFrame().setText(headers[col]);
}
for (int row = 0; row < data.length; row++) {
for (int col = 0; col < data[row].length; col++) {
table.getRows().get(row + 1).get(col)
.getTextFrame().setText(data[row][col]);
}
}
prs.save("q1-results.pptx", SaveFormat.PPTX);
}
System.out.println("Saved q1-results.pptx");
}
}مشكلات و تصحيحات مشتركة
IllegalStateException: Presentation already disposed
أنت تستدعي أساليب على A Presentation موضوع بعد أن خرج كتلة الموارد محاولة. دائما الحفاظ على كل العمل داخل كتل محاولات.
UnsupportedOperationException عندما ينقذ
هذا يحدث عند محاولة تنسيق حفظ غير PPTX، أو عند استخدام ميزة غير مدعومة (مثل الرسوم البيانية أو الركائز).
يظهر الشكل خارج منطقة الشرائح المرئية
تبلغ نسبة الشرائح 720 × 540 نقطة حسب الافتراض. x + width <= 720 و y + height <= 540.
الأسئلة المتكررة
ما هو حجم الشرائح الافتراضية؟?
و جديد Presentation() إنشاء الشرائح في الحجم القياسي 10 × 7.5 بوصة (720 × 540 نقطة) تغيير حجم الشريط لا يدعم بعد في هذا الإصدار.
هل يمكنني إضافة أكثر من شريط واحد؟?
نعم، اتصل بنا prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)) إرفاق شريط خفيف والوصول إليه بواسطة المؤشر:
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);هل يمكنني فتح ملف موجود وإضافة الشرائح؟?
نعم :
try (Presentation prs = new Presentation("existing.pptx")) {
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
prs.save("existing.pptx", SaveFormat.PPTX);
}ما هي النماذج التي يمكنني حفظها؟?
فقط SaveFormat.PPTX يتم دعمها.الصادرات إلى PDF أو HTML أو SVG أو الصور غير متوفرة في هذا الإصدار.