איך ליצור מצגות ב-Java

איך ליצור מצגות ב-Java

Aspose.Slides FOSS for Java מאפשר לך ליצור מצגות PowerPoint באופן מלא ב‑Java ללא תלות ב‑Microsoft Office. מדריך זה מציג כיצד ליצור מצגת חדשה, להוסיף שקפים וצורות, לעצב טקסט ולשמור את התוצאה.

מדריך שלב‑אחר‑שלב

שלב 1: הוסף את תלות Maven

הוסף את Aspose.Slides FOSS ל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();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");

שלב 2: ייבא את המחלקות הדרושות

ייבא את המחלקה Presentation ואת ה‑enum 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.


שלב 3: צור מצגת

השתמש בnew Presentation() ועטוף אותו ב‑try-with-resources. מצגת חדשה מתחילה עם שקף ריק אחד.

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);
}

Important: תמיד השתמשו ב‑try-with-resources או קראו ל‑prs.dispose() ב‑בלוק finally. המשאבים לא ישוחררו כראוי אחרת.


שלב 4: גישה לשקופית

השקף הראשון נמצא באינדקס 0. מצגת ריקה מכילה בדיוק שקף אחד.

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);
}

שלב 5: הוסף צורה

השתמש בslide.getShapes().addAutoShape() כדי להוסיף AutoShape. הפרמטרים הם (shapeType, x, y, width, height) כולם בנקודות (1 נקודה = 1/72 אינץ’; שקופית סטנדרטית היא 720 × 540 pt).

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) לפני שהבלוק try יוצא. 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

אתה קורא למתודות על אובייקט Presentation אחרי שהבלוק try-with-resources הסתיים. תמיד שמור את כל העבודה בתוך הבלוק try.

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 או תמונות אינו זמין בגרסה זו.


ראה גם

 עברית