python实现——WORD转PDF(全自动化,支持doc、docx)

前言

使用python提取所有word文件中的所有图片提到过doc转docx,其中提到过如果想转换为其他格式文件,需要在format文件名内修改,并用如下save as 参数
在这里插入图片描述
现在,就是利用这个参数,实现WORD转PDF

核心代码

利用如下代码进行格式互转(默认转换到与word文件同名路径下)

from win32com import client


# 转换doc为pdf
def doc2pdf(fn):
    word = client.Dispatch("Word.Application")  # 打开word应用程序
    # for file in files:
    doc = word.Documents.Open(fn)  # 打开word文件
    doc.SaveAs("{}.pdf".format(fn[:-4]), 17)  # 另存为后缀为".pdf"的文件,其中参数17表示为pdf
    doc.Close()  # 关闭原来word文件
    word.Quit()


# 转换docx为pdf
def docx2pdf(fn):
    word = client.Dispatch("Word.Application")  # 打开word应用程序
    # for file in files:
    doc = word.Documents.Open(fn)  # 打开word文件
    doc.SaveAs("{}.pdf".format(fn[:-5]), 17)  # 另存为后缀为".pdf"的文件,其中参数17表示为pdf    
    doc.Close()  # 关闭原来word文件
    word.Quit()


docx2pdf(r'C:\Users\asuka\Desktop\新建文件夹\1.docx')
doc2pdf(r'C:\Users\asuka\Desktop\新建文件夹\2.doc')

GIF演示

在这里插入图片描述

终极版

代码描述:
用来实现word文档转pdf的一个软件

特色:

  1. 可穿透指定路径下的所有文件,对找到的所有word文档进行操作,并把结果输出到指定路径中
  2. 支持WORD文档种的doc与docx两种格式
  3. 脚本可以直接运行,无需修改任何内容

注意事项:
请确认没有同名文件,否则文件会覆盖
需要安装相关的库

from win32com import client
import os

'''
代码描述:
用来实现word文档转pdf的一个软件

特色:
可穿透指定路径下的所有文件,对找到的所有word文档进行操作
并把结果输出到指定路径中

注意事项:
请确认没有同名文件,否则文件会覆盖
'''


# 转换doc为pdf
def doc2pdf(fn):
    word = client.Dispatch("Word.Application")  # 打开word应用程序
    doc = word.Documents.Open(fn)  # 打开word文件

    a = os.path.split(fn)  # 分离路径和文件
    b = os.path.splitext(a[-1])[0]  # 拿到文件名

    doc.SaveAs("{}\\{}.pdf".format(path1, b), 17)  # 另存为后缀为".pdf"的文件,其中参数17表示为pdf
    doc.Close()  # 关闭原来word文件
    word.Quit()


# 转换docx为pdf
def docx2pdf(fn):
    word = client.Dispatch("Word.Application")  # 打开word应用程序
    doc = word.Documents.Open(fn)  # 打开word文件

    a = os.path.split(fn)  # 分离路径和文件
    b = os.path.splitext(a[-1])[0]  # 拿到文件名

    doc.SaveAs("{}\\{}.pdf".format(path1, b), 17)  # 另存为后缀为".pdf"的文件,其中参数17表示为pdf
    doc.Close()  # 关闭原来word文件
    word.Quit()


# 获取指定路径下的所有word文件
# 可以穿透指定路径下的所有文件
def getfile(path):
    word_list = []  # 用来存储所有的word文件路径
    for current_folder, list_folders, files in os.walk(path):
        for f in files:  # 用来遍历所有的文件,只取文件名,不取路径名
            if f.endswith('doc') or f.endswith('docx'):  # 判断word文档
                word_list.append(current_folder + '\\' + f)  # 把路径添加到列表中
    return word_list  # 返回这个word文档的路径


if __name__ == '__main__':
    word_path = input('[+] 请给出word文档所在路径:')

    # 设置一个路径path1,保存输出结果
    print("[+] 请输入一个路径,用来存放所有的处理结果")
    print("[+] 或者按回车键,我将自动把处理之后的文件存放在你的桌面")
    path1 = input('')  # path1 用来存放所有的处理结果
    if len(path1):
        pass
    else:
        desktop_path = os.path.join(os.path.expanduser("~"), 'Desktop')  # 获取桌面路径
        path1 = os.path.join(desktop_path, '所有的处理结果')
        os.makedirs(path1)

    print('[+] 转换中,请稍等……')
    words = getfile(word_path)
    for word in words:
        if word.endswith('doc'):
            doc2pdf(word)
        else:
            docx2pdf(word)
    print('[+] 转换完毕')

GIF演示

在这里插入图片描述
在这里插入图片描述

  • 39
    点赞
  • 184
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
实现Python实现Word无损PDF,可以使用Python-docx库和PyPDF2库。首先,使用Python-docx库将Word文档换为PDF格式,然后使用PyPDF2库将PDF文件合并为一个PDF。以下是实现的步骤: 1. 安装Python-docx库和PyPDF2库。 2. 使用Python-docx库打开Word文档。 3. 创建一个空的PDF文件。 4. 遍历Word文档的每一页,将每一页的内容添加到PDF文件中。 5. 保存并关闭PDF文件。 6. 使用PyPDF2库将所有生成的PDF文件合并为一个PDF文件。 以下是一个示例代码: ```python from docx import Document from PyPDF2 import PdfWriter def word_to_pdf(word_file, pdf_file): # 打开Word文档 doc = Document(word_file) # 创建一个空的PDF文件 pdf_writer = PdfWriter() for page_num, page in enumerate(doc.pages): # 将每一页的内容添加到PDF文件中 pdf_writer.add_page(page) # 保存PDF文件 with open(pdf_file, 'wb') as f: pdf_writer.write(f) # 关闭Word文档 doc.close() # 调用函数进行word_to_pdf('input.docx', 'output.pdf') ``` 请将`input.docx`替换为要换的Word文档的路径,将`output.pdf`替换为保存PDF的路径。 这样,您就可以使用Python实现Word无损PDF了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [太方便了!利用Python对批量PdfWord](https://blog.csdn.net/lyc2016012170/article/details/117719980)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Python实用功能之pdf文件png图片数据](https://blog.csdn.net/Together_CZ/article/details/126335438)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值