Perguntas Frequentes
Perguntas Frequentes
Como instalo o Aspose.Slides FOSS?
Adicione a dependência Maven ao seu pom.xml. Java 21 ou posterior é necessário.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Verifique a instalação:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
try {
System.out.println("Slides: " + prs.getSlides().size());
} finally {
prs.dispose();
}Nenhum Microsoft Office ou outro runtime de sistema é necessário.
Por que devo chamar dispose() no Presentation?
A classe Presentation gerencia recursos internos do pacote OPC. Sem chamar dispose(), esses recursos não são liberados, o que pode causar vazamentos de memória ou bloqueios de arquivos. Sempre use try-finally:
Presentation prs = new Presentation("input.pptx");
try {
// work here
prs.save("output.pptx", SaveFormat.PPTX);
} finally {
prs.dispose();
}Alternativamente, use try-with-resources já que Presentation implementa AutoCloseable:
try (Presentation prs = new Presentation("input.pptx")) {
prs.save("output.pptx", SaveFormat.PPTX);
}Em quais formatos de arquivo posso salvar?
O enum SaveFormat define constantes para muitos formatos — PPTX, PDF, HTML, SVG, JPEG, PNG, e outros — para compatibilidade de API com a edição comercial. Em tempo de execução nesta edição FOSS, todas as sobrecargas save() ignoram o argumento de formato e sempre gravam saída PPTX. Passar SaveFormat.PDF compila corretamente, mas produz um arquivo .pptx, não um .pdf.
import org.aspose.slides.foss.export.SaveFormat;
prs.save("output.pptx", SaveFormat.PPTX);A exportação para formatos que não sejam PPTX não está funcionalmente disponível nesta edição. Use SaveFormat.PPTX para todas as operações de salvamento.
Posso abrir .ppt (PowerPoint antigo 97-2003) arquivos?
Não. Apenas arquivos .pptx (Office Open XML) são suportados. O formato binário legado .ppt não é tratado por esta biblioteca.
Como acesso os slides?
Slides são uma coleção indexada a partir de zero acessível via prs.getSlides():
ISlide firstSlide = prs.getSlides().get(0);
int slideCount = prs.getSlides().size();Como adiciono um segundo slide?
Use prs.getSlides().addEmptySlide() com um 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);
}Como defino a cor de fundo do slide?
A cor de fundo do slide não é suportada nesta edição do Aspose.Slides FOSS. Não há método getBackground() em ISlide ou em qualquer outra classe desta biblioteca. O fundo do slide é fixo quando a apresentação é criada a partir de seu modelo. Uma edição futura pode adicionar controle de fundo.
Como usar NullableBool?
NullableBool é um enum de três estados usado para propriedades de formatação. Use NullableBool.TRUE (não o true do Java) para negrito, itálico e propriedades semelhantes:
import org.aspose.slides.foss.NullableBool;
fmt.setFontBold(NullableBool.TRUE);
fmt.setFontItalic(NullableBool.FALSE);Por que definir a cor do texto não tem efeito?
Você também deve definir fillType para FillType.SOLID antes de atribuir a cor:
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 usar gráficos ou SmartArt?
Obs. Gráficos, SmartArt, objetos OLE, animações, transições, hyperlinks, macros VBA e assinaturas digitais não são implementados nesta edição e geram UnsupportedOperationException.
A biblioteca é thread‑safe?
Cada objeto Presentation é independente. Criar e usar instâncias separadas de Presentation a partir de threads distintas é seguro, desde que você não compartilhe um único objeto Presentation entre threads sem sincronização externa.
Como incorporo uma imagem?
Leia os bytes da imagem e adicione‑os a prs.getImages(), então crie um 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);