在 C++ 中将 PPT 和 PPTX 转换为 JPG
概述
将 PowerPoint 和 OpenDocument 演示文稿转换为 JPG 图像有助于共享幻灯片、优化性能以及将内容嵌入网站或应用程序。Aspose.Slides for C++ 允许您将 PPTX、PPT 和 ODP 文件转换为高质量的 JPEG 图像。本指南解释了不同的转换方法。
借助这些功能,您可以轻松实现自己的演示文稿查看器,并为每张幻灯片创建缩略图。如果您想保护幻灯片免于复制或以只读模式演示演示文稿,这可能会很有用。Aspose.Slides 允许您将整个演示文稿或特定幻灯片转换为图像格式。
将演示文稿幻灯片转换为 JPG 图像
以下是将 PPT、PPTX 或 ODP 文件转换为 JPG 的步骤:
- 创建 Presentation 类的实例。
- 从演示文稿的幻灯片集合中获取 ISlide 类型的幻灯片对象。
- 使用 ISlide.GetImage 方法为幻灯片创建图像。
- 在图像对象上调用 IImage.Save 方法。将输出文件名和图像格式作为参数传入。
float scaleX = 1.0f;
float scaleY = scaleX;
auto presentation = MakeObject<Presentation>(u"PowerPoint-Presentation.ppt");
for (auto&& slide : presentation->get_Slides())
{
// 创建指定比例的幻灯片图像。
auto image = slide->GetImage(scaleX, scaleY);
// 将图像以 JPEG 格式保存到磁盘。
auto fileName = String::Format(u"Slide_{0}.jpg", slide->get_SlideNumber());
image->Save(fileName, ImageFormat::Jpeg);
image->Dispose();
}
presentation->Dispose();
使用自定义尺寸将幻灯片转换为 JPG
要更改生成的 JPG 图像的尺寸,您可以将尺寸传递给 ISlide.GetImage(Size) 方法来设置图像大小。这使您能够生成具有特定宽度和高度值的图像,确保输出符合分辨率和宽高比的要求。当为 Web 应用、报告或文档生成图像,需要精确的图像尺寸时,这种灵活性尤为有用。
Size imageSize(1200, 800);
auto presentation = MakeObject<Presentation>(u"PowerPoint-Presentation.pptx");
for (auto&& slide : presentation->get_Slides())
{
// 创建指定大小的幻灯片图像。
auto image = slide->GetImage(imageSize);
// 将图像以 JPEG 格式保存到磁盘。
auto fileName = System::String::Format(u"Slide_{0}.jpg", slide->get_SlideNumber());
image->Save(fileName, ImageFormat::Jpeg);
image->Dispose();
}
presentation->Dispose();
在将幻灯片保存为图像时渲染注释
Aspose.Slides for C++ 提供了一项功能,允许在将演示文稿的幻灯片转换为 JPG 图像时渲染注释。此功能对于保留协作者在 PowerPoint 演示文稿中添加的批注、反馈或讨论特别有用。启用此选项后,注释将出现在生成的图像中,便于在无需打开原始演示文稿文件的情况下审阅和共享反馈。
假设我们有一个名为 “sample.pptx” 的演示稿文件,其中的某张幻灯片包含批注:

以下 C++ 代码在保留批注的同时将幻灯片转换为 JPG 图像:
float scaleX = 2.0f;
float scaleY = scaleX;
auto presentation = MakeObject<Presentation>(u"sample.pptx");
{
auto commentOptions = MakeObject<NotesCommentsLayoutingOptions>();
commentOptions->set_CommentsPosition(CommentsPositions::Right);
commentOptions->set_CommentsAreaWidth(200);
commentOptions->set_CommentsAreaColor(Color::get_DarkOrange());
// 设置幻灯片批注的选项。
auto options = MakeObject<RenderingOptions>();
options->set_SlidesLayoutOptions(commentOptions);
// 将第一张幻灯片转换为图像。
auto image = presentation->get_Slide(0)->GetImage(options, scaleX, scaleY);
image->Save(u"Slide_1.jpg", ImageFormat::Jpeg);
image->Dispose();
}
presentation->Dispose();
结果:

另请参阅
查看将 PPT、PPTX 或 ODP 转换为图像的其他选项,例如:

Tip
Aspose 提供了一个 FREE Collage web app 在线服务。使用此服务,您可以合并 JPG to JPG 或 PNG 到 PNG 的图像,创建 photo grids 等。
使用本文中描述的相同原理,您可以将图像从一种格式转换为另一种格式。更多信息请参阅以下页面:convert image to JPG; convert JPG to image; convert JPG to PNG, convert PNG to JPG; convert PNG to SVG, convert SVG to PNG.
常见问题
此方法是否支持批量转换?
是的,Aspose.Slides 支持在一次操作中批量将多个幻灯片转换为 JPG。
转换是否支持 SmartArt、图表和其他复杂对象?
是的,Aspose.Slides 能渲染所有内容,包括 SmartArt、图表、表格、形状等。不过,与 PowerPoint 相比,渲染精度可能会略有差异,特别是在使用自定义或缺失字体时。
处理的幻灯片数量是否有限制?
Aspose.Slides 本身对可处理的幻灯片数量没有严格限制。但在处理大型演示文稿或高分辨率图像时,可能会遇到内存不足错误。