在 .NET 中将 PDF 转换为 PowerPoint

概览

本文说明了如何使用 C# 将 PDF 转换为 PowerPoint。它涵盖了以下主题。

格式:PPTX

格式:PowerPoint

以下代码片段也适用于 Aspose.PDF.Drawing 库。

C# PDF 至 PowerPoint 和 PPTX 转换

C# PDF 转 PowerPoint 和 PPTX 转换

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

我们有一个名为 Aspose.Slides 的 API,它提供创建和操作 PPT/PPTX 演示文稿的功能。该 API 还提供将 PPT/PPTX 文件转换为 PDF 格式的功能。最近我们收到了许多客户的需求,支持 PDF 转换到 PPTX 格式的功能。从 Aspose.PDF for .NET 10.3.0 版本开始,我们引入了将 PDF 文档转换为 PPTX 格式的功能。在此转换过程中,PDF 文件的各个页面被转换为 PPTX 文件中的单独幻灯片。

在 PDF 到 PPTX 转换期间,文本被渲染为文本,您可以选择/更新它。 在PDF转换为PPTX过程中,文本将以可选择/更新的文本形式呈现。

使用C#和Aspose.PDF .NET简单地将PDF转换为PowerPoint

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

步骤:在C#中将PDF转换为PowerPoint | 步骤:在C#中将PDF转换为PPTX

  1. 创建Document类的实例
  2. 创建PptxSaveOptions类的实例
  3. 使用Document对象的Save方法将PDF保存为PPTX
// 完整的示例和数据文件,请访问 https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// 文档目录的路径。
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
// 加载PDF文档
Aspose.Pdf.Document doc = new Aspose.Pdf.Document(dataDir + "input.pdf");
// 实例化PptxSaveOptions
Aspose.Pdf.PptxSaveOptions pptx_save = new Aspose.Pdf.PptxSaveOptions();
// 以PPTX格式保存输出
doc.Save(dataDir + "PDFToPPT_out.pptx", pptx_save);

将PDF转换为带图片的PPTX

如果您需要将可搜索的PDF转换为图片形式的PPTX,而不是可选择的文本,Aspose.PDF通过Aspose.Pdf.PptxSaveOptions类提供了这样的功能。要实现这一点,请将PptxSaveOptions类的SlidesAsImages属性设置为’true’,如下面的代码示例所示。

// 完整的示例和数据文件,请访问 https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// 文档目录的路径。
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
// 加载PDF文档
Aspose.Pdf.Document doc = new Aspose.Pdf.Document(dataDir + "input.pdf");
// 实例化PptxSaveOptions实例
Aspose.Pdf.PptxSaveOptions pptx_save = new Aspose.Pdf.PptxSaveOptions();
// 保存输出为PPTX格式
pptx_save.SlidesAsImages = true;
doc.Save(dataDir + "PDFToPPT_out_.pptx", pptx_save);

PPTX转换进度详情

Aspose.PDF for .NET允许您跟踪PDF到PPTX转换的进度。Aspose.Pdf.PptxSaveOptions 类提供了 CustomProgressHandler 属性,可以指定为自定义方法来跟踪转换进度,如下代码示例所示。

// 完整示例和数据文件,请访问 https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// 文档目录的路径。
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
// 加载PDF文档
Aspose.Pdf.Document doc = new Aspose.Pdf.Document(dataDir + "input.pdf");
// 实例化PptxSaveOptions实例
Aspose.Pdf.PptxSaveOptions pptx_save = new Aspose.Pdf.PptxSaveOptions();

//指定自定义进度处理器
pptx_save.CustomProgressHandler = ShowProgressOnConsole;
// 以PPTX格式保存输出
doc.Save(dataDir + "PDFToPPTWithProgressTracking_out_.pptx", pptx_save);

以下是自定义方法用于显示进度转换。

// 完整示例和数据文件,请访问 https://github.com/aspose-pdf/Aspose.PDF-for-.NET
switch (eventInfo.EventType)
{
    case ProgressEventType.TotalProgress:
        Console.WriteLine(String.Format("{0}  - 转换进度:{1}% 。", DateTime.Now.TimeOfDay, eventInfo.Value.ToString()));
        break;
    case ProgressEventType.ResultPageCreated:
        Console.WriteLine(String.Format("{0}  - 结果页的 {1} 于 {2} 布局已创建。", DateTime.Now.TimeOfDay, eventInfo.Value.ToString(), eventInfo.MaxValue.ToString()));
        break;
    case ProgressEventType.ResultPageSaved:
        Console.WriteLine(String.Format("{0}  - 结果页 {1} 于 {2} 已导出。", DateTime.Now.TimeOfDay, eventInfo.Value.ToString(), eventInfo.MaxValue.ToString()));
        break;
    case ProgressEventType.SourcePageAnalysed:
        Console.WriteLine(String.Format("{0}  - 源页面 {1} 于 {2} 已分析。", DateTime.Now.TimeOfDay, eventInfo.Value.ToString(), eventInfo.MaxValue.ToString()));
        break;
    default:
        break;
}

另见

本文还涵盖了以下主题。代码与上述相同。

格式PowerPoint

格式PPTX