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
| Muoto | Enum-arvo | Tuettu |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.PPTX | Kyllä |
| N/A | Ei | |
| HTML | N/A | Ei |
| SVG | N/A | Ei |
| PNG / JPEG | N/A | Ei |
| ODP (OpenDocument) | N/A | Ei |
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.