Kā saglabāt prezentācijas Java valodā

Kā saglabāt prezentācijas Java valodā

Aspose.Slides FOSS for Java saglabā prezentācijas ekskluzīvi .pptx formātā, izmantojot prs.save(path, SaveFormat.PPTX). Šajā ceļvedī aplūkots pareizais saglabāšanas modelis, saglabāšana citā ceļā un biežāk sastopamās saglabāšanas kļūdas.

Rokasgrāmata soli pa solim

1. solis: Pievienojiet Maven atkarību

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

Solis 2: Atvērt vai izveidot prezentāciju

Vienmēr izmantojiet try-with-resources. Saglabāšanas izsaukums jāveic try blokā.

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);
}

3. solis: Saglabāt pēc visām izmaiņām

Novietojiet save() izsaukumu kā pēdējo paziņojumu try blokā, pēc tam, kad visas izmaiņas ir pabeigtas.

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);
}

Solis 4: Saglabāt citā ceļā

Norādiet citu izvades ceļu, lai izveidotu jaunu failu, nemainot oriģinālu:

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

Fails template.pptx netiek modificēts; customized.pptx tiek izveidots (vai pārrakstīts, ja tas jau pastāv).


5. solis: pārbaudiet izvadi

Pēc tam, kad try bloks iziet, fails ir pabeigts un aizvērts. Pārbaudiet, vai tas pastāv:

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");

Atbalstīts saglabāšanas formāts

FormātsEnum vērtībaAtbalstīts
PPTX (Office Open XML)SaveFormat.PPTX
PDFN/A
HTMLN/A
SVGN/A
PNG / JPEGN/A
ODP (OpenDocument)N/A

Tikai PPTX ir pilnībā atbalstīts. Ja kāda cita SaveFormat vērtība tiek nodota prs.save(path, format), tā klusi saglabājas kā PPTX — netiek izsviesta izņēmuma kļūda, un formāta arguments tiek ignorēts. UnsupportedOperationException tiek izsviests tikai ar prs.save(ISaveOptions options), nevis ar formāta balstītajiem pārlādējumiem.


Biežas problēmas un risinājumi

java.io.IOException: Permission denied

Izvades fails ir atvērts citā lietojumprogrammā (piemēram, PowerPoint ir atvēris failu). Aizveriet failu citās lietojumprogrammās pirms saglabāšanas.

Fails tiek izveidots, bet izskatās tukšs vai bojāts

Nodrošiniet, lai prs.save() tiktu izsaukts try blokā, nevis pēc tā. Pēc try‑with‑resources bloka iziešanas, Presentation objekts tiek atbrīvots, un turpmākie izsaukumi neizdosies.

UnsupportedOperationException saglabājot

Šis notiek, lietojot prs.save(ISaveOptions options)ISaveOptions‑balstītā pārsniegšana nav īstenota. Piezīme: ne‑PPTX SaveFormat nodošana prs.save(path, format) neizsauc šo izņēmumu; tas klusi saglabā kā PPTX.


Biežāk uzdotie jautājumi

Vai varu saglabāt tajā pašā failā, ko atvēru?

Jā. Saglabāšana tajā pašā ceļā pārraksta oriģinālo failu:

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

Vai es varu saglabāt uz OutputStream?

Jā. save() metode pieņem OutputStream:

import java.io.FileOutputStream;

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

Vai saglabāšana saglabā saturu, ko neesmu modificējis?

Jā. Nezināmās XML daļas no sākotnējā faila tiek saglabātas burtiski. Bibliotēka tikai serializē dokumenta modeļa daļas, kuras tā saprot, un caurļauj jebkuru XML, ko tā neatpazīst.


Skatīt arī

 Latviešu