转换幻灯片
Aspose.Slides for PHP通过Java允许您将幻灯片(在演示文稿中)转换为图像。支持的图像格式包括:BMP、PNG、JPG(JPEG)、GIF等。
要将幻灯片转换为图像,请执行以下操作:
-
首先,使用以下方式设置转换参数和要转换的幻灯片对象:
- ITiffOptions 接口或
- IRenderingOptions 接口。
-
其次,使用 getImage 方法将幻灯片转换为图像。
关于位图和其他图像格式
在Java中,Images 是一个允许您使用像素数据定义的图像的对象。您可以使用此类的实例以广泛的格式保存图像(JPG、PNG等)。
信息
Aspose最近开发了一个在线 文本转GIF 转换器。将幻灯片转换为位图并以PNG格式保存图像
以下PHP代码演示了如何将演示文稿的第一张幻灯片转换为位图对象,然后将图像以PNG格式保存:
$pres = new Presentation("Presentation.pptx");
try {
# 将演示文稿中的第一张幻灯片转换为Images对象
$slideImage = $pres->getSlides()->get_Item(0)->getImage();
# 以PNG格式保存图像
try {
# 将图像保存到磁盘。
$slideImage->save("Slide_0.png", ImageFormat::Png);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
以下示例代码演示了如何使用 getImage 方法将演示文稿的第一张幻灯片转换为位图对象:
$pres = new Presentation("Presentation.pptx");
try {
# 获取演示文稿幻灯片的大小
$slideSize = new Java("java.awt.Dimension", $slideSize->getWidth(), $slideSize->getHeight());
# 创建与幻灯片大小相同的Images
$slideImage = $sld->getImage(new RenderingOptions(), $slideSize);
try {
# 将图像保存到磁盘。
$slideImage->save("Slide_0.png", ImageFormat::Png);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
提示
您可以将幻灯片转换为Images对象,然后在其他地方直接使用该对象。或者,您可以将幻灯片转换为Images,然后以JPEG或您喜欢的其他格式保存图像。将幻灯片转换为具有自定义大小的图像
您可能需要获取某个特定大小的图像。使用 getImage 方法的重载,您可以将幻灯片转换为具有特定尺寸(长度和宽度)的图像。
以下示例代码演示了使用 getImage 方法进行转换的过程:
$pres = new Presentation("Presentation.pptx");
try {
# 将演示文稿中的第一张幻灯片转换为指定大小的位图
$slideImage = $pres->getSlides()->get_Item(0)->getImage(new Java("java.awt.Dimension", 1820, 1040));
# 以JPEG格式保存图像
try {
# 将图像保存到磁盘。
$slideImage->save("Slide_0.jpg", ImageFormat::Jpeg);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
将具有备注和评论的幻灯片转换为图像
某些幻灯片包含备注和评论。
Aspose.Slides提供了两个接口——ITiffOptions 和 IRenderingOptions——允许您控制将演示文稿幻灯片渲染为图像。两个接口都包含 INotesCommentsLayoutingOptions 接口,允许您在将幻灯片转换为图像时在幻灯片上添加备注和评论。
信息
使用 INotesCommentsLayoutingOptions 接口,您可以指定在生成的图像中备注和评论的首选位置。以下PHP代码演示了具有备注和评论的幻灯片的转换过程:
$pres = new Presentation("PresentationNotesComments.pptx");
try {
# 创建渲染选项
$options = new RenderingOptions();
# 设置备注在页面上的位置
$options->getNotesCommentsLayouting()->setNotesPosition(NotesPositions::BottomTruncated);
# 设置评论在页面上的位置
$options->getNotesCommentsLayouting()->setCommentsPosition(CommentsPositions::Right);
# 设置评论输出区域的宽度
$options->getNotesCommentsLayouting()->setCommentsAreaWidth(500);
# 设置评论区域的颜色
$options->getNotesCommentsLayouting()->setCommentsAreaColor(java("java.awt.Color")->LIGHT_GRAY);
# 将演示文稿的第一张幻灯片转换为位图对象
$slideImage = $pres->getSlides()->get_Item(0)->getImage($options, 2.0, 2.0);
# 以GIF格式保存图像
try {
$slideImage->save("Slide_Notes_Comments_0.gif", ImageFormat::Gif);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
以下PHP代码演示了使用 getImage 方法转换具有备注的幻灯片的过程:
$pres = new Presentation("PresentationNotes.pptx");
try {
# 获取演示文稿备注的大小
$notesSize = $pres->getNotesSize()->getSize();
# 创建渲染选项
$options = new RenderingOptions();
# 设置备注的位置
$options->getNotesCommentsLayouting()->setNotesPosition(NotesPositions::BottomTruncated);
# 创建与备注大小相同的Images
$slideImage = $pres->getSlides()->get_Item(0)->getImage($options, $notesSize);
# 以PNG格式保存图像
try {
# 将图像保存到磁盘。
$slideImage->save("Slide_0.png", ImageFormat::Png);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
注意
在任何幻灯片转换为图像的过程中, NotesPositions 属性不能设置为 BottomFull(以指定备注的位置),因为备注的文本可能很长,可能无法适应指定的图像大小。使用ITiffOptions将幻灯片转换为图像
ITiffOptions 接口让您对生成的图像拥有更多的控制(在参数方面)。使用该接口,您可以指定生成图像的大小、分辨率、调色板等参数。
以下PHP代码演示了一个转换过程,其中使用ITiffOptions输出300dpi分辨率和2160 × 2800大小的黑白图像:
$pres = new Presentation("PresentationNotesComments.pptx");
try {
# 按索引获取幻灯片
$slide = $pres->getSlides()->get_Item(0);
# 创建TiffOptions对象
$options = new TiffOptions();
$options->setImageSize(new Java("java.awt.Dimension", 2160, 2880));
# 设置在找不到源字体时使用的字体
$options->setDefaultRegularFont("Arial Black");
# 设置备注在页面上的位置
$options->getNotesCommentsLayouting()->setNotesPosition(NotesPositions::BottomTruncated);
# 设置像素格式(黑白)
$options->setPixelFormat(ImagePixelFormat::Format1bppIndexed);
# 设置分辨率
$options->setDpiX(300);
$options->setDpiY(300);
# 将幻灯片转换为位图对象
$slideImage = $slide->getImage($options);
# 以TIFF格式保存图像
try {
$slideImage->save("PresentationNotesComments.tiff", ImageFormat::Tiff);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
注意
在JDK 9之前的版本中不保证支持Tiff。将所有幻灯片转换为图像
Aspose.Slides允许您将单个演示文稿中的所有幻灯片转换为图像。基本上,您可以将整个演示文稿转换为图像。
以下示例代码演示了如何将演示文稿中的所有幻灯片转换为图像:
$pres = new Presentation("Presentation.pptx");
try {
# 将演示文稿逐张幻灯片渲染到图像数组
for($i = 0; $i < java_values($pres->getSlides()->size()) ; $i++) {
# 控制隐藏的幻灯片(不渲染隐藏的幻灯片)
if ($pres->getSlides()->get_Item($i)->getHidden()) {
continue;
}
# 将幻灯片转换为位图对象
$slideImage = $pres->getSlides()->get_Item($i)->getImage(2.0, 2.0);
# 以PNG格式保存图像
try {
$slideImage->save("Slide_" . $i . ".png", ImageFormat::Png);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}