python跟着教程做界面

word助手

1、系统功能结构

系统功能结构

2、系统业务流程

系统业务流程

3、开发工具准备

  • python内置模块:os、_thread、sys、codecs、re
  • 第三方模块:PyQt5/PySide2、pyqt5-tools、PyPDF2、pywin32

4、文件夹组织结构

文件夹组织结构

  • wordtopdf -------- 项目文件夹
    • image -------- 保存图片的文件夹
    • tools -------- 工具类
    • ui -------- 保存UI界面文件的文件夹
    • venv -------- 虚拟环境
      • listWindow.py -------- 提取总目录窗口文件
      • mainWindow.py -------- 主窗体文件
      • pageWindow.py -------- 提取页码窗体文件
      • transformWindow.py -------- Word转PDF窗体文件
      • wordtopdf.py -------- 项目主文件

5. 编写工具模块

① 编写遍历目录模块

  1. 在tool文件夹建立common.py文件
  2. 软件经常需要遍历目录下文件,所以考虑到代码重用,建立次函数
from win32com import client as wc
from docx2pdf import convert
import shutil
import os

def getfilenames(documentname,doc_path):
    """
    documentname放有文件夹的名称
    doc_path其中doc格式的文件你想移到那个位置
    """
    filelist_out = []
    for filename in os.listdir(documentname):
        # print(filename)
        fi_d = os.path.join(documentname,filename)
        file_ext = os.path.splitext(filename)[1]
        # print(file_ext)
        if file_ext == '.docx' or '.doc':
            if file_ext == '.docx':
                filelist_out.append(fi_d)
            if file_ext == '.doc':
                this_fullname = os.path.join(documentname,filename)
                w = wc.Dispatch('Word.Application')
                doc = w.Documents.Open(this_fullname)
                next_fullname = os.path.splitext(this_fullname)[0]+'.docx'
                doc.SaveAs(next_fullname,16)
                doc.Close()
                shutil.move(this_fullname,r'E:\签收单\1\新建文件夹')
                filelist_out.append(next_fullname)
 

if __name__ == '__main__':
    getfilenames(r'E:\签收单\1',r'E:\签收单\1\新建文件夹')

② 编写将word文档转换成PDF的wordtopdf1模块

"""研究书上的例子三天头都大了,
就是不明白,最后在b站有个老师提到了问题的关键,
下面这串数字的意思是:你正版office的序列号,哈哈
encache.EnsureModule('{00020905-0000-0000-C000-0000000046}',0,8,4)
"""
# 放弃了,换方法,有对这个感兴趣了,可以在论坛搜索一下很多,一模一样的例子
  • 使用模块:doc2pdf,pywin32
  • 安装方法: pip install --user -i https://pypi.tuna.tsinghua.edu.cn/simple/ docx2pdf
    pip install pywin32==223
    • 其中安装pywin32时可能会出现一些小问题,如果直接安装不上,可以点击这个网址直接下载223版
    • https://sourceforge.net/projects/pywin32/files/pywin32/
      链接: pywin32下载链接.
import os
from docx2pdf import convert
import common
import win32api

def wordtopdf2(filelist,targetfile):
    try:
        for fullfilename in filelist:
            filepath,filename = os.path.split(fullfilename)
            sortfilename = os.path.splitext(filename)
            pdfname = sortfilename[0]+'.pdf'
            pdfpath = os.path.join(targetfile,pdfname)
            convert(fullfilename, pdfpath)
    except Exception as e:
        print(e)
            
filelist = common.getfilenames(r'E:\签收单\1',r'E:\签收单\1\新建文件夹')
targetfile = r'E:\签收单\1'
wordtopdf2(filelist,targetfile)

猜你喜欢

转载自blog.csdn.net/baidu_20313315/article/details/112267793