مقدمه

Aspose.Slides FOSS for Java اکنون در Maven Central در دسترس است: یک کتابخانه رایگان با مجوز MIT برای ایجاد، خواندن و ویرایش فایل‌های PowerPoint .pptx به‌صورت کامل در جاوا، بدون وابستگی به Microsoft Office یا هر زمان‌اجرای مالکیتی.

کتابخانه برای توسعه‌دهندگانی طراحی شده است که نیاز به تولید یا دستکاری فایل‌های ارائه به‌صورت برنامه‌نویسی دارند: خودکارسازی اسلایدها از داده‌ها، استخراج متن و متادیتا از فایل‌های PPTX بارگذاری‌شده، ساخت خطوط لوله گزارش‌گیری مبتنی بر ارائه، یا ادغام ایجاد ارائه در برنامه‌های Spring Boot. چون aspose-slides-foss خالص جاوا است، به‌صورت یکسان بر روی Windows، macOS، Linux و کانتینرهای Docker مستقر می‌شود.

ویژگی‌های کلیدی

  • پشتیبانی کامل دورگرد PPTX: هر فایل .pptx را باز کنید، محتویات آن را تغییر دهید و بدون از دست دادن بخش‌های XML ناشناسی که کتابخانه هنوز نمی‌داند، ذخیره کنید.
  • مدیریت اسلایدها: با استفاده از prs.getSlides() اسلایدها را اضافه، حذف و مرور کنید؛ ارائه پس از new Presentation() با یک اسلاید خالی شروع می‌شود.
  • AutoShapes، جداول و کانکتورها: اشکال را از طریق slide.getShapes().addAutoShape()، داده‌های جدولی را از طریق slide.getShapes().addTable() و کانکتورهای بصری بین اشکال را از طریق slide.getShapes().addConnector() وارد کنید.
  • قالب‌بندی متن غنی: متن را در سطح کاراکتر با PortionFormat قالب‌بندی کنید: اندازه فونت، بولد، ایتالیک، زیرخط و رنگ ARGB از طریق FillType.SOLID و ColorFormat.
  • انواع پر کردن: پر کردن‌های FillType.SOLID، GRADIENT، PATTERN یا PICTURE را به هر شکلی اعمال کنید.
  • افکت‌های بصری: سایه خارجی، درخشندگی، لبه نرم، تاری، انعکاس و سایه داخلی از طریق shape.getEffectFormat().
  • قالب‌بندی 3D: برجستگی، دوربین، نورپردازی، ماده و عمق برآمدگی از طریق shape.getThreeDFormat().
  • یادداشت‌های سخنران: متن یادداشت‌ها را به هر اسلاید از طریق getNotesSlideManager().addNotesSlide() پیوست کنید.
  • نظرات زنجیره‌ای: نظرات را با متادیتای نویسنده و موقعیت اسلاید اضافه کنید.
  • تصاویر جاسازی‌شده: از مسیر فایل، بایت‌ها یا InputStream جاسازی کنید.
  • ویژگی‌های سند: ویژگی‌های اصلی، برنامه و سفارشی را بخوانید و بنویسید.

شروع کار

وابستگی Maven را اضافه کنید. 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;
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.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 HelloSlides {
    public static void main(String[] args) {
        try (Presentation prs = new Presentation()) {
            ISlide slide = prs.getSlides().get(0);
            IAutoShape shape = slide.getShapes().addAutoShape(
                ShapeType.RECTANGLE, 50, 50, 400, 120
            );
            shape.addTextFrame("Hello from Aspose.Slides FOSS!");
            prs.save("hello.pptx");
        }
    }
}

همیشه Presentation را داخل یک بلوک try-with-resources استفاده کنید؛ این اطمینان می‌دهد که تمام منابع داخلی هنگام خروج از بلوک آزاد می‌شوند.

مثال قالب‌بندی متن

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.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()) {
    IAutoShape shape = prs.getSlides().get(0).getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 500, 150
    );
    ITextFrame tf = shape.addTextFrame("Bold heading in corporate blue");
    IPortionFormat fmt = tf.getParagraphs().get(0).getPortions().get(0).getPortionFormat();
    fmt.setFontHeight(28);
    fmt.setFontBold(NullableBool.TRUE);
    fmt.getFillFormat().setFillType(FillType.SOLID);
    fmt.getFillFormat().getSolidFillColor().setColor(new Color(0, 70, 127));
    prs.save("formatted.pptx");
}

محدودیت‌های فعلی

در این نسخه، مناطق زیر UnsupportedOperationException را پرتاب می‌کنند:

  • نمودارها، SmartArt و اشیای OLE
  • انیمیشن‌ها و انتقال‌های اسلاید
  • خروجی به PDF، HTML، SVG یا فرمت‌های تصویری
  • پیوندهای فراگیر، تنظیمات اقدام، ماکروهای VBA و امضاهای دیجیتال

بخش‌های XML ناشناخته‌ای که در هنگام بارگذاری مواجه می‌شوند، به‌صورت دقیق همان‌گونه در زمان ذخیره حفظ می‌شوند، بنابراین فایل‌های PPTX تولید شده توسط ابزارهای دیگر به‌صورت ایمن دور‑دور می‌شوند.

موارد مرتبط