Convert PDF to Microsoft PowerPoint in C++

Overview

本文解释了如何使用C++将PDF转换为PowerPoint格式。它涵盖了以下主题。

格式: PPTX

格式: Microsoft PowerPoint PPTX格式

本文涵盖的其他主题。

C++ PDF到PowerPoint转换

**Aspose.PDF for C++**允许您跟踪PDF到PPTX转换的进度。

在PDF到PPTX转换过程中,文本被渲染为可选择/更新的文本。请注意,为了将PDF文件转换为PPTX格式,Aspose.PDF提供了一个名为PptxSaveOptions的类。PptxSaveOptions类的对象作为第二个参数传递给Document.Save(..) method方法。以下代码片段展示了将PDF文件转换为PPTX格式的过程。

使用Aspose.PDF for C++进行简单的PDF到PPTX转换

为了将PDF转换为PPTX,Aspose.PDF for C++建议使用以下代码步骤。

步骤:在C++中将PDF转换为PPTX | 步骤:在C++中将PDF转换为PowerPoint PPTX格式

  1. 创建一个 Document 类的实例。
  2. 创建一个 PptxSaveOptions 类的实例。
  3. 使用 Document 对象的 Save 方法 将 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 类实现的功能。 要实现这一点,将 PptxSaveOptions 类的属性 SlidesAsImages 设置为 ’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 for C++ 允许您跟踪 PDF 到 PPTX 转换的进度。 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 << " of " << eventInfo->MaxValue << " 布局已创建." << std::endl;
    break;
    case ProgressEventType::ResultPageSaved:
    std::clog << DateTime::get_Now().get_TimeOfDay() << " - 结果页面的 " << eventInfo->Value << " of " << eventInfo->MaxValue << " 已导出." << std::endl;
    break;
    case ProgressEventType::SourcePageAnalysed:
    std::clog << DateTime::get_Now().get_TimeOfDay() << " - 源页面 " << eventInfo->Value << " of " << eventInfo->MaxValue << " 已分析." << std::endl;
    break;
    default:
    break;
    }
}

另请参阅

本文还涵盖这些主题。代码与上面相同。

格式: PowerPoint

Format: Microsoft PowerPoint PPTX 格式

Format: PPTX