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

news2024/10/6 11:18:27

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.coloradmin.cn/o/954191.html

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

相关文章

点对点传输技术可实现更大的文件传输

互联网的早期主要是基于点对点的系统。这是一个由学者和研究人员构成的网络,连接到这个网络的计算机都是同等的,因为每台计算机都提供了尽可能多的信息。在点对点连接的初期,不需要考虑快速传输大型文件。 随着互联网的发展,客户端…

strlen是碰到第一个字符串结束符‘\0‘就结束,所以长度不包括‘\0‘。定义数组时会默认在字符串后面添加一个‘\0‘

1 字符串数组 定义字符串数组的时候&#xff0c;会默认在字符串后面添加一个’\0’ 2 strlen 在碰到第一个字符串结束符’\0’的时候就结束计算&#xff0c;所以strlen的长度不包括’\0’。 3 实例 #include <stdio.h> #include <string.h>int main(void) {in…

Windows下将nginx等可执行文件添加为服务

Windows下将nginx等可执行文件添加为服务 为什么将可执行文件添加为服务&#xff1f;将可执行文件添加为服务的步骤步骤 1&#xff1a;下载和安装 Nginx步骤 2&#xff1a;添加为服务方法一&#xff1a;使用 Windows 自带的 sc 命令方法二&#xff1a;使用 NSSM&#xff08;Non…

[Go版]算法通关村第十六关青铜——原来滑动窗口如此简单

目录 应用了滑动窗口思想的示例滑动窗口的基本思想两个入门题题目&#xff1a;子数组最大平均数思路分析&#xff1a;计算滑动窗口值总和为 right -left复杂度&#xff1a;时间复杂度 O ( n ) O(n) O(n)、空间复杂度 O ( 1 ) O(1) O(1)Go代码 题目&#xff1a;最长连续递增序列…

unity 物体至视图中心以及新对象创建位置

如果游戏对象不在视野中心或在视野之外&#xff0c; 一种方法是双击Hierarchy中的对象名称 另一种是选中后按F 新建物体时对象的位置不是在坐标原点&#xff0c;而是在当前屏幕的中心

【Android】SDK安装及配置

一、下载SDK Tools https://www.androiddevtools.cn 以windows10系统为例&#xff0c;下载压缩版直接解压即可。 二、安装SDK Tools 解压后双击运行SDK Manager.exe 一般根据默认推荐安装即可。 如果无法打开SDK Manager&#xff0c;可以参考&#xff1a;https://blog.cs…

【Ubuntu】解决ubuntu虚拟机和物理机之间复制粘贴问题(无需桌面工具)

解决Ubuntu虚拟机和物理机之间复制粘贴问题 第一步 先删除原来的vmware tools&#xff08;如果有的话&#xff09; sudo apt-get autoremove open-vm-tools第二步 安装软件包&#xff0c;一般都是用的desktop版本&#xff08;如果是server换一下&#xff09; sudo apt-get …

视频云存储/安防监控视频/智能分析网关V3裸土未覆盖/苫盖算法功能详解

随着经济的发展和建筑工地的增多&#xff0c;对于土堆的裸露情况实时监测和管理变得尤为重要。为了解决这一问题&#xff0c;TSINGSEEE青犀AI智能分析网关V3的裸土未苫盖算法就能很好地解决。 AI算法模型可以实时识别路面/建筑工地中的土堆是否裸露&#xff0c;将工地、道路等…

Erasure-Code(纠删码) 最佳实践

Erasure-Code(纠删码) 最佳实践 1. 纠删码原理 这个星球产生的数据越来越庞大&#xff0c;差不多2010年开始各大互联网公司大都上线了系统以应对数据膨胀带来的成本增长。Erasure-Code&#xff08;纠删码&#xff09;技术应用其中。典型如Google 新一代分布式存储系统colossu…

一种借助MYSQL递归CTE生成所有的组合情况的实现方法

需求说明 有如下表和数据&#xff1a; Nname1户口2查询机构数过多3危险驾驶4多头用信 需要输出name里的所有组合情况&#xff0c;即单个值&#xff0c;两两组合&#xff0c;三个组合、四个组合。结果为2的n次方-1中情况&#xff0c;这里是15。 预期结果为&#xff1a; Com…

DP358 11MHz 增益带宽轨到轨输出运算放大器

DP358、DP321、DP323、DP324是一款低噪声、低压、低 功耗轨到轨输出运放大器&#xff0c;该系列放大器的增益带宽为 11MHz,压摆率为 8.5V/uS,其中DP323 在掉电工作模式下待机电流小于1uA。该系列放大器可以广泛应用于各种电子产品领域。 主要特性: 轨到轨最大输入输出失调电压…

国标GB28181视频监控EasyGBS国标视频平台分享链接不生效的问题解决方案

EasyGBS平台可提供流媒体接入、处理、转发等服务&#xff0c;支持内网、公网的监控设备通过国标GB/T28181协议进行视频监控直播。平台可拓展性强&#xff0c;部署灵活&#xff0c;可实现的视频能力有&#xff1a;实时直播、视频录像、语音对讲、云存储、检索及回放、告警、级联…

【OpenCV入门】第三部分——绘制图形与文字

文章结构 线段的绘制矩形的绘制圆形的绘制多边形的绘制文字的绘制文字的斜体效果文字的垂直镜像效果在图像上绘制文字 动态绘制图形 线段的绘制 使用 line() 方法可绘制长短不一的、粗细各异的、五颜六色的线段。 img cv2.line(img,pt1,pt2,color,thickness)img&#xff1a;…

苹果使用3D打印技术制造Apple Watch Series 9手表外壳

据彭博社的马克・古尔曼报道&#xff0c;苹果公司正在使用 3D 打印技术来制造即将推出的部分Apple Watch Series 9 的外壳。这种制造工艺可以节省传统数控加工所需的大量金属材料&#xff0c;同时缩短生产时间。这与之前苹果分析师郭明錤的说法相吻合。 苹果公司自2021年推出Ai…

【三等奖方案】小样本数据分类任务赛题「痛!太痛了!」团队解题思路

第十届CCF大数据与计算智能大赛&#xff08;2022 CCF BDCI&#xff09;已圆满结束。大赛官方竞赛平台DataFountain&#xff08;简称DF平台&#xff09;将陆续释出各赛题获奖队伍的方案思路。 本方案为【小样本数据分类任务】赛题的三等奖获奖方案&#xff0c;赛题地址&#xf…

亚马逊自动广告如何投放?这些技巧你了解嘛!

现如今&#xff0c;亚马逊店铺为了能够提升产品的转化率&#xff0c;为了增加产品曝光率&#xff0c;会选择投放站内广告&#xff0c;现在大多数的亚马逊店铺都有在站内投放广告&#xff0c;不然的话要想获取到自然流量实在是太难了。 很多没有投放站内广告的亚马逊店铺&#…

【数据结构】C语言队列(详解)

前言: &#x1f4a5;&#x1f388;个人主页:​​​​​​Dream_Chaser&#xff5e; &#x1f388;&#x1f4a5; ✨✨专栏:http://t.csdn.cn/oXkBa ⛳⛳本篇内容:c语言数据结构--C语言实现队列 目录 一.队列概念及结构 1.1队列的概念 1.2队列的结构 二.队列的实现 2.1头文…

Mybatis 里面的缓存机制

Mybatis 里面设计的二级缓存是用来提升数据的检索效率&#xff0c;避免每次数据的访问都需要去查询数据库。 一级缓存&#xff0c;是 SqlSession 级别的缓存&#xff0c;也叫本地缓存&#xff0c;因为每个用户在执行查询的时 候都需要使用 SqlSession 来执行&#xff0c; 为了避…

案例分享:西河水库安全监测信息化系统实施方案

一、项目概述1.1项目背景西河水库信息化工作已开展多年&#xff0c;但是由于西河水库监测设备都已经老化或者损坏&#xff0c;现有设备已渐渐不能满足新时期西河水库信息化和现代化发展需求。因此&#xff0c;灌区管理局拟在运用现代信息和通信技术手段感测、分析、整合水库运行…

【Git】(六)子模块跟随主仓库切换分支

场景 主仓库&#xff1a;TestGit 子模块&#xff1a;SubModule 分支v1.0 .gitmodules文件 [submodule "Library/SubModule"]path Library/SubModuleurl gitgitee.com:sunriver2000/SubModule.gitbranch 1.0.0.0 分支v2.0 .gitmodules文件 [submodule "Li…