مقدمه

Aspose.Slides FOSS for Java یک کتابخانه رایگان و متن‌باز است که به توسعه‌دهندگان جاوا امکان ایجاد و دستکاری ارائه‌های PowerPoint را بدون هیچ وابستگی به Microsoft Office می‌دهد. این کتابخانه تحت بسته org.aspose.slides.foss عرضه می‌شود و هدف آن Java 21 و بالاتر است.

این پروژه تحت مجوز MIT منتشر شده است، بنابراین می‌توانید آن را در پروژه‌های شخصی و تجاری بدون هزینه و بدون نیاز به کلید API استفاده کنید. این پروژه یک مدل شیء غنی برای اسلایدها، اشکال، متن، جدول‌ها، تصاویر، نظرات و ویژگی‌های سند فراهم می‌کند که با دستکاری مستقیم فرمت بسته Office Open XML پشتیبانی می‌شود.

با ۲۷۳ کلاس، بیش از ۲۶۰۰ متد و ۴۲ شمارش، 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بله

قالب‌های فهرست‌شده در بالا به‌عنوان اهداف خروجی تأیید شده در enum SaveFormat تعریف شده‌اند.


منبع باز و مجوزها

Aspose.Slides FOSS for Java تحت مجوز MIT توزیع می‌شود. کد منبع کامل در گیت‌هاب در آدرس Aspose.Slides-FOSS-for-Java موجود است. شما می‌توانید این کتابخانه را در هر پروژه‌ای بدون حق امتیاز یا کلید لایسنس استفاده، تغییر و توزیع کنید.


شروع کار

آماده‌اید تا عمیق‌تر شوید؟ در اینجا منابعی وجود دارد که به شما کمک می‌کند شروع کنید: