Često postavljana pitanja
Često postavljana pitanja
Kako da instaliram Aspose.Slides FOSS?
Dodajte Maven zavisnost u svoj pom.xml. Potreban je Java 21 ili noviji.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Proverite 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 sistemski runtime.
Zašto moram da pozovem dispose() na Presentation?
Klasa Presentation upravlja internim OPC paketnim resursima. Bez pozivanja dispose(), ti resursi se ne oslobađaju, što može izazvati curenje memorije ili zaključavanje fajla. Uvek koristite try-finally:
Presentation prs = new Presentation("input.pptx");
try {
// work here
prs.save("output.pptx", SaveFormat.PPTX);
} finally {
prs.dispose();
}Alternativno, koristite try-with-resources pošto Presentation implementira AutoCloseable:
try (Presentation prs = new Presentation("input.pptx")) {
prs.save("output.pptx", SaveFormat.PPTX);
}U koje formate fajlova mogu da sačuvam?
Enum SaveFormat definiše konstante za mnoge formate — PPTX, PDF, HTML, SVG, JPEG, PNG i druge — za API kompatibilnost sa komercijalnom verzijom. U vreme izvršavanja u ovoj FOSS verziji, sva preopterećenja save() ignorišu argument formata i uvek pišu PPTX izlaz. Prosleđivanje SaveFormat.PDF se kompajlira ispravno, ali proizvodi .pptx fajl, 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 ovom izdanju. Koristite SaveFormat.PPTX za sve operacije čuvanja.
Могу ли да отворим .ppt (стари PowerPoint 97-2003) датотеке?
Ne. Podržani su samo .pptx (Office Open XML) fajlovi. Legacy .ppt binarni format nije podržan od strane ove biblioteke.
Kako da pristupim slajdovima?
Slajdovi su kolekcija indeksirana od nule kojoj se može pristupiti putem prs.getSlides():
ISlide firstSlide = prs.getSlides().get(0);
int slideCount = prs.getSlides().size();Kako da dodam drugi slajd?
Koristite prs.getSlides().addEmptySlide() sa 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 da postavim boju pozadine slajda?
Boja pozadine slajda nije podržana u ovom izdanju Aspose.Slides FOSS. Ne postoji metoda getBackground() na ISlide ili bilo kojoj drugoj klasi u ovoj biblioteci. Pozadina slajda je fiksirana kada se prezentacija kreira iz svog šablona. Buduće izdanje može dodati kontrolu pozadine.
Kako da koristim NullableBool?
NullableBool je trostani 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 efekta?
Takođe morate postaviti fillType na FillType.SOLID pre nego što dodelite boju:
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 da koristim grafikone ili SmartArt?
Ne. Grafikoni, SmartArt, OLE objekti, animacije, tranzicije, hiperveze, VBA makroi i digitalni potpisi nisu implementirani u ovom izdanju i izazivaju UnsupportedOperationException.
Da li je biblioteka thread‑safe?
Svaki Presentation objekat je nezavisan. Kreiranje i korišćenje zasebnih Presentation instanci iz odvojenih niti je bezbedno sve dok ne delite jedan Presentation objekat između niti bez spoljne sinhronizacije.
Kako da ugradim sliku?
Pročitajte bajtove slike i dodajte ih u prs.getImages(), zatim kreirajte 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);