Domande frequenti
Domande Frequenti
Come installo Aspose.Slides FOSS?
Aggiungi la dipendenza Maven al tuo pom.xml. È richiesto Java 21 o versioni successive.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Verifica l’installazione:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
try {
System.out.println("Slides: " + prs.getSlides().size());
} finally {
prs.dispose();
}Non è necessario Microsoft Office né altri runtime di sistema.
Perché devo chiamare dispose() su Presentation?
La classe Presentation gestisce le risorse interne del pacchetto OPC. Senza chiamare dispose(), tali risorse non vengono rilasciate, il che può causare perdite di memoria o blocchi di file. Usa sempre try-finally:
Presentation prs = new Presentation("input.pptx");
try {
// work here
prs.save("output.pptx", SaveFormat.PPTX);
} finally {
prs.dispose();
}In alternativa, usa try-with-resources poiché Presentation implementa AutoCloseable:
try (Presentation prs = new Presentation("input.pptx")) {
prs.save("output.pptx", SaveFormat.PPTX);
}Quali formati di file posso salvare?
L’enum SaveFormat definisce costanti per molti formati — PPTX, PDF, HTML, SVG, JPEG, PNG e altri — per la compatibilità API con l’edizione commerciale. In fase di esecuzione in questa edizione FOSS, tutti gli overload save() ignorano l’argomento del formato e scrivono sempre output PPTX. Passare SaveFormat.PDF compila correttamente ma produce un file .pptx, non un .pdf.
import org.aspose.slides.foss.export.SaveFormat;
prs.save("output.pptx", SaveFormat.PPTX);L’esportazione in formati non PPTX non è disponibile funzionalmente in questa edizione. Usa SaveFormat.PPTX per tutte le operazioni di salvataggio.
Posso aprire i file .ppt (vecchi PowerPoint 97-2003)?
No. Sono supportati solo i file .pptx (Office Open XML). Il formato binario legacy .ppt non è gestito da questa libreria.
Come accedo alle diapositive?
Le diapositive sono una raccolta indicizzata a zero accessibile tramite prs.getSlides():
ISlide firstSlide = prs.getSlides().get(0);
int slideCount = prs.getSlides().size();Come aggiungo una seconda diapositiva?
Usa prs.getSlides().addEmptySlide() con 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);
}Come impostare il colore di sfondo della diapositiva?
Il colore di sfondo della diapositiva non è supportato in questa edizione di Aspose.Slides FOSS. Non esiste il metodo getBackground() su ISlide o su qualsiasi altra classe in questa libreria. Lo sfondo della diapositiva è fisso quando la presentazione è creata dal suo modello. Una futura edizione potrebbe aggiungere il controllo dello sfondo.
Come uso NullableBool?
NullableBool è un enum a tre stati usato per le proprietà di formattazione. Usa NullableBool.TRUE (non quello di Java true) per grassetto, corsivo e proprietà simili:
import org.aspose.slides.foss.NullableBool;
fmt.setFontBold(NullableBool.TRUE);
fmt.setFontItalic(NullableBool.FALSE);Perché impostare il colore del testo non ha alcun effetto?
È necessario impostare anche fillType su FillType.SOLID prima di assegnare il colore:
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));Posso usare grafici o SmartArt?
No. Grafici, SmartArt, oggetti OLE, animazioni, transizioni, collegamenti ipertestuali, macro VBA e firme digitali non sono implementati in questa edizione e generano UnsupportedOperationException.
La libreria è thread‑safe?
Ogni oggetto Presentation è indipendente. Creare e utilizzare istanze separate di Presentation da thread distinti è sicuro, a patto di non condividere un singolo oggetto Presentation tra i thread senza sincronizzazione esterna.
Come inserisco un’immagine?
Leggi i byte dell’immagine e aggiungili a prs.getImages(), quindi crea 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);