Sådan opretter du præsentationer i Java

Sådan opretter du præsentationer i Java

Aspose.Slides FOSS for Java giver dig mulighed for at oprette PowerPoint‑præsentationer udelukkende i Java uden afhængighed af Microsoft Office. Denne vejledning viser, hvordan du opretter en ny præsentation, tilføjer slides og former, formaterer tekst og gemmer resultatet.

Trin-for-trin guide

Trin 1: Tilføj Maven-afhængigheden

Tilføj Aspose.Slides FOSS til din pom.xml. Java 21 eller senere er påkrævet.

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

Bekræft installationen:

import org.aspose.slides.foss.Presentation;

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

Trin 2: Importer de nødvendige klasser

Importér Presentation-klassen og SaveFormat-enum’en, der er nødvendig for at gemme.

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;

Alle shape-type konstanter findes i org.aspose.slides.foss.ShapeType. Formaterings-enums (FillType, NullableBool) er også i org.aspose.slides.foss.


Trin 3: Opret en præsentation

Brug new Presentation() og pak den ind i try-with-resources. En ny præsentation starter med ét tomt slide.

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

Vigtigt: Brug altid try-with-resources eller kald prs.dispose() i en finally-blok. Ressourcer frigives ellers ikke korrekt.


Trin 4: Få adgang til et dias

Den første slide er på indeks 0. En tom præsentation har præcis ét slide.

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

Trin 5: Tilføj en form

Brug slide.getShapes().addAutoShape() til at tilføje en AutoShape. Parametrene er (shapeType, x, y, width, height) alle i punkter (1 punkt = 1/72 tomme; standard slide er 720 x 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);
}

Trin 6: Gem præsentationen

Kald prs.save(path, SaveFormat.PPTX) før try‑blokken afslutter. PPTX er det eneste understøttede outputformat.

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

Filen skrives atomisk; hvis der opstår en fejl før dette kald, oprettes der ingen outputfil.


Komplet arbejdseksempel

Det følgende program opretter en præsentation med to dias med en titelform på det første dias og en tabel på det andet.

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

Almindelige problemer og løsninger

IllegalStateException: Presentation already disposed

Du kalder metoder på et Presentation-objekt efter, at try‑with‑resources‑blokken er afsluttet. Hold altid alt arbejde inden for try‑blokken.

UnsupportedOperationException ved lagring

Dette sker, når du forsøger at gemme i et andet format end PPTX, eller når du bruger en ikke‑understøttet funktion (såsom diagrammer eller animationer).

Formen vises uden for det synlige slide-området

Slides er 720 × 540 punkter som standard. Behold x + width <= 720 og y + height <= 540.


Ofte stillede spørgsmål

Hvad er standardstørrelsen på sliden?

En ny Presentation() opretter dias i den standard 10 x 7,5 tommer (720 x 540 punkt) størrelse. Ændring af diasstørrelsen understøttes endnu ikke i denne udgave.

Kan jeg tilføje mere end ét slide?

Ja. Kald prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)) for at tilføje et tomt slide og få adgang til det via indeks:

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

Kan jeg åbne en eksisterende fil og tilføje slides?

Ja:

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

Hvilke formater kan jeg gemme til?

Kun SaveFormat.PPTX understøttes. Eksport til PDF, HTML, SVG eller billeder er ikke tilgængelig i denne udgave.


Se også

 Dansk