用Python轻松实现Word文档到PDF的批量转换

Word文件(Doc、Docx)和PDF文件都是使用广泛的文档格式。其中,Word文档格式在编辑内容时优势明显,能够满足各种编辑需求。但想要保证文档的完整和格式的一致,以及使文档有良好的跨平台兼容性,PDF格式则是更好的选择。PDF文档可以在各种平台和设备上打开,并且保持文档的格式和外观一致,同时还有更好的安全性。因此,将Word文档转换为PDF文档也成为一种常见需求。本文将介绍如何使用Spire. Doc for Python实现将Word文档转换为PDF文件,包括批量转换以及各种转换参数的设置

文章目录

      • 引入Spire.Doc for Python
    • 将单个Word文档转换为PDF文件
    • 批量转换Word文档为PDF文件
    • 转换时设置转换参数(加密、包含书签、嵌入字体、图片质量)

引入Spire.Doc for Python

此教程需要使用Spire.Doc for Python。可通过以下 pip 命令将它们轻松安装到 VS 代码中。

pip install Spire.Doc

将单个Word文档转换为PDF文件

Spire.Doc for Python 中的 Document.SaveToFile() 方法,可将 Word 保存为 PDF、XPS、HTML、RTF 等格式。下面是直接将一个Word文档保存为PDF文件的操作步骤:

  • 创建一个 Document 类的对象。
  • 使用 Document.LoadFromFile() 方法加载 Word 文档示例。
  • 使用 Doucment.SaveToFile() 方法将文档保存为 PDF 文件。

Python

from spire.doc import *
from spire.doc.common import *# 创建一个Document类的对象
document = Document()# 载入Word文档
document.LoadFromFile("G:/文档/示例1.docx")# 保存文档为PDF文件
document.SaveToFile("输出/PDF1.pdf", FileFormat.PDF)
document.Close()

转换结果
将单个Word文档转换为PDF文件

批量转换Word文档为PDF文件

下面是将Word文档批量转换为PDF文件的操作步骤,包含Doc和Docx格式的Word文档:

  • 创建一个 Document 类的对象。
  • 遍历指定文件夹中的所有文件,并判断出后缀为.doc和.docx的文件。
  • 使用 Document.LoadFromFile() 方法逐个载入文档。
  • 使用 Document.SaveToFile() 方法转换文档为PDF格式并保存到指定路径。

Python

import os
from spire.doc import *
from spire.doc.common import *# 获取文件夹路径
folder_path = "G:/文档"# 创建一个Document类的对象
document = Document()# 遍历文件夹中的所有文件
for file_name in os.listdir(folder_path):if file_name.endswith(".doc") or file_name.endswith(".docx"):# 构建完整的文件路径file_path = os.path.join(folder_path, file_name)# 载入Word文档document.LoadFromFile(file_path)# 生成输出文件路径output_path = os.path.join("输出1", os.path.splitext(file_name)[0] + ".pdf")# 保存文档为PDF文件document.SaveToFile(output_path, FileFormat.PDF)document.Close()

转换结果
批量转换Word文档为PDF文件

转换时设置转换参数(加密、包含书签、嵌入字体、图片质量)

Spire.Doc for Python还支持在转换Word文档时进行加密、包含书签、嵌入字体、设置图片质量等操作,通过 ToPdfParameterList 类下的属性以及 Document.JPEGQuality 属性实现。详细操作步骤如下:

  • 创建一个 Document 类的对象。
    使用 Document.LoadFromFile() 方法加载 Word 文档示例。
    创建一个 ToPdfParameterList 类的对象。
    使用 ToPdfParameterList.PdfSecurity.Encrypt() 方法设置查看密码和权限密码。
    使用 ToPdfParameterList.CreateWordBookmarks 属性设置直接转换Word文档书签到PDF书签,或使用 ToPdfParameterList.CreateWordBookmarksUsingHeadings 属性设置从各级标题生成PDF书签。
    使用 ToPdfParameterList.IsEmbeddedAllFonts 属性设置嵌入字体。
    使用 Document.JPEGQuality 属性设置图像质量。
    使用 Doucment.SaveToFile() 方法应用参数将文档保存为 PDF 文件。

Python

from spire.doc import *
from spire.doc.common import *# 创建一个Document类的对象
document = Document()# 载入Word文档
document.LoadFromFile("G:/文档/示例1.docx")# 创建一个ToPdfParameterList类的对象
parameter = ToPdfParameterList()# 设置查看密码和权限密码
openpsd = "password"
permissionpsd = "permission"
parameter.PdfSecurity.Encrypt(openpsd, permissionpsd, PdfPermissionsFlags.Default, PdfEncryptionKeySize.Key128Bit)# 包含书签
parameter.CreateWordBookmarks = True
# 使用标题创建书签
# parameter.CreateWordBookmarksUsingHeadings = True# 嵌入字体
parameter.IsEmbeddedAllFonts = True# 设置图片质量
document.JPEGQuality = 40#保存文档为PDF文件
document.SaveToFile("输出/PDF2.pdf", parameter)
document.Close()

转换结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以上就是使用Spire.Doc for Python将Word文档转换为PDF文件的操作方法介绍。如有疑问可前往 官方论坛 讨论。

Spire.Doc 产品QQ交流群:913816707

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】DNS系统,ICMP协议,NAPT技术

遏制自己内心的知识优越感,才能让你发自内心的去尊重他人,避免狂妄自大,才能让你不断的丰富自己的内心。 文章目录 一、DNS系统1.DNS服务器返回域名对应的ip2.使用dig工具分析DNS过程3.浏览器中输入url后发生的事情? 二、ICMP协议…

Hibernate(Spring Data)抓取策略

文章目录 示例代码放到最后,使用的是Springboot 项目1. 简介2. Hibernate抓取策略分类2.1 即时加载(Eager Loading)2.2 延迟加载(Lazy Loading)2.3 子查询加载(Subselect Loading)2.4 基于批处理…

使用spring自带的发布订阅来实现发布订阅

背景 公司的项目以前代码里面有存在使用spring自带发布订阅的代码,因此稍微学习一下如何使用,并了解一下这种实现方式的优缺点。 优点 实现方便,代码方面基本只需要定义消息体和消费者,适用于小型应用程序。不依赖外部中间件&a…

1992-2022年全国31省市产业升级、产业结构高级化水平面板数据(含原始数据和计算过程)

1992-2022年全国31省市产业升级、产业结构高级化水平面板数据(含原始数据和计算过程) 1、时间:1992-2022年 2、指标:地区生产总值、第一产业增加值、第二产业增加值、第三产业增加值、第一产业占GDP比重、第二产业占GDP比重、第…

Excel·VBA二维数组组合函数、组合求和

目录 1,二维数组组合函数举例 2,组合求和 之前的文章《ExcelVBA数组组合函数、组合求和》和《ExcelVBA数组排列函数》,都是针对一维数组的组合和排列 二维数组组合:对一个m行*n列的二维数组,每行抽取1个元素进行组合&a…

PyCharm切换虚拟环境

PyCharm切换虚拟环境 为了满足不同任务需要不同版本的包,可以在Anaconda或者Miniconda创建多个虚拟环境文件夹,并在PyCharm下切换虚拟环境。 解决方案 1、打开Ananconda Prompt 2、创建自己的虚拟环境 格式:conda create -n 虚拟环境名字…

部署你自己的导航站-dashy

现在每天要访问的网页都太多了,尽管chrome非常好用,有强大的标签系统。但是总觉的少了点什么。 今天我就来分享一个开源的导航网站系统 dashy。这是一个国外的大佬的开源项目 github地址如下:https://github.com/Lissy93/dashy 来简单说一下…

机器学习和数据挖掘02-Gaussian Naive Bayes

概念 贝叶斯定理: 贝叶斯定理是概率中的基本定理,描述了如何根据更多证据或信息更新假设的概率。在分类的上下文中,它用于计算给定特征集的类别的后验概率。 特征独立性假设: 高斯朴素贝叶斯中的“朴素”假设是,给定…

android studio安装教程

1、android studio 下载 下载网址:Download Android Studio & App Tools - Android Developers 2、开始安装 因为不需要每次连接手机进行调试,android studio给我们提供了模拟器调试环境。 一般选择自定义安装,这样可选sdk以及下载路径…

@Async引发的循环依赖问题

这个以前分析过了,但是再看的时候感觉写的太乱了(流水账),这个是精简版本。 bug复现 先上bug,众所周知,spring通过实例化和属性注入分开解决了循环依赖,理论上也不会有问题。但是意外就那么来了,经过排查是…

CI/CD 持续集成 持续交付

CI(Continuous integration)持续集成 参考:https://www.jianshu.com/p/2132949ff84a 持续集成是指多名开发者在开发不同功能代码的过程当中,可以频繁的将代码行合并到一起并切相互不影响工作。 持续集成的目的,是让…

操作符算数转换题

目录 1.交换两个变量(不创建临时变量) 2.统计二进制中1的个数 3.打印整数二进制的奇数位和偶数位 4.求两个数二进制中不同位的个数 5.【一维数组】有序序列合并 6.获得月份天数 7.变种水仙花数 8.选择题总结tips 这篇博文主要分享操作符&算…

Apache SeaTunnel 2.3.3 版本发布,CDC 支持 Schema Evolution!

时隔两个月, Apache SeaTunnel 终于迎来大版本更新。此次发布的 2.3.3 版本在功能和性能上均有较大优化改进,其中大家期待已久的 CDC Schema evolution(DDL 变更同步)、主键 Split 拆分、JDBC Sink 自动建表功能、SeaTunnel Zeta …

【GO】LGTM_Grafana_Tempo(2)_官方用例改后实操

最近在尝试用 LGTM 来实现 Go 微服务的可观测性,就顺便整理一下文档。 Tempo 会分为 4 篇文章: Tempo 的架构官网测试实操跑通gin 框架发送 trace 数据到 tempogo-zero 微服务框架使用发送数据到 tempo 根据官方文档实操跑起来 tempo,中间根…

为何反射探针关闭Mipmap后变成了白图

1)为何反射探针关闭Mipmap后变成了白图 2)2021.3 Android从AssetBundle中加载视频播放失败问题 3)SBP是否可以解决打包时FBX等模型文件中额外的GameObject 4)Addressables加载已打包过的Prefab后Mono脚本丢失 这是第349篇UWA技术知…

servlet初体验之环境搭建!!!

我们需要用到tomcat服务器,咩有下载的小伙伴看过来:如何正确下载tomcat???_明天更新的博客-CSDN博客 1. 创建普通的Java项目,并在项目中创建libs目录存放第三方的jar包。 建立普通项目 创建libs目录存放第三…

高速公路自动驾驶汽车超车控制方法研究

目录 摘要 ............................................................................................................ I Abstract ...................................................................................................... II 目录 ...............…

ZooKeeper集群环境搭建

🥇🥇【大数据学习记录篇】-持续更新中~🥇🥇 个人主页:beixi 本文章收录于专栏(点击传送):【大数据学习】 💓💓持续更新中,感谢各位前辈朋友们支持…

端到端自动驾驶综述

End-to-end Autonomous Driving: Challenges and Frontiers 文章脉路 Introduction 从经典的模块化的方法到端到端方法的一个对比, 讲了各自的优缺点, 模块化的好处是各个模块都有自己明确的优化的目标, 可解释性较强, 且容易debug, 缺点是各个模块优化的目标并不是最终的驾…

开始MySQL之路——MySQL的DataGrip图形化界面

下载DataGrip 下载地址:Download DataGrip: Cross-Platform IDE for Databases & SQL 安装DataGrip 准备好一个文件夹,不要中文和空格 C:\Develop\DataGrip 激活DataGrip 激活码: VPQ9LWBJ0Z-eyJsaWNlbnNlSWQiOiJWUFE5TFdCSjBaIiwibGl…