在 PHP 中将 PPT 和 PPTX 转换为 JPG
关于 PowerPoint 转 JPG 转换
使用Aspose.Slides API,您可以将 PowerPoint PPT 或 PPTX 演示文稿转换为 JPG 图像。也可以将 PPT/PPTX 转换为 JPEG、PNG 或 SVG。借助这些功能,您可以轻松实现自己的演示文稿查看器,为每张幻灯片创建缩略图。如果您想保护演示文稿幻灯片免于复制,或以只读模式演示演示文稿,这将非常有用。Aspose.Slides 支持将整个演示文稿或特定幻灯片转换为图像格式。
[
将 PowerPoint PPT/PPTX 转换为 JPG
以下是将 PPT/PPTX 转换为 JPG 的步骤:
- 创建一个 Presentation 类型的实例。
- 从 Presentation.getSlides() 集合中获取 ISlide 类型的幻灯片对象。
- 为每张幻灯片创建缩略图,然后将其转换为 JPG。ISlide.getImage(float scaleX, float scaleY) 方法用于获取幻灯片的缩略图,它返回 Images 对象。必须在所需的 ISlide 实例上调用 getImage 方法,并将生成的缩略图的比例传入该方法。
- 获取幻灯片缩略图后,调用缩略图对象的 [IImage.save(String formatName, int imageFormat)](https://reference.aspose.com/slides/php-java/aspose.slides/IImage#save(String formatName, int imageFormat)) 方法。将生成的文件名和图像格式作为参数传入。
$pres = new Presentation("PowerPoint-Presentation.pptx");
try {
foreach($pres->getSlides() as $sld) {
# 创建完整比例的图像
$slideImage = $sld->getImage(1.0, 1.0);
# 将图像保存到磁盘为 JPEG 格式
try {
$slideImage->save(String->format("Slide_%d.jpg", $sld->getSlideNumber()), ImageFormat::Jpeg);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
使用自定义尺寸将 PowerPoint PPT/PPTX 转换为 JPG
要更改生成的缩略图和 JPG 图像的尺寸,您可以通过将 ScaleX 和 ScaleY 值传递给 ISlide.getImage(float scaleX, float scaleY) 方法来设置它们:
$pres = new Presentation("PowerPoint-Presentation.pptx");
try {
# 定义尺寸
$desiredX = 1200;
$desiredY = 800;
# 获取 X 和 Y 的缩放值
$ScaleX = 1.0 / $pres->getSlideSize()->getSize()->getWidth() * $desiredX;
$ScaleY = 1.0 / $pres->getSlideSize()->getSize()->getHeight() * $desiredY;
foreach($pres->getSlides() as $sld) {
# 创建完整比例的图像
$slideImage = $sld->getImage($ScaleX, $ScaleY);
# 将图像保存到磁盘为 JPEG 格式
try {
$slideImage->save(String->format("Slide_%d.jpg", $sld->getSlideNumber()), ImageFormat::Jpeg);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
在将幻灯片保存为图像时渲染批注
Aspose.Slides for PHP via Java 提供了一项功能,允许您在将演示文稿的幻灯片转换为图像时渲染批注。下面的 PHP 代码演示了此操作:
$pres = new Presentation("presentation.pptx");
try {
$notesOptions = new NotesCommentsLayoutingOptions();
$notesOptions->setNotesPosition(NotesPositions::BottomTruncated);
$opts = new RenderingOptions();
$opts->setSlidesLayoutOptions($notesOptions);
foreach($pres->getSlides() as $sld) {
$slideImage = $sld->getImage($opts, new Java("java.awt.Dimension", 740, 960));
try {
$slideImage->save(String->format("Slide_%d.png", $sld->getSlideNumber()));
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Tip
Aspose 提供了一个 FREE Collage web app。使用此在线服务,您可以合并 JPG to JPG 或 PNG 到 PNG 的图像,创建 photo grids 等。
使用本文中描述的相同原则,您可以在不同格式之间转换图像。更多信息请参阅以下页面:转换 image to JPG,转换 JPG to image,转换 JPG to PNG,转换 PNG to JPG,转换 PNG to SVG,转换 SVG to PNG。
常见问题
此方法是否支持批量转换?
是的,Aspose.Slides 允许在一次操作中批量将多张幻灯片转换为 JPG。
转换是否支持 SmartArt、图表和其他复杂对象?
是的,Aspose.Slides 会呈现所有内容,包括 SmartArt、图表、表格、形状等。不过,与 PowerPoint 相比,渲染精度可能会有轻微差异,尤其是在使用自定义或缺失的字体时。
处理的幻灯片数量是否有限制?
Aspose.Slides 本身对可处理的幻灯片数量没有严格限制。但在处理大型演示文稿或高分辨率图像时,可能会遇到内存不足错误。
另请参阅
查看将 PPT/PPTX 转换为图像的其他选项,例如: