用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协议…

网络编程socket慎重断开连接

网络编程socket慎重断开连接 业务场景心跳与连接报错与捕获 业务场景 我们公司是做智慧交通的,主要卖交通相关的硬件和软件硬件包括信号机、雷达、雷视、边缘盒子等,软件包括信控平台、管控平台等信号机通信协议有国标推荐协议,定义了一些接…

Hibernate(Spring Data)抓取策略

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

Nginx 配置记录-未完!

目的 Nginx和前端后端的关系都是密不可分的,但是它的配置又是很多的,我们有一些不常用的,所以我们要总结下来,这里我们提供一个样例,每次有新的配置,就先修改样例,让我们有迹可循,看…

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

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

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

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

windows下docker compose方式挂载数据卷volume遇到的问题

例子一,windows 下docker desk top部署TDengine td-compose.yml version: 3 services:tdengine1:image: tdengine/tdengine:latestcontainer_name: tdengine1hostname: tdengine1ports:- 6030:6030- 6041:6041- 6043-6049:6043-6049- 6043-6049:6043-6049/udpresta…

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

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

java.nio.ByteBuffer 学习笔记

目录 java 重复使用bytebuffer例子: java验证flip函数: flip讲解 以下内容转自: java.nio.ByteBuffer java 重复使用bytebuffer例子: import java.nio.ByteBuffer;public class ByteBufferExample {public static void main…

PyCharm切换虚拟环境

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

部署你自己的导航站-dashy

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

数据结构--树4.2.4(树、森林即二叉树的相互转换(仅供参考))

目录 一、树转换成二叉树步骤 二、森林转换成二叉树 三、二叉树到树、森林的转换 一、树转换成二叉树步骤 分两个步骤: 1、在树中所有的兄弟结点之间加一连线。 2、对每个结点,除了保留与其长子(最左边)的连线外,去…

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

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

西北大学计算机考研844经验分享(初试科目844-详细复习方法)

个人介绍 ​ 我本科就读于西安某双非一本计算机科学与技术专业,在2022年进行了半年的考研复习,从2022年6月开始陆陆续续复习,复习6个多月,上岸西北大学软件工程专业研究生,专业课分数129分。在读研一年来,…

android studio安装教程

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

安全移动设备TEE认证

安全之安全(security)博客目录导读 TEE之GP(Global Platform)认证汇总 目录

Rust 的四大类型的宏 (元编程)

文章目录 概念函数宏或声明宏(Function Macro)过程宏(Procedural Macro)类函数的过程宏(Function-like-procedural-macros)派生宏(Derive Macro)派生宏附加其他属性 属性宏&#xff…

@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 这篇博文主要分享操作符&算…