Converter PPT para PPTX em PHP

Visão geral

PPT é o formato binário legado do PowerPoint, enquanto PPTX é o formato Open XML mais recente. Aspose.Slides for PHP via Java pode carregar um arquivo PPT e salvá‑lo como PPTX sem o Microsoft PowerPoint. Este artigo mostra como converter um arquivo ou um diretório de arquivos e explica o que verificar após a conversão.

Converter um arquivo PPT para PPTX

Carregue o arquivo de origem com a classe Presentation, então chame Presentation::save com SaveFormat::Pptx. O bloco finally libera a apresentação e libera seus recursos.

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

// Carregar a apresentação PPT legada.
$presentation = new Presentation("presentation.ppt");
try {
    // Salvar a apresentação no formato PPTX.
    $presentation->save("presentation.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

A extensão do arquivo não seleciona o formato de saída por si só; o argumento SaveFormat::Pptx faz isso. Mantenha os caminhos de entrada e saída diferentes se precisar preservar o arquivo PPT original.

Converter vários arquivos PPT

O exemplo a seguir converte cada arquivo .ppt em um diretório. Cada arquivo é processado de forma independente, de modo que uma conversão que falhe não interrompa o restante do lote.

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$inputDirectory = "input";
$outputDirectory = "output";
if (!is_dir($outputDirectory) && !mkdir($outputDirectory, 0777, true)) {
    throw new RuntimeException("Cannot create the output directory: " . $outputDirectory);
}

$inputFiles = [];
foreach (new DirectoryIterator($inputDirectory) as $fileInfo) {
    if ($fileInfo->isFile() && strtolower($fileInfo->getExtension()) === "ppt") {
        $inputFiles[] = $fileInfo->getPathname();
    }
}

foreach ($inputFiles as $inputPath) {
    $outputFileName = pathinfo($inputPath, PATHINFO_FILENAME) . ".pptx";
    $outputPath = $outputDirectory . DIRECTORY_SEPARATOR . $outputFileName;
    $presentation = null;

    try {
        $presentation = new Presentation($inputPath);
        $presentation->save($outputPath, SaveFormat::Pptx);
        echo "Converted: " . $inputPath . PHP_EOL;
    } catch (Throwable $exception) {
        fwrite(STDERR, "Failed: " . $inputPath . " (" . $exception->getMessage() . ")" . PHP_EOL);
    } finally {
        if ($presentation !== null) {
            $presentation->dispose();
        }
    }
}

Para cargas de produção, registre a exceção completa, decida se um arquivo de saída existente pode ser sobrescrito e grave os nomes dos arquivos que falharam em uma fila de reprocessamento ou revisão. Arquivos corrompidos, arquivos protegidos por senha abertos sem a senha necessária, caminhos inacessíveis e conteúdo não suportado podem causar falha na conversão. Consulte Password-Protected Presentations para carregar arquivos criptografados.

Fidelidade e recursos legados

A conversão normalmente preserva slides, mestres, layouts, texto, formas, imagens, tabelas e gráficos. No entanto, PPT e PPTX não representam todos os recursos exatamente da mesma forma. Um recurso legado que não tem equivalente em PPTX, ou que não é suportado pela biblioteca, pode ser normalizado, omitido ou exibido de maneira diferente.

Verifique o arquivo convertido quando ele contiver animações, transições, objetos OLE incorporados ou vinculados, controles ActiveX, mídia incorporada, fontes incomuns ou macros VBA. Um arquivo PPTX simples não é um formato habilitado para macros, portanto use um fluxo de trabalho apropriado habilitado para macros quando o VBA precisar permanecer disponível. Também verifique se as fontes necessárias e os recursos externos estão presentes no ambiente onde a apresentação convertida será aberta ou renderizada.

Para documentos importantes, reabra o PPTX gerado programaticamente e inspecione contagens de slides e conteúdo chave, depois compare sua aparência e comportamento da apresentação no visualizador desejado. Não trate uma chamada bem‑sucedida de Presentation::save como prova de que cada recurso legado tem uma representação PPTX exata.

Quando usar PPTX

Use PPTX quando a apresentação for editada nas versões atuais do PowerPoint, trocada com sistemas que trabalham com pacotes Open XML ou armazenada em um formato mais fácil de inspecionar e recuperar do que o binário legado PPT. Mantenha o PPT original como cópia de arquivamento ou de retorno até que a apresentação convertida passe em suas verificações de fidelidade.

Se precisar de PDF, HTML, imagens, XPS ou outro tipo de saída, use as orientações específicas de formato em Convert Presentations to Multiple Formats em vez de supor que todos os destinos preservam recursos editáveis do PowerPoint.

Conversor online

Para um arquivo ocasional ou uma comparação rápida, você pode usar o online PPT to PPTX converter. Para conversões recorrentes, processamento em lote ou tratamento de erros em nível de aplicação, use a API PHP.

Artigos relacionados

Perguntas frequentes

Posso converter PPT para PPTX sem o Microsoft PowerPoint instalado?

Sim. Aspose.Slides for PHP via Java carrega e salva arquivos de apresentação sem exigir o Microsoft PowerPoint.

A conversão de PPT para PPTX preservará todo o conteúdo exatamente?

Ele preserva o conteúdo comum de apresentações, mas a fidelidade exata não é garantida para cada recurso legado ou não suportado. Revise o arquivo gerado quando ele contiver macros, objetos OLE ou ActiveX, mídia, animações especializadas ou fontes incomuns.

Posso converter um arquivo PPT protegido por senha?

Sim, se você fornecer a senha correta ao carregar o arquivo. Uma senha ausente ou incorreta faz com que a operação de carregamento falhe.

Devo excluir o arquivo PPT após a conversão?

Mantenha o original até que você tenha verificado o PPTX nos visualizadores e fluxos de trabalho que são importantes para você. Isso fornece uma cópia de retorno caso um recurso legado seja convertido de maneira diferente.