Întrebări frecvente
Întrebări frecvente
Cum instalez Aspose.Slides FOSS?
Adăugați dependența Maven la pom.xml. Java 21 sau o versiune ulterioară este necesar.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Verificați instalarea:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
try {
System.out.println("Slides: " + prs.getSlides().size());
} finally {
prs.dispose();
}Nu este necesar Microsoft Office sau alt runtime de sistem.
De ce trebuie să apelez dispose() pe Presentation?
Clasa Presentation gestionează resursele interne ale pachetului OPC. Fără a apela dispose(), aceste resurse nu sunt eliberate, ceea ce poate cauza scurgeri de memorie sau blocări de fișiere. Folosiți întotdeauna try-finally:
Presentation prs = new Presentation("input.pptx");
try {
// work here
prs.save("output.pptx", SaveFormat.PPTX);
} finally {
prs.dispose();
}Alternativ, utilizați try-with-resources deoarece Presentation implementează AutoCloseable:
try (Presentation prs = new Presentation("input.pptx")) {
prs.save("output.pptx", SaveFormat.PPTX);
}În ce formate de fișiere pot salva?
Enum-ul SaveFormat definește constante pentru multe formate — PPTX, PDF, HTML, SVG, JPEG, PNG și altele — pentru compatibilitatea API cu ediția comercială. La rulare în această ediție FOSS, toate suprasarcinile save() ignoră argumentul de format și scriu întotdeauna ieșire PPTX. Transmiterea SaveFormat.PDF compilează corect, dar produce un fișier .pptx, nu un .pdf.
import org.aspose.slides.foss.export.SaveFormat;
prs.save("output.pptx", SaveFormat.PPTX);Exportul în formate non-PPTX nu este disponibil funcțional în această ediție. Utilizați SaveFormat.PPTX pentru toate operaţiunile de salvare.
Pot să deschid fișiere .ppt (PowerPoint vechi 97-2003)?
Nu. Doar fișierele .pptx (Office Open XML) sunt acceptate. Formatul binar legacy .ppt nu este gestionat de această bibliotecă.
Cum pot accesa diapozitivele?
Diapozitivele sunt o colecție indexată de la zero accesibilă prin prs.getSlides():
ISlide firstSlide = prs.getSlides().get(0);
int slideCount = prs.getSlides().size();Cum adaug un al doilea diapozitiv?
Utilizați prs.getSlides().addEmptySlide() cu un layout:
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);
}Cum să setez culoarea de fundal a diapozitivului?
Culoarea de fundal a diapozitivului nu este acceptată în această ediție a Aspose.Slides FOSS. Nu există nicio metodă getBackground() pe ISlide sau pe orice altă clasă din această bibliotecă. Fundalul diapozitivului este fixat când prezentarea este creată din șablonul său. O ediție viitoare ar putea adăuga controlul fundalului.
Cum pot folosi NullableBool?
NullableBool este un enum cu trei stări utilizat pentru proprietăți de formatare. Folosiți NullableBool.TRUE (nu true din Java) pentru îngroșare, cursiv și proprietăți similare:
import org.aspose.slides.foss.NullableBool;
fmt.setFontBold(NullableBool.TRUE);
fmt.setFontItalic(NullableBool.FALSE);De ce setarea culorii textului nu are niciun efect?
De asemenea, trebuie să setați fillType la FillType.SOLID înainte de a atribui culoarea:
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));Pot să folosesc diagrame sau SmartArt?
Nu. Graficele, SmartArt, obiectele OLE, animațiile, tranzițiile, hyperlink-urile, macro-urile VBA și semnăturile digitale nu sunt implementate în această ediție și generează UnsupportedOperationException.
Este biblioteca thread‑safe?
Fiecare obiect Presentation este independent. Crearea și utilizarea de instanțe separate Presentation din fire de execuție separate este sigură, atâta timp cât nu partajați un singur obiect Presentation între fire fără sincronizare externă.
Cum pot încorpora o imagine?
Citește octeții imaginii și adaugă-i la prs.getImages(), apoi creează un 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);