Kuinka tallentaa esitykset Java:ssa

Kuinka tallentaa esitykset Java:ssa

Aspose.Slides FOSS for Java saves presentations exclusively to .pptx muoto 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-resources -rakennetta. 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 viimeisenä lauseena 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 uusi tiedosto muuttamatta alkuperäistä:

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

Se template.pptx tiedostoa ei ole muokattu; 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 arvoa prs.save(path, format) tallentaa hiljaisesti PPTX-muodossa — poikkeusta ei heitetä ja formaattiargumentti jätetään huomiotta. UnsupportedOperationException heitetään vain prs.save(ISaveOptions options), ei formaattiin perustuvilla ylikuormituksilla.


Yleisiä ongelmia ja korjauksia

java.io.IOException: Permission denied

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

Tiedosto on luotu, mutta se näyttää tyhjältä tai vioittuneelta

Varmista 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 käytettäessä prs.save(ISaveOptions options) — se ISaveOptions-pohjainen ylikuormitus ei ole toteutettu. Huomaa: ei-PPTX:n SaveFormat kohteeseen prs.save(path, format) tekee ei heitä tätä poikkeusta; se tallentaa hiljaisesti PPTX-muodossa.


Usein kysytyt kysymykset

Voinko tallentaa samaan tiedostoon, jonka avasin?

Kyllä. Tallentaminen 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ä. Se 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ö tallennus sisällön, jota en ole muokannut?

Kyllä. Alkuperäisen tiedoston tuntemattomat XML-osat säilytetään tarkalleen sellaisina kuin ne ovat. Kirjasto sarjoittaa vain ne dokumenttimallin osat, jotka se ymmärtää, ja ohjaa läpi kaikki XML, jota se ei tunnista.


Katso myös

 Suomi