Jak uložit prezentace v Java
Aspose.Slides FOSS for Java saves presentations exclusively to .pptx formát pomocí prs.save(path, SaveFormat.PPTX). Tento průvodce popisuje správný vzor ukládání, ukládání do jiné cesty a běžné chyby související s ukládáním.
Průvodce krok za krokem
Krok 1: Přidejte Maven závislost
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Krok 2: Otevřít nebo vytvořit prezentaci
Vždy používejte try-with-resources. Volání ukládání musí proběhnout uvnitř bloku try.
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);
}Krok 3: Uložit po všech úpravách
Umístěte save() volání jako poslední příkaz uvnitř bloku try, po dokončení všech úprav.
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);
}Krok 4: Uložit do jiné cesty
Předávejte jinou výstupní cestu pro vytvoření nového souboru bez úpravy originálu:
try (Presentation prs = new Presentation("template.pptx")) {
// modify ...
prs.save("customized.pptx", SaveFormat.PPTX);
}Tento template.pptx soubor není upraven; customized.pptx je vytvořen (nebo přepsán, pokud již existuje).
Krok 5: Ověřit výstup
Po opuštění bloku try je soubor kompletní a uzavřený. Zkontrolujte, že existuje:
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");Podporovaný formát ukládání
| Formát | Hodnota výčtu | Podporováno |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.PPTX | Ano |
| N/A | Ne | |
| HTML | N/A | Ne |
| SVG | N/A | Ne |
| PNG / JPEG | N/A | Ne |
| ODP (OpenDocument) | N/A | Ne |
Pouze PPTX je plně podporován. Předání jakéhokoli jiného SaveFormat hodnotu do prs.save(path, format) tichým způsobem uloží jako PPTX — nevyhodí se žádná výjimka a argument formátu je ignorován. UnsupportedOperationException je vyvolána pouze prs.save(ISaveOptions options), ne formátovými přetíženími.
Časté problémy a opravy
java.io.IOException: Permission denied
Výstupní soubor je otevřen v jiné aplikaci (např. PowerPoint má soubor otevřený). Zavřete soubor v ostatních aplikacích před uložením.
Soubor je vytvořen, ale zdá se prázdný nebo poškozený
Zajistěte prs.save() je volána uvnitř bloku try, ne po něm. Po ukončení bloku try-with-resources je Presentation objekt uvolněn a následné volání selže.
UnsupportedOperationException při ukládání
K tomu dochází při použití prs.save(ISaveOptions options) — ISaveOptions-založené přetížení není implementováno. Poznámka: předání ne-PPTX SaveFormat do prs.save(path, format) nedělá ne vyhodit tuto výjimku; tichým způsobem uloží jako PPTX.
Často kladené otázky
Mohu uložit do stejného souboru, který jsem otevřel?
Ano. Uložení na stejnou cestu přepíše původní soubor:
try (Presentation prs = new Presentation("deck.pptx")) {
// modify ...
prs.save("deck.pptx", SaveFormat.PPTX); // overwrites original
}Mohu uložit do OutputStreamu?
Ano. save() metoda přijímá OutputStream:
import java.io.FileOutputStream;
try (Presentation prs = new Presentation();
FileOutputStream fos = new FileOutputStream("output.pptx")) {
prs.save(fos, SaveFormat.PPTX);
}Zachová ukládání obsah, který jsem neupravil?
Ano. Neznámé XML části z původního souboru jsou zachovány doslovně. Knihovna serializuje pouze ty části modelu dokumentu, které rozumí, a předává jakékoli XML, které nepozná.