Kako kreirati prezentacije u Javi

Kako kreirati prezentacije u Javi

Aspose.Slides FOSS for Java omogućava kreiranje PowerPoint prezentacija u potpunosti u Javi bez zavisnosti od Microsoft Office-a. Ovaj vodič pokazuje kako kreirati novu prezentaciju, dodati slajdove i oblike, formatirati tekst i sačuvati rezultat.

Vodič korak po korak

Korak 1: Dodajte Maven zavisnost

Dodajte Aspose.Slides FOSS u svoj pom.xml. Potreban je Java 21 ili noviji.

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

Proverite instalaciju:

import org.aspose.slides.foss.Presentation;

Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");

Korak 2: Uvezite potrebne klase

Uvezite klasu Presentation i enum SaveFormat potrebne za čuvanje.

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;

Svi konstanti tipa oblika nalaze se u org.aspose.slides.foss.ShapeType. Enumi za formatiranje (FillType, NullableBool) takođe su u org.aspose.slides.foss.


Korak 3: Kreirajte prezentaciju

Koristite new Presentation() i zamotajte ga u try-with-resources. Nova prezentacija počinje sa jednim praznim slajdom.

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

Važno: Uvek koristite try-with-resources ili pozovite prs.dispose() u finally bloku. Resursi se neće pravilno osloboditi u suprotnom.


Korak 4: Pristup slajdu

Prvi slajd je na indeksu 0. Prazna prezentacija ima tačno jedan slajd.

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

Korak 5: Dodajte oblik

Koristite slide.getShapes().addAutoShape() da dodate AutoShape. Parametri su (shapeType, x, y, width, height) svi u tačkama (1 tačka = 1/72 inča; standardni slajd je 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);
}

Korak 6: Sačuvajte prezentaciju

Pozovite prs.save(path, SaveFormat.PPTX) pre nego što try blok izađe. PPTX je jedini podržani izlazni format.

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

Datoteka se piše atomarno; ako dođe do greške pre ovog poziva, izlazna datoteka se ne kreira.


Kompletan radni primer

Sledeći program kreira prezentaciju od dva slajda sa naslovnim oblikom na prvom slajdu i tabelom na drugom.

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

Uobičajeni problemi i popravke

IllegalStateException: Presentation already disposed

Pozivate metode na objektu Presentation nakon što je try‑with‑resources blok napušten. Uvek držite sav rad unutar try bloka.

UnsupportedOperationException prilikom čuvanja

Ovo se dešava kada pokušavate da sačuvate u formatu koji nije PPTX, ili kada koristite nepodržanu funkciju (kao što su grafikoni ili animacije).

Oblik se pojavljuje izvan vidljivog područja slajda

Slajdovi su podrazumevano 720 x 540 poena. Zadržite x + width <= 720 i y + height <= 540.


Često postavljana pitanja

Koja je podrazumevana veličina slajda?

Novi Presentation() kreira slajdove u standardnoj veličini od 10 × 7,5 inča (720 × 540 tačaka). Promena veličine slajda još nije podržana u ovom izdanju.

Mogu li dodati više od jednog slajda?

Да. Позовите prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)) да додате празан слајд и приступите му по индексу:

prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);

Mogu li otvoriti postojeći fajl i dodati slajdove?

Da:

try (Presentation prs = new Presentation("existing.pptx")) {
    prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
    prs.save("existing.pptx", SaveFormat.PPTX);
}

U koje formate mogu da sačuvam?

Podržan je samo SaveFormat.PPTX. Izvoz u PDF, HTML, SVG ili slike nije dostupan u ovom izdanju.


Види такође

 Српски