Converter PDF para Microsoft PowerPoint em C++

Visão Geral

Este artigo explica como converter formatos PDF para PowerPoint usando C++. Ele cobre os seguintes tópicos.

Formato: PPTX

Formato: Formato Microsoft PowerPoint PPTX

Outros tópicos abordados por este artigo.

Conversões de PDF para PowerPoint em C++

Aspose.PDF for C++ permite acompanhar o progresso da conversão de PDF para PPTX.

Durante a conversão de PDF para PPTX, o texto é renderizado como Texto onde você pode selecioná-lo/atualizá-lo. Por favor, note que para converter arquivos PDF para o formato PPTX, a Aspose.PDF fornece uma classe chamada PptxSaveOptions. Um objeto da classe PptxSaveOptions é passado como segundo argumento para o método Document.Save(..) method. O seguinte trecho de código mostra o processo para converter arquivos PDF em formato PPTX.

Conversão simples de PDF para PPTX com Aspose.PDF para C++

Para converter PDF para PPTX, a Aspose.PDF para C++ recomenda usar as seguintes etapas de código.

Etapas: Converter PDF para PPTX em C++ | Etapas: Converter PDF para formato PowerPoint PPTX em C++

  1. Crie uma instância da classe Document.
  2. Crie uma instância da classe PptxSaveOptions.
  3. Use o método Save do objeto Document para salvar o PDF como PPTX.
void ConvertPDFtoPPTX()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String para nome do caminho
    String _dataDir("C:\\Samples\\Conversion\\");

    // String para nome do arquivo
    String infilename("JSON Fundamenals.pdf");
    String outfilename("JSON Fundamenals.pptx");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    // Salvar a saída no formato PPTX
    document->Save(_dataDir + outfilename, SaveFormat::Pptx);
    std::clog << __func__ << ": Finish" << std::endl;
}

Converter PDF para PPTX com Slides como Imagens

Caso você precise converter um PDF pesquisável para PPTX como imagens em vez de texto selecionável, o Aspose.PDF fornece tal recurso por meio da classe Aspose.Pdf.PptxSaveOptions. Para conseguir isso, defina a propriedade SlidesAsImages da classe PptxSaveOptios para ’true’, como mostrado no exemplo de código a seguir.

void ConvertPDFtoPPTX_SlidesAsImages()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String para nome do caminho
    String _dataDir("C:\\Samples\\Conversion\\");

    // String para nome do arquivo
    String infilename("JSON Fundamenals.pdf");
    String outfilename("JSON Fundamenals.pptx");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    auto pptxOptions = MakeObject<PptxSaveOptions>();
    pptxOptions->set_SlidesAsImages(true);

    // Salvar a saída no formato PPTX
    document->Save(_dataDir + outfilename, pptxOptions);
    std::clog << __func__ << ": Finish" << std::endl;
}

Detalhes de Progresso da Conversão para PPTX

O Aspose.PDF para C++ permite que você acompanhe o progresso da conversão de PDF para PPTX. O Aspose.Pdf.PptxSaveOptions class fornece a propriedade CustomProgressHandler que pode ser especificada para um método personalizado para rastrear o progresso da conversão conforme mostrado no exemplo de código a seguir.

void ConvertPDFtoPPTX_ProgressDetailConversion()
{
    std::clog << __func__ << ": Iniciar" << std::endl;
    // String para o nome do caminho
    String _dataDir("C:\\Samples\\Conversion\\");

    // String para o nome do arquivo
    String infilename("JSON Fundamenals.pdf");
    String outfilename("JSON Fundamenals.pptx");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    auto pptxOptions = MakeObject<PptxSaveOptions>();
    //pptxOptions->set_SlidesAsImages(true);
    //Especificar Manipulador de Progresso Personalizado
    pptxOptions->set_CustomProgressHandler(ShowProgressOnConsole);

    // Salvar a saída no formato PPTX
    document->Save(_dataDir + outfilename, pptxOptions);
    std::clog << __func__ << ": Terminar" << std::endl;
}

A seguir está o método personalizado para exibir a conversão de progresso.

void ShowProgressOnConsole(SharedPtr<UnifiedSaveOptions::ProgressEventHandlerInfo> eventInfo)
{
    switch (eventInfo->EventType)
    {
    case ProgressEventType::TotalProgress:
    std::clog << DateTime::get_Now().get_TimeOfDay() << " - Progresso da conversão : " << eventInfo->Value << std::endl;
    break;
    case ProgressEventType::ResultPageCreated:
    std::clog << DateTime::get_Now().get_TimeOfDay() << " - Página de resultado " << eventInfo->Value << " de " << eventInfo->MaxValue << " layout criado." << std::endl;
    break;
    case ProgressEventType::ResultPageSaved:
    std::clog << DateTime::get_Now().get_TimeOfDay() << " - Página de resultado " << eventInfo->Value << " de " << eventInfo->MaxValue << " exportada." << std::endl;
    break;
    case ProgressEventType::SourcePageAnalysed:
    std::clog << DateTime::get_Now().get_TimeOfDay() << " - Página de origem " << eventInfo->Value << " de " << eventInfo->MaxValue << " analisada." << std::endl;
    break;
    default:
    break;
    }
}

Veja Também

Este artigo também cobre estes tópicos. Os códigos são os mesmos acima.

Formato: PowerPoint

Format: Formato Microsoft PowerPoint PPTX

Format: PPTX