Često postavljana pitanja
Često postavljana pitanja
Kako instalirati Aspose.Slides FOSS?
Dodajte Maven ovisnost u svoj pom.xml. Java 21 ili novija je potrebna.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Provjerite instalaciju:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
try {
System.out.println("Slides: " + prs.getSlides().size());
} finally {
prs.dispose();
}Nije potreban Microsoft Office niti drugi sustavski runtime.
Zašto moram pozvati dispose() na Presentation?
Klasa Presentation upravlja internim OPC paketnim resursima. Bez pozivanja dispose(), ti resursi se ne oslobađaju, što može uzrokovati curenje memorije ili zaključavanje datoteka. Uvijek koristite try-finally:
Presentation prs = new Presentation("input.pptx");
try {
// work here
prs.save("output.pptx", SaveFormat.PPTX);
} finally {
prs.dispose();
}Alternativno, upotrijebite try-with-resources jer Presentation implementira AutoCloseable:
try (Presentation prs = new Presentation("input.pptx")) {
prs.save("output.pptx", SaveFormat.PPTX);
}U koje formate datoteka mogu spremiti?
SaveFormat enum definira konstante za mnoge formate — PPTX, PDF, HTML, SVG, JPEG, PNG i druge — za API kompatibilnost s komercijalnim izdanjem. U vrijeme izvođenja u ovoj FOSS izdaji, sve save() preopterećenja ignoriraju argument formata i uvijek pišu PPTX izlaz. Prosljeđivanje SaveFormat.PDF ispravno se kompilira, ali proizvodi .pptx datoteku, a ne .pdf.
import org.aspose.slides.foss.export.SaveFormat;
prs.save("output.pptx", SaveFormat.PPTX);Izvoz u formate koji nisu PPTX funkcionalno nije dostupan u ovoj ediciji. Koristite SaveFormat.PPTX za sve operacije spremanja.
Mogu li otvoriti .ppt (stare PowerPoint 97-2003) datoteke?
Ne. Podržane su samo .pptx (Office Open XML) datoteke. Legacy .ppt binarni format nije podržan od strane ove biblioteke.
Kako mogu pristupiti slajdovima?
Slajdovi su kolekcija indeksirana od nule, dostupna putem prs.getSlides():
ISlide firstSlide = prs.getSlides().get(0);
int slideCount = prs.getSlides().size();Kako dodati drugi slajd?
Koristite prs.getSlides().addEmptySlide() s rasporedom:
try (Presentation prs = new Presentation()) {
ILayoutSlide layout = prs.getLayoutSlides().get(0);
prs.getSlides().addEmptySlide(layout);
ISlide slide2 = prs.getSlides().get(1);
prs.save("two-slides.pptx", SaveFormat.PPTX);
}Kako postaviti boju pozadine slajda?
Boja pozadine slajda nije podržana u ovoj izdaji Aspose.Slides FOSS. Ne postoji metoda getBackground() na ISlide ili bilo kojoj drugoj klasi u ovoj biblioteci. Pozadina slajda je fiksna kada se prezentacija kreira iz svog predloška. Buduća izdaja može dodati kontrolu pozadine.
Kako koristim NullableBool?
NullableBool je trostanični enum koji se koristi za svojstva formatiranja. Koristite NullableBool.TRUE (ne Java‑ov true) za podebljano, kurziv i slična svojstva:
import org.aspose.slides.foss.NullableBool;
fmt.setFontBold(NullableBool.TRUE);
fmt.setFontItalic(NullableBool.FALSE);Zašto postavljanje boje teksta nema učinka?
Također morate postaviti fillType na FillType.SOLID prije dodjele boje:
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.drawing.Color;
fmt.getFillFormat().setFillType(FillType.SOLID);
fmt.getFillFormat().getSolidFillColor().setColor(Color.fromArgb(255, 200, 0, 0));Mogu li koristiti grafikone ili SmartArt?
Ne. Grafikoni, SmartArt, OLE objekti, animacije, prijelazi, hiperveze, VBA makroi i digitalni potpisi nisu implementirani u ovoj ediciji i uzrokuju UnsupportedOperationException.
Je li biblioteka thread-safe?
Svaki Presentation objekt je neovisan. Stvaranje i korištenje zasebnih Presentation instanci iz zasebnih niti je sigurno sve dok ne dijelite jedan Presentation objekt među nitima bez vanjske sinkronizacije.
Kako umetnuti sliku?
Pročitajte bajtove slike i dodajte ih u prs.getImages(), zatim stvorite PictureFrame:
import org.aspose.slides.foss.ShapeType;
byte[] imageData = java.nio.file.Files.readAllBytes(
java.nio.file.Paths.get("logo.png")
);
IPPImage image = prs.getImages().addImage(imageData);
slide.getShapes().addPictureFrame(ShapeType.RECTANGLE, 50, 50, 200, 150, image);