1. محصولات
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for Java

Aspose.Slides FOSS برای Java

ایجاد، خواندن و ویرایش ارائه‌های PowerPoint از Java — رایگان و منبع باز، بدون نیاز به وابستگی Office.

کتابخانه منبع باز Java برای ارائه‌های PowerPoint

Aspose.Slides FOSS برای Java یک کتابخانهٔ خالص-Java دارای مجوز MIT است که برای کار با فایل‌های PowerPoint .pptx استفاده می‌شود. یک وابستگی Maven اضافه کنید و بلافاصله شروع به ایجاد، خواندن و ویرایش ارائه‌ها کنید بدون اینکه نیاز به نصب Microsoft Office یا هر محیط اجرایی مالکیتی داشته باشید.

کتابخانه یک API ارائه می‌دهد که حول Presentation، Slide، Shape، TextFrame، Paragraph و Portion ساخته شده است، مدل مفهومی که خود PowerPoint از آن استفاده می‌کند. اسلایدها را اضافه و حذف کنید، AutoShapes، Tables و Connectors را وارد کنید، متن را در سطح کاراکتر با bold، italic، اندازه و رنگ قلم قالب‌بندی کنید، پرکننده‌های ثابت یا گرادیان اعمال کنید، و افکت‌های بصری (shadow، glow، blur، reflection) را اضافه کنید.

کلاس Presentation AutoCloseable را پیاده‌سازی می‌کند، بنابراین برای پاک‌سازی قابل اعتماد از try-with-resources استفاده کنید. بخش‌های ناشناخته XML که در هنگام بارگذاری مواجه می‌شوند، به‌صورت دقیق در زمان ذخیره‌سازی حفظ می‌شوند، بنابراین round-tripping هرگز محتوایی را که کتابخانه هنوز درک نمی‌کند، از بین نمی‌برد. برای ویژگی‌ها و پشتیبانی‌های اضافی، به Aspose.Slides for Java enterprise edition مراجعه کنید.

API ارائه و اسلاید

  • ایجاد و باز کردن PPTX: ارائه‌های جدید ایجاد کنید یا فایل‌های .pptx موجود را از طریق new Presentation() یا new Presentation(path) باز کنید.
  • افزودن و حذف اسلایدها: به‌صورت برنامه‌نویسی SlideCollection را با addClone()، addEmptySlide()، remove() و removeAt() مدیریت کنید.
  • AutoShapes: مستطیل‌ها، بیضی‌ها، خطوط و سایر هندسه‌های ShapeType را از طریق addAutoShape() وارد کنید.
  • جداول و اتصالات: شکل‌های جدول ساختاریافته و خطوط اتصال بین اشکال را از طریق addConnector() اضافه کنید.
  • یادداشت‌های سخنران: خواندن و نوشتن یادداشت‌های سخنران برای هر اسلاید از طریق NotesSlideManager.
  • نظرات زنجیره‌ای: دسترسی به رشته‌های نظرات سطح اسلاید با getSlideComments().

جایی که Aspose.Slides FOSS می‌تواند استفاده شود

  • تولید گزارش: اسلایدهای برند شده را از منابع داده بدون Office بسازید.
  • خودکارسازی قالب: قالب‌های PPTX را با محتوای پویا در خطوط لوله CI/CD پر کنید.
  • مهاجرت محتوا: ارائه‌های موجود را بخوانید و اسلایدها را بازساخت یا بازطراحی کنید.
  • پشت‌صحنه‌های بدون سرور: فایل‌های PPTX را داخل کانتینرهای Docker یا توابع Lambda پردازش کنید.
  • پردازش دسته‌ای: تغییرات قالب‌بندی یکنواخت را در کتابخانه‌های بزرگ اسلاید اعمال کنید.

قالب‌بندی متن و افکت‌های بصری

  • قالب‌بندی سطح کاراکتر: با استفاده از getPortionFormat() به اشیای Portion به‌صورت جداگانه بولد، ایتالیک، اندازه قلم و رنگ اعمال کنید.
  • پر کردن‌های جامد و گرادیان: شکل را با رنگ جامد یا گرادیان خطی چند‑توقفه با استفاده از getFillFormat() و FillType تنظیم کنید.
  • افکت‌های سایه و درخشندگی: با استفاده از getEffectFormat()، سایه خارجی، درخشندگی، تاری و بازتاب را به هر شکلی اعمال کنید.
  • تراز پاراگراف: تنظیم تراز چپ، مرکز، راست یا توجیه‌شده برای هر پاراگراف با استفاده از getParagraphFormat().setAlignment().
  • Round-trip safe: بخش‌های ناشناخته XML به‌صورت کلمه به کلمه در هنگام ذخیره‌سازی مجدد حفظ می‌شوند.

تجربه توسعه‌دهنده

Aspose.Slides FOSS - Aspose.Slides نصب‌های FOSS با یک وابستگی Maven واحد (org.aspose.slides.foss:aspose-slides-foss). کتابخانه کاملاً Java است و هیچ افزونه بومی برای کامپایل ندارد و هیچ بسته سیستمی برای نصب ندارد.

API مدل شیء PowerPoint را بازتاب می‌دهد (Presentation, Slide, Shape, TextFrame, Paragraph, Portion)، بنابراین هر کسی که با مدل شیء PowerPoint آشناست می‌تواند بلافاصله از کتابخانه استفاده کند. این کتابخانه دارای مجوز MIT است، به صورت منبع باز در GitHub موجود است و به JDK 21 یا بالاتر نیاز دارد.

یک ارائه ایجاد کنید و یک شکل اضافه کنید

از try-with-resources استفاده کنید تا اطمینان حاصل شود که Presentation همیشه بسته می‌شود و منابع آزاد می‌شوند. addAutoShape() یک مقدار enum ShapeType می‌گیرد، سپس موقعیت x/y و عرض/ارتفاع را به نقطه‌ها می‌گیرد. برای ایجاد فریم متن و تنظیم متن اولیه در یک فراخوانی، addTextFrame() را صدا بزنید — قبل از addTextFrame()، getTextFrame() را صدا نزنید زیرا فریم تا زمان ایجاد null است.

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

try (Presentation prs = new Presentation()) {
    ISlide slide = prs.getSlides().get(0);

    // Add a rectangle AutoShape
    IAutoShape shape = slide.getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 400, 150
    );
    shape.addTextFrame("Hello, Aspose.Slides!");

    prs.save("output.pptx");
}
 ```xml
<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>
 

قالب‌بندی متن و اعمال اثر پر کردن

قالب‌بندی متن در سطح Portion کار می‌کند — کوچک‌ترین واحد یک دنباله از کاراکترها. فایل ذخیره‌شده را باز کنید، به بخش اول اولین پاراگراف بروید و ویژگی‌های قلم را از طریق گترها و سترها تنظیم کنید. پر کردن شکل مستقل است: FillType را به SOLID تنظیم کنید و یک رنگ را از طریق getSolidFillColor().setColor() اختصاص دهید.

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

try (Presentation prs = new Presentation("output.pptx")) {
    IAutoShape shape = (IAutoShape) prs.getSlides().get(0).getShapes().get(0);
    IPortion portion = shape.getTextFrame()
        .getParagraphs().get(0).getPortions().get(0);

    // Bold, 18pt, dark-blue text
    portion.getPortionFormat().setFontBold(NullableBool.TRUE);
    portion.getPortionFormat().setFontHeight(18);
    portion.getPortionFormat().getFillFormat()
        .getSolidFillColor().setColor(new Color(0, 0, 139));

    // Solid background fill on the shape
    shape.getFillFormat().setFillType(FillType.SOLID);
    shape.getFillFormat().getSolidFillColor()
        .setColor(new Color(240, 248, 255));

    prs.save("formatted.pptx");
}
 ```java
import org.aspose.slides.foss.*;
import org.aspose.slides.foss.drawing.Color;

try (Presentation prs = new Presentation("output.pptx")) {
    IAutoShape shape = (IAutoShape) prs.getSlides().get(0).getShapes().get(0);
    IPortion portion = shape.getTextFrame()
        .getParagraphs().get(0).getPortions().get(0);

    // Bold, 18pt, dark-blue text
    portion.getPortionFormat().setFontBold(NullableBool.TRUE);
    portion.getPortionFormat().setFontHeight(18);
    portion.getPortionFormat().getFillFormat()
        .getSolidFillColor().setColor(new Color(0, 0, 139));

    // Solid background fill on the shape
    shape.getFillFormat().setFillType(FillType.SOLID);
    shape.getFillFormat().getSolidFillColor()
        .setColor(new Color(240, 248, 255));

    prs.save("formatted.pptx");
}
 

سوالات متداول

Aspose.Slides FOSS - FOSS Aspose.Slides برای Java چیست؟

این یک کتابخانهٔ رایگان و تحت مجوز MIT و خالص-Java برای ایجاد، خواندن و ویرایش ارائه‌های PowerPoint .pptx است که نیازی به Microsoft Office ندارد.

کدام فرمت‌های فایل پشتیبانی می‌شوند؟

.pptx فرمت پشتیبانی‌شده برای خواندن/نوشتن است. خروجی به PDF، HTML، SVG یا تصاویر در این نسخه موجود نیست.

آیا به Microsoft Office یا PowerPoint نیاز دارد؟

خیر. Aspose.Slides FOSS یک کتابخانه pure-Java است که هیچ وابستگی به Microsoft Office، COM automation یا هیچ runtime مالکیتی ندارد.

چگونه آن را نصب کنم؟

وابستگی Maven org.aspose.slides.foss:aspose-slides-foss:1.0.0 را به پروژهٔ خود اضافه کنید. هیچ بستهٔ سیستمی اضافی یا افزونهٔ بومی لازم نیست. JDK 21 یا بالاتر مورد نیاز است.

آیا می‌توانم افکت‌های بصری مانند سایه و درخشندگی اعمال کنم؟

بله. کتابخانه از افکت‌های سایهٔ خارجی، درخشندگی، تاری و بازتاب بر روی هر شیء شکل‌دار از طریق API EffectFormat پشتیبانی می‌کند.

آیا الگوی try-with-resources توصیه می‌شود؟

بله. Presentation AutoCloseable را پیاده‌سازی می‌کند، بنابراین برای پاک‌سازی قابل اعتماد منابع همیشه از try (Presentation prs = new Presentation()) { ... } استفاده کنید.

آیا عبور دورانی یک PPTX محتویات ناشناخته را خراب می‌کند؟

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

کجا می‌توانم کد منبع را پیدا کنم؟

این کتابخانه تحت مجوز MIT است و در GitHub میزبانی می‌شود. گزارش‌های باگ و درخواست‌های pull نیز مورد استقبال هستند.

  

منابع پشتیبانی و آموزش

 فارسی