Kā izveidot prezentācijas Java valodā

Kā izveidot prezentācijas Java valodā

Aspose.Slides FOSS for Java ļauj izveidot PowerPoint prezentācijas pilnīgi Java valodā, neizmantojot Microsoft Office atkarību. Šis ceļvedis parāda, kā izveidot jaunu prezentāciju, pievienot slaidus un formas, formatēt tekstu un saglabāt rezultātu.

Rokasgrāmata soli pa solim

1. solis: Pievienojiet Maven atkarību

Pievienojiet Aspose.Slides FOSS savam pom.xml. Nepieciešama Java 21 vai jaunāka.

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

Pārbaudiet instalāciju:

import org.aspose.slides.foss.Presentation;

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

2. solis: Importēt nepieciešamās klases

Importējiet Presentation klasi un SaveFormat enum, kas nepieciešams saglabāšanai.

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;

Visi formu tipa konstanti atrodas org.aspose.slides.foss.ShapeType. Formatēšanas enumerācijas (FillType, NullableBool) arī atrodas org.aspose.slides.foss.


3. solis: Izveidot prezentāciju

Izmantojiet new Presentation() un aptiniet to try-with-resources. Jauna prezentācija sākas ar vienu tukšu slaidu.

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

Svarīgi: Vienmēr izmantojiet try-with-resources vai izsauciet prs.dispose() finally blokā. Pretējā gadījumā resursi netiks pareizi atbrīvoti.


Solis 4: Piekļūt slaidam

Pirmais slaids ir indeksā 0. Tukšā prezentācija satur tieši vienu slaidu.

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. solis: Pievienot formu

Izmantojiet slide.getShapes().addAutoShape(), lai pievienotu AutoShape. Parametri ir (shapeType, x, y, width, height), visi punktos (1 punkts = 1/72 collas; standarta slaids ir 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);
}

6. solis: Saglabāt prezentāciju

Izsauciet prs.save(path, SaveFormat.PPTX) pirms try bloka iziet. PPTX ir vienīgais atbalstītais izvades formāts.

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

Fails tiek rakstīts atomiski; ja kļūda notiek pirms šī izsaukuma, netiek izveidots neviens izvades fails.


Pilns darbos piemērs

Šis programmas fragments izveido divu slaidu prezentāciju ar virsraksta formu pirmajā slaidā un tabulu otrajā.

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

Biežas problēmas un risinājumi

IllegalStateException: Presentation already disposed

Jūs izsaucat metodes uz Presentation objekta pēc tam, kad try-with-resources bloks ir beidzies. Vienmēr turiet visu darbu try blokā.

UnsupportedOperationException saglabājot

Tas notiek, mēģinot saglabāt formātu, kas nav PPTX, vai izmantojot neatbalstītu funkciju (piemēram, diagrammas vai animācijas).

Forma parādās ārpus redzamās slaida zonas

Slaidi pēc noklusējuma ir 720 × 540 punkti. Saglabājiet x + width <= 720 un y + height <= 540.


Biežāk uzdotie jautājumi

Kas ir noklusējuma slaida izmērs?

Jauns Presentation() izveido slaidus standarta 10 x 7,5 collas (720 x 540 punktu) izmērā. Slaidu izmēra mainīšana šajā izdevumā vēl nav atbalstīta.

Vai varu pievienot vairāk nekā vienu slaidu?

Jā. Izsauciet prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)), lai pievienotu tukšu slaidu un piekļūtu tam pēc indeksa:

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

Vai varu atvērt esošu failu un pievienot slaidus?

Jā:

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

Kādus formātus varu saglabāt?

Tikai SaveFormat.PPTX ir atbalstīts. Eksportēšana uz PDF, HTML, SVG vai attēliem nav pieejama šajā izdevumā.


Skatīt arī

 Latviešu