Python实现doc,docx批量转换为pdf

作者:神秘网友 发布时间:2021-02-28 13:50:05

Python实现doc,docx批量转换为pdf

环境:windows + office
依赖库:pywin32
功能:doc,docx格式文件批量转换为pdf格式文件
from win32com.client import gencache
from win32com.client import constants, gencache
import os


def createPdf(wordPath, pdfPath):
    """
    word转pdf
    :param wordPath: word文件路径
    :param pdfPath:  生成pdf文件路径
    """
    word = gencache.EnsureDispatch('Word.Application')
    doc = word.Documents.Open(wordPath, ReadOnly=1)
    doc.ExportAsFixedFormat(
        pdfPath,
        constants.wdExportFormatPDF,
        Item=constants.wdExportDocumentWithMarkup,
        CreateBookmarks=constants.wdExportCreateHeadingBookmarks)
    word.Quit(constants.wdDoNotSaveChanges)


def getfilenames(folderPath):
    names = []
    for root, dirs, files in os.walk(folderPath):
        for file in files:
            if os.path.splitext(file)[1] == '.doc' or os.path.splitext(
                    file)[1] == '.docx':
                names.append(file)
    return names


def createPdfs(folderPath):
    """
    word批量转换pdf
    :folderPath: 待转换文件所在文件夹
    """
    word = gencache.EnsureDispatch('Word.Application')
    names = getfilenames(folderPath)
    for name in names:
        suff = '.pdf'
        nonsuffname = os.path.splitext(name)[0]
        wordfilename = os.path.join(folderPath, name)
        pdffilename = os.path.join(folderPath, nonsuffname) + suff
        doc = word.Documents.Open(wordfilename, ReadOnly=1)
        doc.ExportAsFixedFormat(
            pdffilename,
            constants.wdExportFormatPDF,
            Item=constants.wdExportDocumentWithMarkup,
            CreateBookmarks=constants.wdExportCreateHeadingBookmarks)
        doc.Close()
        print(pdffilename + ' ....Done!')

    word.Quit(constants.wdDoNotSaveChanges)


if __name__ == '__main__':
    folderPath = r'D:\newfolder'
    createPdfs(folderPath)
    #createPdf(wordPath, pdfPath)

Python实现doc,docx批量转换为pdf 相关文章

  1. 【剑指Offer-35】复杂链表的复制

    问题 请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 // Definition for a Node.class Node {public: int val; Node* next; Node* random

  2. 基于docker的zookeeper+dubbo入门案例

    目录 环境 创建容器myzookeeper并运行 步骤 查看容器运行情况 查看zookeeper内部信息 Dubbo管理平台dubbo-admin的安装 dubbo-admin 前置条件 步骤 创建并运行容器dubbo-admin 设置注册中心地址 运行结果 容器运行状况 访问dubbo-admin 补充说明 关于dubbo-adm

  3. promise的自定义代码实现

    promise的几个关键问题 如何改变 promise 的状态 (1) resolve(value): 如果当前是 pending 就会变为 resolved (2) reject(reason): 如果当前是 pending 就会变为 rejected (3) 抛出异常: 如果当前是 pending 就会变为 rejected 一个 promise 指定多个成功/失

  4. Go语言实现布谷鸟过滤器

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/453 介绍 在我们工作中,如果遇到如网页 URL 去重、垃圾邮件识别、大集合中重复元素的判断一般想到的是将集合中所有元素保存起来,然后通过比较确定。如果通过性能最

  5. jquery对象与Dom对象

    !DOCTYPE htmlhtmlhead meta charset="utf-8" titlejquery对象与Dom对象/title/headbodyinput type="button" value="点我" id="btn"script type="text/javascript" src="jquery.js"/scriptscript type="text/javascript" // console.log( document.getElemen

  6. Reactive Spring实战 -- 理解Reactor的设计与实现

    Reactor是Spring提供的非阻塞式响应式编程框架,实现了Reactive Streams规范。 它提供了可组合的异步序列API,例如Flux(用于[N]个元素)和Mono(用于[0 | 1]个元素)。 Reactor Netty项目还支持非阻塞式网络通信,非常适用于微服务架构,为HTTP(包括Websoc

  7. 非常干货:Python 探针实现原理

    本文呢,将简单讲述一下 Python 探针的实现原理。同时为了验证这个原理,我们也会一起来实现一个简单的统计指定函数执行时间的探针程序。 探针的实现主要涉及以下几个知识点: sys.meta_path sitecustomize.py sys.meta_path sys.meta_path 这个简单的来说就

  8. 使用Node.JS实现注册和登录功能(笔记)

    server.js页面代码 // 引入需要的依赖const express=require('express'); //框架名const cookieParser=require('cookie-parser'); //const cookieSession=require('cookie-session');const bodyParser=require('body-parser'); //获取post请求数据//获取post

  9. 【python3.x】发送自动化测试报告邮件

    ?SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。python的 smtplib 提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。 ?python发邮件主要需要两个

  10. Python基础语法函数

    函数是什么 Python中的函数与数学中的函数不同,它不再只是公式,而是实实在在有着自己特定功能的代码。其实在潜移默化中我们已经有所接触了。 比如print()函数,range()函数,type()函数等。 函数各式各样,或简单或复杂,但其本质却好是相通的:给函数一些

每天更新java,php,javaScript,go,python,nodejs,vue,android,mysql等相关技术教程,教程由网友分享而来,欢迎大家分享IT技术教程到本站,帮助自己同时也帮助他人!

Copyright 2020, All Rights Reserved. Powered by 跳墙网(www.tqwba.com)|网站地图|关键词