Domande frequenti

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);
}

In quali formati di file posso salvare?

Solo PPTX è supportato:

import org.aspose.slides.foss.export.SaveFormat;

prs.save("output.pptx", SaveFormat.PPTX);

L’esportazione in PDF, HTML, SVG o formati immagine (PNG, JPEG) non è disponibile in questa edizione.


Posso aprire .ppt (vecchi PowerPoint 97-2003) file?

No. Solo i file .pptx (Office Open XML) sono supportati. 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 imposto 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 viene creata dal suo modello. Una futura edizione potrebbe aggiungere il controllo dello sfondo.


Come utilizzo 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?

Devi anche impostare 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, purché non si condivida 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);

Vedi anche

 Italiano