Kuinka tallentaa esitykset Javassa

Kuinka tallentaa esitykset Javassa

Aspose.Slides FOSS for Java tallentaa esitykset yksinomaan .pptx-muotoon käyttäen prs.save(path, SaveFormat.PPTX). Tämä opas kattaa oikean tallennusmallin, tallentamisen eri polkuun ja yleiset tallennukseen liittyvät virheet.

Vaiheittainen opas

Vaihe 1: Lisää Maven‑riippuvuus

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

Vaihe 2: Avaa tai luo esitys

Käytä aina try-with-resourcesia. Tallennuskutsu on suoritettava try-lohkon sisällä.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;

// Create new
try (Presentation prs = new Presentation()) {
    prs.save("new.pptx", SaveFormat.PPTX);
}

// Open existing
try (Presentation prs = new Presentation("input.pptx")) {
    prs.save("output.pptx", SaveFormat.PPTX);
}

Vaihe 3: Tallenna kaikkien muutosten jälkeen

Aseta save()-kutsu viimeiseksi lauseeksi try-lohkon sisällä, kun kaikki muutokset on suoritettu.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    ISlide slide = prs.getSlides().get(0);
    IAutoShape shape = slide.getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 300, 100
    );
    shape.addTextFrame("Hello, World!");
    prs.save("output.pptx", SaveFormat.PPTX);
}

Vaihe 4: Tallenna eri polkuun

Anna eri tulostuspolku luodaksesi uuden tiedoston muokkaamatta alkuperäistä:

try (Presentation prs = new Presentation("template.pptx")) {
    // modify ...
    prs.save("customized.pptx", SaveFormat.PPTX);
}

template.pptx-tiedostoa ei muuteta; customized.pptx luodaan (tai ylikirjoitetaan, jos se on jo olemassa).


Vaihe 5: Vahvista tulos

Kun try-lohko päättyy, tiedosto on valmis ja suljettu. Tarkista, että se on olemassa:

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

Path output = Paths.get("output.pptx");
System.out.println("Saved: " + Files.exists(output)
    + ", size: " + Files.size(output) + " bytes");

Tuettu tallennusmuoto

MuotoEnum-arvoTuettu
PPTX (Office Open XML)SaveFormat.PPTXKyllä
PDFN/AEi
HTMLN/AEi
SVGN/AEi
PNG / JPEGN/AEi
ODP (OpenDocument)N/AEi

Vain PPTX on täysin tuettu. Muiden SaveFormat arvon antaminen prs.save(path, format):lle tallentaa hiljaisesti PPTX‑muodossa — poikkeusta ei heitetä ja formaattiargumentti jätetään huomiotta. UnsupportedOperationException heitetään vain prs.save(ISaveOptions options):n toimesta, ei formaattiin perustuvissa ylikuormituksissa.


Yleisiä ongelmia ja korjauksia

java.io.IOException: Permission denied

Tulostetiedosto on avoinna toisessa sovelluksessa (esim. PowerPoint on avannut tiedoston). Sulje tiedosto muissa sovelluksissa ennen tallentamista.

Tiedosto luodaan, mutta se näyttää tyhjältä tai vioittuneelta

Varmista, että prs.save() kutsutaan try-lohkon sisällä, ei sen jälkeen. Kun try-with-resources-lohko päättyy, Presentation-objekti vapautetaan ja myöhemmät kutsut epäonnistuvat.

UnsupportedOperationException tallennettaessa

Tämä tapahtuu, kun käytetään prs.save(ISaveOptions options)ISaveOptions-pohjaista ylikuormitusta ei ole toteutettu. Huomautus: ei‑PPTX SaveFormat:n antaminen prs.save(path, format):lle ei heitä tätä poikkeusta; se tallentaa hiljaisesti PPTX‑muodossa.


Usein kysytyt kysymykset

Voinko tallentaa samaan tiedostoon, jonka avasin?

Kyllä. Tallenna samaan polkuun korvaa alkuperäisen tiedoston:

try (Presentation prs = new Presentation("deck.pptx")) {
    // modify ...
    prs.save("deck.pptx", SaveFormat.PPTX);  // overwrites original
}

Voinko tallentaa OutputStreamiin?

Kyllä. save()-menetelmä hyväksyy OutputStream:

import java.io.FileOutputStream;

try (Presentation prs = new Presentation();
     FileOutputStream fos = new FileOutputStream("output.pptx")) {
    prs.save(fos, SaveFormat.PPTX);
}

Säilyttääkö tallentaminen sisällön, jota en ole muokannut?

Kyllä. Tuntemattomat XML-osat alkuperäisestä tiedostosta säilytetään kirjaimellisesti. Kirjasto sarjoittaa vain ne osat asiakirjamallista, jotka se ymmärtää, ja ohjaa läpi kaikki XML:t, joita se ei tunnista.


Katso myös

 Suomi