Ako uložiť prezentácie v Java

Ako uložiť prezentácie v Java

Aspose.Slides FOSS for Java saves presentations exclusively to .pptx formát pomocou prs.save(path, SaveFormat.PPTX). Tento sprievodca pokrýva správny vzor ukladania, ukladanie do inej cesty a bežné chyby súvisiace s ukladaním.

Postupný návod

Krok 1: Pridať Maven závislosť

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

Krok 2: Otvorte alebo vytvorte prezentáciu

Vždy používajte try-with-resources. Volanie ukladania musí byť vnútri 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žte po všetkých úpravách

Umiestnite save() volanie ako posledný príkaz v bloku try, po dokončení všetkých ú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žte na inú cestu

Zadajte inú výstupnú cestu, aby ste vytvorili nový súbor bez úpravy originálu:

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

Súbor template.pptx nie je upravený; customized.pptx je vytvorený (alebo prepísaný, ak už existuje).


Krok 5: Overte výstup

Po opustení bloku try je súbor kompletný a zatvorený. Skontrolujte, ž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 ukladania

FormátHodnota výčtuPodporované
PPTX (Office Open XML)SaveFormat.PPTXÁno
PDFN/ANie
HTMLN/ANie
SVGN/ANie
PNG / JPEGN/ANie
ODP (OpenDocument)N/ANie

Iba PPTX je plne podporovaný. Odovzdanie akéhokoľvek iného SaveFormat hodnotu do prs.save(path, format) tichým spôsobom ukladá ako PPTX — nevyhodí sa žiadna výnimka a argument formátu sa ignoruje. UnsupportedOperationException je vyhadzovaná iba prs.save(ISaveOptions options), nie formátovo založenými preťaženými verziami.


Bežné problémy a riešenia

java.io.IOException: Permission denied

Výstupný súbor je otvorený v inej aplikácii (napr. PowerPoint má súbor otvorený). Zavrite súbor v ostatných aplikáciách pred uložením.

Súbor je vytvorený, ale vyzerá prázdny alebo poškodený

Zabezpečte prs.save() sa volá vnútri bloku try, nie po ňom. Po ukončení bloku try-with-resources, Presentation objekt je uvoľnený a následné volania zlyhajú.

UnsupportedOperationException pri ukladaní

Toto sa vyskytne pri použití prs.save(ISaveOptions options)ISaveOptions-založené preťaženie nie je implementované. Poznámka: odovzdanie ne-PPTX SaveFormat do prs.save(path, format) vykonáva nie vyhodiť túto výnimku; ticho ukladá ako PPTX.


Často kladené otázky

Môžem uložiť do toho istého súboru, ktorý som otvoril?

Áno. Uloženie do rovnakej cesty prepíše pôvodný súbor:

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

Môžem uložiť do OutputStreamu?

Áno. save() metóda prijíma an OutputStream:

import java.io.FileOutputStream;

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

Ukladanie zachová obsah, ktorý som nezmenil?

Áno. Neznáme XML časti z pôvodného súboru sú zachované presne tak, ako sú. Knižnica serializuje iba časti modelu dokumentu, ktoré rozumie, a ostatné XML, ktoré nepozná, jednoducho prechádza.


Pozri tiež

 Slovenčina