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). Šis ceļvedis aptver pareizo saglabāšanas modeli, saglabāšanu 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>

2. solis: 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 visi modificējumi ir pabeigti.

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 pilnīgs 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ītā 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. Jebkuras citas SaveFormat vērtības nodošana prs.save(path, format) klusīgi saglabā kā PPTX — netiek izsviests izņēmums, un formāta arguments tiek ignorēts. UnsupportedOperationException tiek izsviests tikai ar prs.save(ISaveOptions options), nevis ar formāta balstītajiem pārsniegumiem.


Biežāk sastopamās problēmas un to 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 ir izveidots, bet izskatās tukšs vai bojāts

Pārliecinieties, ka prs.save() tiek izsaukts try blokā, nevis pēc tā. Pēc tam, kad try-with-resources bloks beidzas, Presentation objekts tiek atbrīvots, un turpmākie izsaukumi neizdosies.

UnsupportedOperationException saglabājot

Tas 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) ne izsauc šo izņēmumu; tas klusi saglabā kā PPTX.


Biežāk uzdotie jautājumi

Vai es 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 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