曾静的博客

但行好事,莫问前程.

嗨,我是曾静 (@devzeng),目前暂居深圳。


这是我用来记录平日学习笔记的地方,欢迎您的访问.

使用Python批量将Word文档转换为PDF

最近一直在整理数据,刚好有一批Word文档需要批量另存为PDF格式的文档,使用win32com操作Word,写了个Python的脚本用于批量进行转换。

1、环境准备

(1) 安装

pip install pywin32

(2) 初始化

由于我的机器上面安装的是Office 2010, 安装完成pywin32之后,进入到Python安装路径\Lib\site-packages\win32com\client的目录下面执行如下代码:

python makepy.py -d "Microsoft Word 14.0 Object Library"

(3) 引用模块

import os, sys
from win32com.client import Dispatch, constants

2、关键代码

(1)遍历目录获取全部的Word文档

def fetchAllFile(path):
    files = []
    for dirpath, dirnames, filenames in os.walk(path):
        for file in filenames:
            ext = os.path.splitext(file)[1].lower()
            if ext == '.docx' or ext == '.doc':
                fullpath = os.path.join(dirpath, file)
                files.append(fullpath)
    return files

(2)将Word转换为PDF

def convertWordToPdf(docxPath, pdfPath):
    w = Dispatch("Word.Application")
    try:
        doc = w.Documents.Open(docxPath, ReadOnly=1)
        doc.ExportAsFixedFormat(pdfPath, constants.wdExportFormatPDF, Item=constants.wdExportDocumentWithMarkup, CreateBookmarks=constants.wdExportCreateHeadingBookmarks)
    except Exception, e:
        print e
    finally:
        w.Quit(constants.wdDoNotSaveChanges)

完整代码: https://github.com/hhtczengjing/convert-word-to-pdf

最近的文章

CentOS如何挂载远程盘

前段时间公司要迁移gitlab服务器,由于服务器剩余的空间不太多了,无法直接执行备份,考虑到Linux下面可以挂载其他机器的目录来直接使用,记录下整个操作的过程:安装环境(1) 检查nfs是否安装rpm -qa | grep nfs如果没有安装:yum install nfs-utils -y(2) 检查rpcbind是否安装rpm -qa | grep rpcbind如果没有安装:yum install rpcbind -y服务端配置vi /etc/exports/home/data ...…

Note继续阅读
更早的文章

如何创建一个私有的Gem库

近期看了下Cocoapods的一部分代码,结合之前做的iOS项目脚手架工具,突发奇想能不能做一个内部的工具库呢(类似于Cocoapods)。首先要解决的问题就是怎么样发布自己写的工具库,有没有类似于RubyGems这样的托管平台呢?查了一番资料找到了一个开源的项目- geminabox, 可以搭建一个托管的平台。搭建Gem私服前提条件是需要有Docker的环境,如果没有的话可以参考:CentOS安装Docker。(1) 创建并运行容器docker run -d -v /home/docke...…

Ruby继续阅读