在 Python 中将 PowerPoint 转换为 PDF

概述

将 PowerPoint 文档转换为 PDF 格式提供了多个优点,包括确保在不同设备之间的兼容性,并保留演示文稿的布局和格式。本文将向您展示如何将演示文稿转换为 PDF 文档,使用各种选项控制图像质量,包含隐藏幻灯片,给 PDF 文档加密,检测字体替代,选择要转换的幻灯片,并将合规性标准应用于输出文档。

PowerPoint 转 PDF 转换

使用 Aspose.Slides,您可以将以下格式的演示文稿转换为 PDF:

  • PPT
  • PPTX
  • ODP

要在 Python 中将演示文稿转换为 PDF,您只需将文件名作为参数传递给 Presentation 类,然后使用 Save 方法将演示文稿保存为 PDF。Presentation 类暴露了通常用于将演示文稿转换为 PDF 的 Save 方法。

Aspose.Slides 允许您转换:

  • 整个演示文稿到 PDF
  • 演示文稿中的特定幻灯片到 PDF
  • 演示文稿

Aspose.Slides 以使最终 PDF 内容非常类似于原始演示文稿的方式将演示文稿导出为 PDF。以下已知元素和属性通常会在演示文稿到 PDF 转换时正确呈现:

  • 图像
  • 文本框和其他形状
  • 文本及其格式
  • 段落及其格式
  • 超链接
  • 页眉和页脚
  • 项目符号
  • 表格

将 PowerPoint 转换为 PDF

标准的 PowerPoint PDF 转换操作使用默认选项执行。在这种情况下,Aspose.Slides 尝试以最佳设置和最高质量级别将提供的演示文稿转换为 PDF。以下 Python 代码演示了如何将 PowerPoint 转换为 PDF:

步骤:在 Python 中将 PowerPoint 转换为 PDF

以下示例代码通过 .NET 使用 Python 解释这些转换

代码步骤:

  • 创建 Presentation 类的实例,并提供 PowerPoint 文件。
    • .ppt 扩展名用于加载 Presentation 类中的 PPT 文件。
    • .pptx 扩展名用于加载 Presentation 类中的 PPTX 文件。
    • .odp 扩展名用于加载 Presentation 类中的 ODP 文件。
    • .pps 扩展名用于加载 Presentation 类中的 PPS 文件。
  • 通过调用 Save 方法并使用 SaveFormat.PDF 枚举将 Presentation 保存为 PDF 格式。
import aspose.slides as slides

# 实例化表示 PowerPoint 文件的 Presentation 类
presentation = slides.Presentation("PowerPoint.ppt")

# 将演示文稿保存为 PDF
presentation.save("PPT-to-PDF.pdf", slides.export.SaveFormat.PDF)

将 PowerPoint 转换为带选项的 PDF

Aspose.Slides 提供自定义选项——PdfOptions 类下的属性——允许您自定义转换过程生成的 PDF,给 PDF 加密,甚至指定转换过程应如何进行。

使用自定义选项将 PowerPoint 转换为 PDF

使用自定义转换选项,您可以为光栅图像设置首选质量设置,指定元文件的处理方式,设置文本的压缩级别,设置图像的 DPI 等。

以下代码示例演示了将 PowerPoint 演示文稿转换为 PDF,同时应用多个自定义选项的操作:

import aspose.slides as slides

# 实例化 PdfOptions 类
pdf_options = slides.export.PdfOptions()

# 设置 JPG 图像的质量
pdf_options.jpeg_quality = 90

# 设置图像的 DPI
pdf_options.sufficient_resolution = 300

# 设置元文件的处理方式
pdf_options.save_metafiles_as_png = True

# 设置文本内容的压缩级别
pdf_options.text_compression = slides.export.PdfTextCompression.FLATE

# 定义 PDF 合规模式
pdf_options.compliance = slides.export.PdfCompliance.PDF15

# 实例化表示 PowerPoint 文档的 Presentation 类
with slides.Presentation("PowerPoint.pptx") as presentation:
    # 将演示文稿保存为 PDF 文档
    presentation.save("PowerPoint-to-PDF.pdf", slides.export.SaveFormat.PDF, pdf_options)

将 PowerPoint 转换为包含隐藏幻灯片的 PDF

如果演示文稿包含隐藏幻灯片,您可以使用自定义选项——PdfOptions 类中的 show_hidden_slides 属性——指示 Aspose.Slides 将隐藏幻灯片作为页面包含在结果 PDF 中。

以下 Python 代码演示了如何将 PowerPoint 演示文稿转换为包含隐藏幻灯片的 PDF:

import aspose.slides as slides

# 实例化表示 PowerPoint 文件的 Presentation 类
presentation = slides.Presentation("PowerPoint.pptx")

# 实例化 PdfOptions 类
pdfOptions = slides.export.PdfOptions()

# 添加隐藏幻灯片
pdfOptions.show_hidden_slides = True

# 将演示文稿保存为 PDF
presentation.save("PowerPoint-to-PDF.pdf", slides.export.SaveFormat.PDF, pdfOptions)

将 PowerPoint 转换为带密码保护的 PDF

以下 Python 代码演示了如何将 PowerPoint 转换为密码保护的 PDF(使用 PdfOptions 类中的保护参数):

import aspose.slides as slides

# 实例化表示 PowerPoint 文件的 Presentation 对象
presentation = slides.Presentation("PowerPoint.pptx")

# 实例化 PdfOptions 类
pdfOptions = slides.export.PdfOptions()

# 设置 PDF 密码和访问权限
pdfOptions.password = "password"
pdfOptions.access_permissions = slides.export.PdfAccessPermissions.PRINT_DOCUMENT | slides.export.PdfAccessPermissions.HIGH_QUALITY_PRINT

# 将演示文稿保存为 PDF
presentation.save("PPTX-to-PDF.pdf", slides.export.SaveFormat.PDF, pdfOptions)

检测字体替代

Aspose.Slides 在 SaveOptions 类下提供了 warning_callback 属性,以允许您在演示文稿到 PDF 转换过程中检测字体替代。

以下 Python 代码演示了如何检测字体替代:

[TODO[SLIDESPYNET-91]: callbacks are not supported for now]

将选定的幻灯片从 PowerPoint 转换为 PDF

以下 Python 代码演示了如何将 PowerPoint 演示文稿中的特定幻灯片转换为 PDF:

import aspose.slides as slides

# 实例化表示 PowerPoint 文件的 Presentation 对象
presentation = slides.Presentation("PowerPoint.pptx")

# 设置幻灯片位置的数组
slides_array = [ 1, 3 ]

# 将演示文稿保存为 PDF
presentation.save("PPTX-to-PDF.pdf", slides_array, slides.export.SaveFormat.PDF)

将 PowerPoint 转换为 PDF,并指定自定义幻灯片大小

以下 Python 代码演示了如何在指定幻灯片大小的情况下将 PowerPoint 转换为 PDF:

import aspose.slides as slides

# 实例化表示 PowerPoint 文件的 Presentation 对象 
presentation = slides.Presentation("SelectedSlides.pptx")
auxPresentation = slides.Presentation()

slide = presentation.slides[0]

auxPresentation.slides.insert_clone(0, slide)

# 设置幻灯片类型和大小 
auxPresentation.slide_size.set_size(612, 792, slides.SlideSizeScaleType.ENSURE_FIT)

pdfOptions = slides.export.PdfOptions()
pdfOptions.notes_comments_layouting.notes_position = slides.export.NotesPositions.BOTTOM_FULL

auxPresentation.save("PDFnotes_out.pdf", slides.export.SaveFormat.PDF, pdfOptions)

以注释幻灯片视图转换 PowerPoint 为 PDF

以下 Python 代码演示了如何将 PowerPoint 转换为 PDF 注释:

import aspose.slides as slides

# 实例化表示 PowerPoint 文件的 Presentation 类
presentation = slides.Presentation("NotesFile.pptx")

pdfOptions = slides.export.PdfOptions()
pdfOptions.notes_comments_layouting.notes_position = slides.export.NotesPositions.BOTTOM_FULL

# 将演示文稿保存为 PDF 注释
presentation.Save("Pdf_Notes_out.tiff", slides.export.SaveFormat.PDF, pdfOptions)

PDF 的可访问性和合规性标准

Aspose.Slides 允许您使用符合 Web 内容可访问性指南(WCAG 的转换程序。您可以使用以下任何合规性标准将 PowerPoint 文档导出为 PDF:PDF/A1aPDF/A1bPDF/UA

以下 Python 代码演示了一种 PowerPoint 到 PDF 的转换操作,其中基于不同合规性标准获得多个 PDF:

import aspose.slides as slides

pres = slides.Presentation("pres.pptx")

options = slides.export.PdfOptions()

options.compliance = slides.export.PdfCompliance.PDF_A1A
pres.save("pres-a1a-compliance.pdf", slides.export.SaveFormat.PDF, options)

options.compliance = slides.export.PdfCompliance.PDF_A1B
pres.save("pres-a1b-compliance.pdf", slides.export.SaveFormat.PDF, options)

options.compliance = slides.export.PdfCompliance.PDF_UA
pres.save("pres-ua-compliance.pdf", slides.export.SaveFormat.PDF, options)