在 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()集合中获取Slide类型的幻灯片对象。
- 为每个幻灯片创建缩略图,然后将其转换为JPG。Slide::getImage(float scaleX, float scaleY)方法用于获取幻灯片的缩略图。getImage方法必须在所需的Slide类型的幻灯片上调用,生成的缩略图的比例参数会传入该方法。
- 获取幻灯片缩略图后,调用缩略图对象的[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值传递给Slide::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提供了一个免费拼贴网页应用。使用此在线服务,您可以合并JPG to JPG或PNG到PNG图像,创建照片网格等。
使用本文所述的相同原理,您可以将图像从一种格式转换为另一种格式。有关更多信息,请参阅以下页面:转换image to JPG;转换JPG to image;转换JPG to PNG,转换PNG to JPG;转换PNG to SVG,转换SVG to PNG。
FAQ
此方法是否支持批量转换?
是的,Aspose.Slides允许在一次操作中将多个幻灯片批量转换为JPG。
转换是否支持SmartArt、图表和其他复杂对象?
是的,Aspose.Slides会渲染所有内容,包括SmartArt、图表、表格、形状等。不过,与PowerPoint相比,渲染精度可能会略有差异,特别是使用自定义或缺失的字体时。
处理的幻灯片数量是否有限制?
Aspose.Slides本身对可处理的幻灯片数量没有严格限制。但在处理大型演示文稿或高分辨率图像时,可能会遇到内存不足错误。
另请参见
查看将PPT/PPTX转换为图像的其他选项,例如: