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āts | Enum vērtība | Atbalstīts |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.PPTX | Jā |
| N/A | Nē | |
| HTML | N/A | Nē |
| SVG | N/A | Nē |
| PNG / JPEG | N/A | Nē |
| ODP (OpenDocument) | N/A | Nē |
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.