Convert PDF to Microsoft PowerPoint in C++

Overview

Эта статья объясняет, как конвертировать PDF в форматы PowerPoint с использованием C++. Она охватывает следующие темы.

Формат: PPTX

Формат: Формат Microsoft PowerPoint PPTX

Другие темы, рассмотренные в этой статье.

Преобразования PDF в PowerPoint на C++

Aspose.PDF для C++ позволяет отслеживать процесс преобразования PDF в PPTX.

Во время преобразования PDF в PPTX текст отображается как текст, который вы можете выбрать/обновить. Пожалуйста, обратите внимание, что для преобразования PDF-файлов в формат PPTX Aspose.PDF предоставляет класс с именем PptxSaveOptions. Объект класса PptxSaveOptions передается в качестве второго аргумента методу Document.Save(..) method. Следующий фрагмент кода демонстрирует процесс преобразования PDF-файлов в формат PPTX.

Простое преобразование PDF в PPTX с использованием Aspose.PDF для C++

Для преобразования PDF в PPTX, Aspose.PDF для C++ советует использовать следующие шаги кода.

Шаги: Преобразование PDF в PPTX на C++ | Шаги: Преобразование PDF в формат PowerPoint PPTX на C++

  1. Создайте экземпляр класса Document.
  2. Создайте экземпляр класса PptxSaveOptions.
  3. Используйте метод Save объекта Document, чтобы сохранить PDF как PPTX.
void ConvertPDFtoPPTX()
{
    std::clog << __func__ << ": Start" << std::endl;
    // Строка для имени пути
    String _dataDir("C:\\Samples\\Conversion\\");

    // Строка для имени файла
    String infilename("JSON Fundamenals.pdf");
    String outfilename("JSON Fundamenals.pptx");

    // Открыть документ
    auto document = MakeObject<Document>(_dataDir + infilename);

    // Сохранить вывод в формате PPTX
    document->Save(_dataDir + outfilename, SaveFormat::Pptx);
    std::clog << __func__ << ": Finish" << std::endl;
}

Конвертация PDF в PPTX с слайдами в виде изображений

Если вам нужно преобразовать PDF с возможностью поиска в PPTX как изображения вместо выделяемого текста, Aspose.PDF предоставляет такую возможность через класс Aspose.Pdf.PptxSaveOptions. Чтобы достичь этого, установите свойство SlidesAsImages класса PptxSaveOptios в ’true’, как показано в следующем примере кода.

void ConvertPDFtoPPTX_SlidesAsImages()
{
    std::clog << __func__ << ": Start" << std::endl;
    // Строка для имени пути
    String _dataDir("C:\\Samples\\Conversion\\");

    // Строка для имени файла
    String infilename("JSON Fundamenals.pdf");
    String outfilename("JSON Fundamenals.pptx");

    // Открыть документ
    auto document = MakeObject<Document>(_dataDir + infilename);

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

    // Сохранить вывод в формате PPTX
    document->Save(_dataDir + outfilename, pptxOptions);
    std::clog << __func__ << ": Finish" << std::endl;
}

Детали прогресса конвертации в PPTX

Aspose.PDF для C++ позволяет отслеживать прогресс конвертации PDF в PPTX. The Aspose.Pdf.PptxSaveOptions класс предоставляет свойство CustomProgressHandler, которое можно указать для пользовательского метода отслеживания хода конверсии, как показано в следующем примере кода.

void ConvertPDFtoPPTX_ProgressDetailConversion()
{
    std::clog << __func__ << ": Start" << std::endl;
    // Строка для имени пути
    String _dataDir("C:\\Samples\\Conversion\\");

    // Строка для имени файла
    String infilename("JSON Fundamenals.pdf");
    String outfilename("JSON Fundamenals.pptx");

    // Открыть документ
    auto document = MakeObject<Document>(_dataDir + infilename);

    auto pptxOptions = MakeObject<PptxSaveOptions>();
    //pptxOptions->set_SlidesAsImages(true);
    //Указать пользовательский обработчик прогресса
    pptxOptions->set_CustomProgressHandler(ShowProgressOnConsole);

    // Сохранить вывод в формате PPTX
    document->Save(_dataDir + outfilename, pptxOptions);
    std::clog << __func__ << ": Finish" << std::endl;
}

Следующий метод предназначен для отображения процесса конверсии.

void ShowProgressOnConsole(SharedPtr<UnifiedSaveOptions::ProgressEventHandlerInfo> eventInfo)
{
    switch (eventInfo->EventType)
    {
    case ProgressEventType::TotalProgress:
    std::clog << DateTime::get_Now().get_TimeOfDay() << " - Прогресс конверсии : " << eventInfo->Value << std::endl;
    break;
    case ProgressEventType::ResultPageCreated:
    std::clog << DateTime::get_Now().get_TimeOfDay() << " - Страница результата " << eventInfo->Value << " из " << eventInfo->MaxValue << " создана." << std::endl;
    break;
    case ProgressEventType::ResultPageSaved:
    std::clog << DateTime::get_Now().get_TimeOfDay() << " - Страница результата " << eventInfo->Value << " из " << eventInfo->MaxValue << " экспортирована." << std::endl;
    break;
    case ProgressEventType::SourcePageAnalysed:
    std::clog << DateTime::get_Now().get_TimeOfDay() << " - Исходная страница " << eventInfo->Value << " из " << eventInfo->MaxValue << " проанализирована." << std::endl;
    break;
    default:
    break;
    }
}

См. также

Эта статья также охватывает следующие темы. Коды такие же, как и выше.

Формат: PowerPoint

Format: Microsoft PowerPoint PPTX формат

Format: PPTX