الأسئلة المتكررة

الأسئلة المتكررة

كيف أقوم بتثبيت Aspose.Slides FOSS؟

أضف تبعية Maven إلى pom.xml الخاص بك. يلزم Java 21 أو أحدث.

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

تحقق من التثبيت:

import org.aspose.slides.foss.Presentation;

Presentation prs = new Presentation();
try {
    System.out.println("Slides: " + prs.getSlides().size());
} finally {
    prs.dispose();
}

لا يلزم وجود Microsoft Office أو أي بيئة تشغيل نظام أخرى.


لماذا يجب أن أستدعي dispose() على Presentation؟

فئة Presentation تدير موارد حزمة OPC الداخلية. بدون استدعاء dispose()، لا يتم تحرير تلك الموارد، مما قد يسبب تسرب الذاكرة أو قفل الملفات. استخدم دائمًا try-finally:

Presentation prs = new Presentation("input.pptx");
try {
    // work here
    prs.save("output.pptx", SaveFormat.PPTX);
} finally {
    prs.dispose();
}

بدلاً من ذلك، استخدم try-with-resources لأن Presentation يطبق AutoCloseable:

try (Presentation prs = new Presentation("input.pptx")) {
    prs.save("output.pptx", SaveFormat.PPTX);
}

ما صيغ الملفات التي يمكنني الحفظ إليها؟

تُعرّف تعداد SaveFormat ثوابت للعديد من الصيغ — PPTX، PDF، HTML، SVG، JPEG، PNG، وغيرها — لتوافق API مع النسخة التجارية. أثناء التشغيل في هذه النسخة المفتوحة المصدر، تتجاهل جميع عمليات التحميل الزائدة save() معامل الصيغة وتكتب دائمًا مخرجات PPTX. تمرير SaveFormat.PDF يُترجم بشكل صحيح لكنه ينتج ملف .pptx، وليس .pdf.

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

prs.save("output.pptx", SaveFormat.PPTX);

التصدير إلى صيغ غير PPTX غير متاح وظيفيًا في هذا الإصدار. استخدم SaveFormat.PPTX لجميع عمليات الحفظ.


هل يمكنني فتح .ppt (ملفات PowerPoint القديمة 97-2003)؟

لا. يتم دعم ملفات .pptx (Office Open XML) فقط. تنسيق .ppt الثنائي القديم غير معالج بواسطة هذه المكتبة.


كيف يمكنني الوصول إلى الشرائح؟

الشرائح هي مجموعة ذات فهرسة تبدأ من الصفر يمكن الوصول إليها عبر prs.getSlides():

ISlide firstSlide = prs.getSlides().get(0);
int slideCount = prs.getSlides().size();

كيف أضيف شريحة ثانية؟

استخدم prs.getSlides().addEmptySlide() مع تخطيط:

try (Presentation prs = new Presentation()) {
    ILayoutSlide layout = prs.getLayoutSlides().get(0);
    prs.getSlides().addEmptySlide(layout);
    ISlide slide2 = prs.getSlides().get(1);
    prs.save("two-slides.pptx", SaveFormat.PPTX);
}

كيف يمكنني ضبط لون خلفية الشريحة؟

لون خلفية الشريحة غير مدعوم في هذه النسخة من Aspose.Slides FOSS. لا توجد طريقة getBackground() على ISlide أو أي فئة أخرى في هذه المكتبة. يتم تثبيت خلفية الشريحة عند إنشاء العرض التقديمي من القالب الخاص به. قد تضيف نسخة مستقبلية التحكم في الخلفية.


كيف أستخدم NullableBool?

NullableBool هو تعداد ثلاثي الحالة يُستخدم لخصائص التنسيق. استخدم NullableBool.TRUE (ليس true الخاص بجافا) للخط العريض، المائل، والخصائص المماثلة:

import org.aspose.slides.foss.NullableBool;

fmt.setFontBold(NullableBool.TRUE);
fmt.setFontItalic(NullableBool.FALSE);

لماذا لا يؤثر تعيين لون النص؟

يجب عليك أيضًا تعيين fillType إلى FillType.SOLID قبل تعيين اللون:

import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.drawing.Color;

fmt.getFillFormat().setFillType(FillType.SOLID);
fmt.getFillFormat().getSolidFillColor().setColor(Color.fromArgb(255, 200, 0, 0));

هل يمكنني استخدام المخططات أو SmartArt؟

لا. المخططات، SmartArt، كائنات OLE، الرسوم المتحركة، الانتقالات، الروابط التشعبية، ماكرو VBA، والتوقيعات الرقمية غير مُنفذة في هذه النسخة وتؤدي إلى UnsupportedOperationException.


هل المكتبة آمنة للاستخدام المتعدد الخيوط؟

كل كائن Presentation مستقل. إنشاء واستخدام نسخ Presentation منفصلة من خيوط منفصلة آمن طالما أنك لا تشارك كائن Presentation واحد عبر الخيوط دون مزامنة خارجية.


كيف أدمج صورة؟

اقرأ بايتات الصورة وأضفها إلى prs.getImages()، ثم أنشئ PictureFrame:

import org.aspose.slides.foss.ShapeType;

byte[] imageData = java.nio.file.Files.readAllBytes(
    java.nio.file.Paths.get("logo.png")
);
IPPImage image = prs.getImages().addImage(imageData);
slide.getShapes().addPictureFrame(ShapeType.RECTANGLE, 50, 50, 200, 150, image);

انظر أيضًا

 العربية