Python实现PowerPoint(PPT/PPTX)到PDF的批量转换

演示文稿是一种常见传达信息、展示观点和分享内容的形式,特别是PowerPoint演示文稿,广泛应用于各行各业,几乎是演讲等场合的必备工具。然而,演示文稿也有其限制,对设备的要求较高,且使用不同的软件或设备演示时,可能呈现出不同的效果,也会出现某些元素不被支持的情况。这种情况可以通过将演示文稿转换为PDF文档来解决。PDF格式具有高度的跨平台性,能够在不同的设备上展示出相同的外观,且不需要安装特别的软件,甚至在浏览器中就能很好地进行展示。同时,PDF文件还能方便我们进行打印等操作。如果需要处理大量的PPT转PDF的工作,一个个打开并另存为PDF是非常低效率的做法。我们可以利用Python编程语言的强大的工具来自动化这个过程,使得批量转换变得简单而高效。
本文将介绍如何使用Python将PowerPoint演示文稿(PPT、PPTX等)转换为PDF文件,使演示内容能够在更多的设备上展示,且保持内容展示效果一致。同时为大家带来一款免费的在线转换工具,将各种格式文件转换为PDF文件。
本文主要包括以下内容:

文章目录

    • 转换演示文稿为PDF的优势
    • 将PowerPoint演示文稿批量转换为PDF文件
    • 将演示文稿转换为PDF文件并设置页面大小
    • 将演示文稿的单页转换为PDF文件
    • 免费在线转换工具
      • 总结

本文所使用的方法需要用到Spire.Presentation for Python,可从官网下载或通过PyPI安装:pip install Spire.Presentation

转换演示文稿为PDF的优势

  • 兼容性:PDF格式具有广泛的兼容性,可以在不同操作系统和设备上准确显示。将PowerPoint文件转换为PDF可以确保接收方能够正确浏览和阅读您的演示内容。
  • 安全性和保密性:PDF格式可以设置密码和限制权限,提供更高的安全性和保密性。这对商业演示、敏感数据的展示以及知识产权保护非常重要。
  • 打印方便:PDF文件在打印时可以保持格式的一致性,无论是在个人打印机还是专业印刷机上。将PowerPoint文件转换为PDF格式可以确保打印输出结果与原始演示一致,方便分享和分发纸质副本。

将PowerPoint演示文稿批量转换为PDF文件

Presentation.SaveToFile(fileName: str, fileFormat: FileFormat) 可将演示文件转换为 PDF 文档。以下是执行此操作的详细步骤:

  1. 创建一个 Presentation 类对象。
  2. 使用 Presentation.LoadFromFile() 方法加载演示文稿文件。
  3. 使用 Presentation.SaveToFile(fileName: str, fileFormat: FileFormat) 方法将演示文稿保存为 PDF 文档。

代码示例:
Python

from spire.presentation import *
from spire.presentation.common import *

# 设置文件夹路径和输出文件夹路径
folder_path = "Documents/"
output_folder = "Output/"

# 遍历文件夹中的文件
for file_name in os.listdir(folder_path):
    file_path = os.path.join(folder_path, file_name)
    
    # 判断文件名是否以.pptx或.ppt结尾
    if file_name.lower().endswith('.pptx') or file_name.lower().endswith('.ppt'):
        
        # 根据文件名生成输出路径
        output_path = os.path.join(output_folder, os.path.splitext(file_name)[0] + '.pdf')
        
        # 创建Presentation对象并从文件加载演示文稿
        presentation = Presentation()
        presentation.LoadFromFile(file_path)
        
        # 将演示文稿保存为PDF格式到指定输出文件夹
        presentation.SaveToFile(output_folder, FileFormat.PDF)
        
        # 释放Presentation对象占用的资源
        presentation.Dispose()

将演示文稿转换为PDF文件并设置页面大小

在转换过程中,还可以使用 Presentation.SlideSize.Type 属性设置幻灯片大小,从而决定生成的 PDF 文档的页面大小。以下是此操作的详细步骤:

  1. 创建一个 Presentation 类对象。
  2. 使用 Presentation.LoadFromFile() 方法加载演示文稿文件。
  3. 使用 Presentation.SlideSize.Type 属性将幻灯片尺寸设置为 A4。
  4. 使用 Presentation.SaveToFile(file: str, fileFormat: FileFormat) 方法将演示文稿保存为 PDF 文档。

代码示例:
Python

from spire.presentation import *
from spire.presentation.common import *

# 导入所需的模块

# 创建Presentation类的对象
presentation = Presentation()

# 从文件加载演示文稿
presentation.LoadFromFile("Sample.pptx")

# 将幻灯片大小更改为A4
presentation.SlideSize.Type = SlideSizeType.A4

# 将演示文稿转换为PDF并保存
presentation.SaveToFile("output/PresentationToPDFA4.pdf", FileFormat.PDF)
presentation.Dispose()

将演示文稿的单页转换为PDF文件

我们还可以将演示文稿文件中的单张幻灯片转换为 PDF 文档。具体操作步骤如下:

  1. 创建一个 Presentation 类对象。
  2. 使用 Presentation.LoadFromFile() 方法加载演示文稿文件。
  3. 使用 Presentation.Slides[] 属性获取幻灯片。
  4. 使用 ISlde.SaveToFile(file: str, fileFormat: FileFormat) 方法将幻灯片保存为 PDF 文档。

代码示例:

from spire.presentation import *
from spire.presentation.common import *

# 导入所需的模块

# 创建Presentation类的对象
presentation = Presentation()

# 从文件加载演示文稿
presentation.LoadFromFile("Sample.pptx")

# 获取一张幻灯片
slide = presentation.Slides[1]

# 将幻灯片保存为PDF文件
slide.SaveToFile("output/SlideToPDF.pdf", FileFormat.PDF)
presentation.Dispose()

免费在线转换工具

Free Spire.PDFConverter for .NET是一个免费的在线转换工具,支持将各种格式的文件转换为PDF文件,包括演示文稿(PPT、PPTX等)。只需要选择并上传文件,等待上传完成后点击“Download”即可。

PDF免费转换器

总结

本文介绍了使用Python将PowerPoint演示文稿(PPT、PPTX等格式文件)转换为PDF文件,如何在转换时设置页面大小,以及如何转换单页幻灯片为PDF文件。同时,本文还提供了一个免费在线转换工具,支持将各种文件转换为PDF文件并下载保存。Spire.PDF for Python还支持许多其他功能,请前往Spire.Presentation for Python教程查看。如果在使用中遇到问题,可前往Spire论坛获取技术支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/303533.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

分布式之任务调度Elastic-Job学习二

4 Spring 集成与分片详解 ejob-springboot 工程 4.1 pom 依赖 <properties><elastic-job.version>2.1.5</elastic-job.version> </properties> <dependency><groupId>com.dangdang</groupId><artifactId>elastic-job-lite-…

每日一练:LeeCode-101. 对称二叉树【二叉树】

本文是力扣LeeCode-101. 对称二叉树 学习与理解过程&#xff0c;本文仅做学习之用&#xff0c;对本题感兴趣的小伙伴可以出门左拐LeeCode。 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 提示&#xff1a; 树中节点数目在范围 [1, 1000] 内 -100 < Node.v…

通过盲对抗性扰动实时击败基于DNN的流量分析系统

文章信息 论文题目&#xff1a;Defeating DNN-Based Traffic Analysis Systems in Real-Time With Blind Adversarial Perturbations 期刊&#xff08;会议&#xff09;&#xff1a;30th USENIX Security Symposium 时间&#xff1a;2021 级别&#xff1a;CCF A 文章链接&…

理论U3 决策树

文章目录 一、决策树算法1、基本思想2、构成1&#xff09;节点3&#xff09;有向边/分支 3、分类步骤1&#xff09;第1步-决策树生成/学习、训练2&#xff09;第2步-分类/测试 4、算法关键 二、信息论基础1、概念2、信息量3、信息熵&#xff1a; 二、ID3 (Iterative Dichotomis…

Python+requests搭建接口自动化测试框架

一、接口自动化的意义&#xff08;为什么做这个框架&#xff09; 新版本上线时之前版本的功能需要进行回归测试&#xff0c;导致大量的重复性手工测试。引入自动化测试可以使用自动化技术代替部分手工的回归性测试&#xff0c;解放更多人力做其它更有必要的事情。但目前项目UI变…

抖去推账号矩阵+无人直播+文案引流系统开发搭建--开源

核心技术 1. AI自动直播&#xff1a; 智能系统通过丰富可定制的文案库&#xff0c; 拥有有料有趣的灵魂。不仅能自动语音讲解内容&#xff0c;还可以在直播中和用户灵活互动。直播中可将团购商品同话术自动上下架。 2. AI剪辑 可一键智能批量成片&#xff0c;也可跟着模板剪…

书生·浦语大模型全链路开源体系 学习笔记 第二课

基础作业&#xff1a; 使用 InternLM-Chat-7B 模型生成 300 字的小故事&#xff08;需截图&#xff09;。熟悉 hugging face 下载功能&#xff0c;使用 huggingface_hub python 包&#xff0c;下载 InternLM-20B 的 config.json 文件到本地&#xff08;需截图下载过程&#xf…

基于STM32和MPU6050的自平衡小车设计与实现

基于STM32和MPU6050的自平衡小车设计和实现是一个有趣而具有挑战性的项目。在本文中&#xff0c;我们将介绍如何利用STM32微控制器和MPU6050传感器实现自平衡小车&#xff0c;并提供相应的代码示例。 1. 硬件设计 自平衡小车的核心硬件包括STM32微控制器、MPU6050传感器以及电…

基于springboot+html的汽车销售管理系统设计与实现

基于springboothtml的汽车销售管理系统 &#x1f345; 作者主页 央顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; 前言 随着汽车市场的快速发展&#xff0c;汽车销售企业面临着越来越大的管理…

计算机基础面试题 |18.精选计算机基础面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

【代码复现系列】paper:CycleGAN and pix2pix in PyTorch

或许有冗余步骤、之后再优化。 1.桌面右键-git bash-输入命令如下【git clone https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix】 2.打开anaconda的prompt&#xff0c;cd到pytorch-CycleGAN-and-pix2pix路径 3.在prompt里输入【conda env create -f environment.y…

基于SSM的校园二手交易管理系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

多项式回归

定义&#xff1a;使用多项式函数来拟合数据点&#xff0c;以预测因变量和自变量之间的关系。 基本形式如下&#xff1a; 理解&#xff1a; 在了解了线性回归模型之后&#xff0c;我们会意识到数据集上的点有时使用曲线拟合效果会更好。我们可以选择使用多项式曲线进行拟合。 …

Gromacs轨迹相关

1. 如何用VMD保存和查看gromacs的模拟轨迹 sob老师&#xff0c;请问一下&#xff0c;vmd载入两个文件后&#xff0c;是在TK中输入animate delete 什么命令可以删除第0帧么&#xff1f; 老师&#xff0c;在载入轨迹的时候出现out of memory&#xff0c;md.xtc文件过大导致vmd闪…

图解JVM (及一些垃圾回收\GC相关面试题 持续更新)

垃圾回收&#xff0c;顾名思义就是释放垃圾占用的空间&#xff0c;从而提升程序性能&#xff0c;防止内存泄露。当一个对象不再被需要时&#xff0c;该对象就需要被回收并释放空间。 Java 内存运行时数据区域包括程序计数器、虚拟机栈、本地方法栈、堆等区域。其中&#xff0c;…

Unity组件开发--相机跟随角色和旋转

1.相机跟随组件&#xff0c;节点&#xff1a; 2.相机跟随组件脚本&#xff1a; using System; using System.Collections; using System.Collections.Generic; using Unity.Burst.Intrinsics; using UnityEngine; using UnityEngine.UI;public class CameraFollow : Singleton&…

软件测试|深入理解SQL CROSS JOIN:交叉连接

简介 在SQL查询中&#xff0c;CROSS JOIN是一种用于从两个或多个表中获取所有可能组合的连接方式。它不依赖于任何关联条件&#xff0c;而是返回两个表中的每一行与另一个表中的每一行的所有组合。CROSS JOIN可以用于生成笛卡尔积&#xff0c;它在某些情况下非常有用&#xff…

服务器监控软件夜莺使用(二)

文章目录 一、采集器安装1. Categraf简介2. Categraf部署3. 测试服务器部署4. 系统监控插件5. 显卡监控插件6. 服务监控插件 二、监控仪表盘1. 机器列表2. 系统监控3. 服务监控 三、告警配置1. 邮件通知2. 告警规则3. 告警自愈 一、采集器安装 1. Categraf简介 Categraf 需要…

一种DevOpts的实现方式:基于gitlab的CICD(二)

写在之前 前文已经搭建了基于gitlab的cicd环境&#xff0c;现在我们来更近一步&#xff0c;结合官网给出的案例来详细介绍如何一步一步实现CI的过程。 基于gitlab搭建一个前端静态页面 环境依赖&#xff1a; gitlabgitlab runner&#xff08;docker版本&#xff09; 环境达吉…

【华为】IPsec VPN 实验配置(动态地址接入)

【华为】IPsec VPN 实验配置&#xff08;动态地址接入&#xff09; 注意实验需求配置思路配置命令拓扑R1基础配置配置第一阶段 IKE SA配置第二阶段 IPsec SA ISP_R2基础配置 R3基础配置配置第一阶段 IKE SA配置第二阶段 IPsec SA PCPC1PC2 检查建立成功查看命令清除IKE / IPsec…