在PyCharm中运行《Word助手》即可进入如图1所示的系统主界面。在该界面中,通过顶部的工具栏可以选择所要进行的操作。

doc转为doc 批量 python word转pdf python_word


具体的操作步骤如下:

(1)实现Word转PDF。在Word助手的主窗体中,单击工具栏中的“Word转PDF”按钮,将打开“Word转PDF”子窗体,在该窗体中,首先单击“请选择Word文本所在路径”右侧的“…”浏览按钮,选择要转换源路径,这时系统将自动获取该路径下的全部Word文档文件,并显示在下方的列表中,然后单击“转换后PDF文件保存路径”文本框右侧的“…”浏览按钮,接下来,如果是想进行批量转换,那么单击“批量转换”按钮,开始转换,同时显示进度条,如图2所示,转换完成后,对应的文件路径将显示在下面的列表中。如果是合为一个PDF文件,则单击“合为一个PDF”按钮,开始转换,此时也将显示进度条,转换完成后,将显示合并后的文件路径到列表中,如图3所示。在PDF文件列表中,双击文件路径,可以使用PDF阅读软件打开该文件。

doc转为doc 批量 python word转pdf python_python_02


(2)实现提取Word文档页码。在Word助手的主窗体中,单击工具栏中的“统计Word文档页码”按钮,将打开“统计Word文档页码”子窗体,在该窗体中,首先单击“请选择Word文本所在路径”右侧的“…”浏览按钮,选择要统计文件的源路径,这时系统将自动获取该路径下的全部Word文档文件,并显示在下方的列表中,然后单击“开始统计”按钮,开始统计页码,同时显示进度条,如图4所示,统计完成后,每个Word文档的路径及对应的页码将显示在下面的表格中,并且在表格下方显示总页码,如图5所示。

doc转为doc 批量 python word转pdf python_pdf_03


(3)在Word助手的主窗体中,单击工具栏中的“统计提取总目录”按钮,将打开“提取总目录”子窗体,在该窗体中,首先单击“请选择Word文本所在路径”右侧的“…”浏览按钮,选择要统计文件的源路径,这时系统将自动获取该路径下的全部Word文档文件,并显示在下方的列表中,然后单击“开始提取”按钮,开始提取目录,同时显示进度条,如图6所示,统计完成后,在结果栏中将显示目录文件保存的位置,单击其右侧的“打开文件”按钮,将打开该文件,如图7所示。

doc转为doc 批量 python word转pdf python_pycharm_04


部分源码如下,其余完整详见下载。

wx供重浩:创享日记

对话框发送:python文档助手

获取完整源码源文件+说明文档+可执行文件等

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'mainWindow.ui'
# Created by: PyQt5 UI code generator 5.11.3
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QPixmap, QBrush

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(792, 572)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 792, 18))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.toolBar = QtWidgets.QToolBar(MainWindow)
        self.toolBar.setObjectName("toolBar")
        MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
        self.actionWord_PDF = QtWidgets.QAction(MainWindow)
        self.actionWord_PDF.setObjectName("actionWord_PDF")
        self.action_Word = QtWidgets.QAction(MainWindow)
        self.action_Word.setObjectName("action_Word")
        self.action_list = QtWidgets.QAction(MainWindow)
        self.action_list.setObjectName("action_list")
        self.toolBar.addAction(self.actionWord_PDF)
        self.toolBar.addSeparator()
        self.toolBar.addAction(self.action_Word)
        self.toolBar.addSeparator()
        self.toolBar.addAction(self.action_list)
        # # 设置窗体背景
        # palette = QtGui.QPalette()
        # # 设置窗体背景自适应
        # palette.setBrush(MainWindow.backgroundRole(),QBrush(QPixmap("./image/bg.jpg").scaled(MainWindow.size(),QtCore.Qt.IgnoreAspectRatio,QtCore.Qt.SmoothTransformation)))
        # MainWindow.setPalette(palette)
        # MainWindow.setAutoFillBackground(True) # 设置自动填充背景
        # # 禁止显示最大化按钮及调整窗体大小
        # MainWindow.setFixedSize(792, 572);
        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))
        self.actionWord_PDF.setText(_translate("MainWindow", "Word转PDF"))
        self.actionWord_PDF.setToolTip(_translate("MainWindow", "<html><head/><body><p>Word转PDF</p></body></html>"))
        self.action_Word.setText(_translate("MainWindow", "统计Word文档页码"))
        self.action_Word.setToolTip(_translate("MainWindow", "<html><head/><body><p>统计Word文档的总页码</p></body></html>"))
        self.action_list.setText(_translate("MainWindow", "提取总目录"))
        self.action_list.setToolTip(_translate("MainWindow", "<html><head/><body><p>提取Wrod文档总目录</p></body></html>"))

Microsoft Word在当前使用中是占有巨大优势的文字处理器,这使得Word专用的档案格式Word 文件(.doc)成为事实上最通用的标准。Word文件格式的详细资料并不对外公开。Word文件格式不只一种,因为随Word软件本身的更新,文件格式也会或多或少的改版,新版的格式不一定能被旧版的程序读取(大致上是因为旧版并未内建支援新版格式的能力)。微软已经详细公布Word 97的DOC格式,但是较新的版本资料仍未公开,只有公司内部、政府与研究机构能够获知。业界传闻说某些Word文件格式的特性甚至连微软自己都不清楚。其他与Word竞争的办公室作业软件,都必须支援事实上最通用的Word专用的档案格式。因为Word文件格式的详细资料并不对外公开,通常这种兼容性是藉由逆向工程来达成。许多文字处理器都有汇出、汇入Word档案专用的转换工具,譬如AbiWord或OpenOffice。(参照文本编辑器当中关于其他竞争软件的说明。)Apache Jakarta POI是一个开放原始码的Java数据库,其主要目标是存取Word的二进制文件格式。不久前,微软自己也提供了检视器,能够不用Word程序就检视Word文件。例:Word Viewer 2003。Microsoft office Word 97到Microsoft office Word 2003之前的Word文件格式都是二进制文件格式。不久以前,微软声明他们接下来将以XML为基础的档案格式作为他们办公室套装软件的格式。Word 2003提供WordprocessingML的选项。这是一种公开的XML档案格式,由丹麦政府等机构背书支持。Word 2003的专业版能够直接处理非微软的档案规格。