在 Python 中将 PPT 和 PPTX 转换为 JPG
Contents
[
Hide
]
介绍
Aspose.Slides for Python via Java 可将 PowerPoint 和 OpenDocument 演示文稿(PPT、PPTX 和 ODP)转换为 JPEG 图像。您可以导出每一张幻灯片或选定的幻灯片,以创建缩略图、构建演示文稿查看器,或在网站或应用程序中嵌入幻灯片预览。
将 PowerPoint PPT/PPTX 转换为 JPG
- 使用Presentation加载演示文稿。
- 通过getSlides获取幻灯片集合。
- 调用Slide.getImage并传入水平和垂直缩放因子,以渲染每张幻灯片。
- 使用ImageFormat.Jpeg将每个渲染后的图像保存为 JPEG,然后释放图像资源。
Note
导出为 JPG 时会为每张幻灯片生成单独的图像。请保存渲染后的图像,而不是直接将演示文稿保存为图像格式。import jpype
import asposeslides
if not jpype.isJVMStarted():
jpime.startJVM()
from asposeslides.api import ImageFormat, Presentation
presentation = Presentation("presentation.pptx")
try:
for slide in presentation.getSlides():
slide_image = slide.getImage(1.0, 1.0)
try:
slide_image.save(f"Slide_{slide.getSlideNumber()}.jpg", ImageFormat.Jpeg)
finally:
slide_image.dispose()
finally:
presentation.dispose()
将 PowerPoint PPT/PPTX 转换为具有自定义尺寸的 JPG
根据所需的像素尺寸和原始幻灯片大小计算水平和垂直缩放因子,然后将其传递给Slide.getImage。以下示例为每张幻灯片目标生成 1200 × 800 像素的图像。
使用不同的缩放因子可能会拉伸幻灯片。若要保持宽高比,请对两个轴使用相同的缩放因子;这样生成的宽度和高度将遵循原始幻灯片的比例。
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ImageFormat, Presentation
presentation = Presentation("presentation.pptx")
try:
desired_width = 1200
desired_height = 800
slide_size = presentation.getSlideSize().getSize()
scale_x = desired_width / slide_size.getWidth()
scale_y = desired_height / slide_size.getHeight()
for slide in presentation.getSlides():
slide_image = slide.getImage(scale_x, scale_y)
try:
slide_image.save(f"Slide_{slide.getSlideNumber()}.jpg", ImageFormat.Jpeg)
finally:
slide_image.dispose()
finally:
presentation.dispose()
在将幻灯片保存为图像时渲染备注和评论
使用NotesCommentsLayoutingOptions配置备注和评论,并通过RenderingOptions.setSlidesLayoutOptions应用布局。此示例将备注放在底部,超出部分截断,并在右侧 200 像素宽的区域显示评论。每个渲染后的幻灯片均保存为 JPG 图像。
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import CommentsPositions, ImageFormat, NotesCommentsLayoutingOptions, NotesPositions, Presentation, RenderingOptions
from java.awt import Dimension
presentation = Presentation("presentation.pptx")
try:
layout_options = NotesCommentsLayoutingOptions()
layout_options.setNotesPosition(NotesPositions.BottomTruncated)
layout_options.setCommentsPosition(CommentsPositions.Right)
layout_options.setCommentsAreaWidth(200)
rendering_options = RenderingOptions()
rendering_options.setSlidesLayoutOptions(layout_options)
image_size = Dimension(740, 960)
for slide in presentation.getSlides():
slide_image = slide.getImage(rendering_options, image_size)
try:
slide_image.save(f"Slide_{slide.getSlideNumber()}.jpg", ImageFormat.Jpeg)
finally:
slide_image.dispose()
finally:
presentation.dispose()
FAQ
可以一次将多个幻灯片或演示文稿转换为 JPG 吗?
可以。示例遍历所有幻灯片并为每张幻灯片保存一张 JPG。若要处理多个演示文稿,只需对每个输入文件重复转换,并使用不同的输出文件夹或唯一的文件名,以免覆盖图像。
图表、SmartArt、表格和形状会包含在图像中吗?
这些对象会作为幻灯片的一部分进行渲染。请确保转换环境中可用演示文稿使用的字体,以减少因字体替换而导致的差异。
导出大型演示文稿时如何降低内存使用?
一次处理一张图像,保存后立即释放图像资源,并避免使用不必要的大输出尺寸。内存需求取决于幻灯片内容和图像大小。