Como salvar apresentações em Java

Como salvar apresentações em Java

Aspose.Slides FOSS for Java salva apresentações exclusivamente no formato .pptx usando prs.save(path, SaveFormat.PPTX). Este guia cobre o padrão correto de salvamento, salvar em um caminho diferente e erros comuns relacionados ao salvamento.

Guia passo a passo

Passo 1: Adicione a dependência Maven

<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>

Etapa 2: Abrir ou Criar uma Apresentação

Sempre use try-with-resources. A chamada de salvamento deve ocorrer dentro do bloco try.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;

// Create new
try (Presentation prs = new Presentation()) {
    prs.save("new.pptx", SaveFormat.PPTX);
}

// Open existing
try (Presentation prs = new Presentation("input.pptx")) {
    prs.save("output.pptx", SaveFormat.PPTX);
}

Etapa 3: Salvar após todas as modificações

Coloque a chamada save() como a última instrução dentro do bloco try, após todas as modificações serem concluídas.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    ISlide slide = prs.getSlides().get(0);
    IAutoShape shape = slide.getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 300, 100
    );
    shape.addTextFrame("Hello, World!");
    prs.save("output.pptx", SaveFormat.PPTX);
}

Etapa 4: Salvar em um caminho diferente

Passe um caminho de saída diferente para criar um novo arquivo sem modificar o original:

try (Presentation prs = new Presentation("template.pptx")) {
    // modify ...
    prs.save("customized.pptx", SaveFormat.PPTX);
}

O arquivo template.pptx não é modificado; customized.pptx é criado (ou sobrescrito se já existir).


Etapa 5: Verificar a Saída

Depois que o bloco try é encerrado, o arquivo está completo e fechado. Verifique se ele existe:

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

Path output = Paths.get("output.pptx");
System.out.println("Saved: " + Files.exists(output)
    + ", size: " + Files.size(output) + " bytes");

Formato de Salvamento Suportado

FormatoValor EnumSuportado
PPTX (Office Open XML)SaveFormat.PPTXSim
PDFN/ANão
HTMLN/ANão
SVGN/ANão
PNG / JPEGN/ANão
ODP (OpenDocument)N/ANão

Apenas PPTX é totalmente suportado. Passar qualquer outro SaveFormat valor para prs.save(path, format) salva silenciosamente como PPTX — nenhuma exceção é lançada e o argumento de formato é ignorado. UnsupportedOperationException é lançada apenas por prs.save(ISaveOptions options), não pelas sobrecargas baseadas em formato.


Problemas Comuns e Soluções

java.io.IOException: Permission denied

O arquivo de saída está aberto em outro aplicativo (por exemplo, o PowerPoint tem o arquivo aberto). Feche o arquivo em outros aplicativos antes de salvar.

Arquivo é criado, mas aparece vazio ou corrompido

Certifique‑se de que prs.save() seja chamado dentro do bloco try, não depois dele. Após a saída do bloco try‑with‑resources, o objeto Presentation é descartado e chamadas subsequentes falharão.

UnsupportedOperationException ao salvar

Isso ocorre ao usar prs.save(ISaveOptions options) — a sobrecarga baseada em ISaveOptions não está implementada. Observação: passar um SaveFormat que não seja PPTX para prs.save(path, format) não lança essa exceção; ele salva silenciosamente como PPTX.


Perguntas Frequentes

Posso salvar no mesmo arquivo que abri?

Sim. Salvar no mesmo caminho sobrescreve o arquivo original:

try (Presentation prs = new Presentation("deck.pptx")) {
    // modify ...
    prs.save("deck.pptx", SaveFormat.PPTX);  // overwrites original
}

Posso salvar em um OutputStream?

Sim. O método save() aceita um OutputStream:

import java.io.FileOutputStream;

try (Presentation prs = new Presentation();
     FileOutputStream fos = new FileOutputStream("output.pptx")) {
    prs.save(fos, SaveFormat.PPTX);
}

Salvar preserva o conteúdo que eu não modifiquei?

Sim. As partes XML desconhecidas do arquivo original são preservadas literalmente. A biblioteca apenas serializa as partes do modelo de documento que entende e passa adiante qualquer XML que não reconhece.


Veja Também

 Português