Jak uložit prezentace v Java

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átHodnota výčtuPodporováno
PPTX (Office Open XML)SaveFormat.PPTXAno
PDFN/ANe
HTMLN/ANe
SVGN/ANe
PNG / JPEGN/ANe
ODP (OpenDocument)N/ANe

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á.


Viz také

 Čeština