Python sigue el tutorial para hacer la interfaz

asistente de palabras

1. Estructura de la función del sistema

Estructura de la función del sistema

2. Proceso empresarial del sistema

Proceso de negocio del sistema

3. Preparación de herramientas de desarrollo

  • Módulos integrados de Python: os, _thread, sys, codecs, re
  • Módulos de terceros: PyQt5 / PySide2, pyqt5-tools, PyPDF2, pywin32

4. Estructura de organización de carpetas

Organización de carpetas

  • wordtopdf -------- carpeta del proyecto
    • imagen -------- La carpeta donde se guarda la imagen
    • herramientas -------- Herramientas
    • ui -------- La carpeta donde se guardan los archivos de la interfaz de IU
    • venv -------- entorno virtual
      • listWindow.py -------- Extraiga el archivo de la ventana del catálogo general
      • mainWindow.py -------- archivo de ventana principal
      • pageWindow.py -------- Extraer archivo de formulario de número de página
      • transformWindow.py -------- Archivo de formulario Word a PDF
      • wordtopdf.py -------- El archivo principal del proyecto

5. Módulos de herramientas de escritura

① Escribir un módulo de directorio transversal

  1. Cree un archivo common.py en la carpeta de herramientas
  2. El software a menudo necesita atravesar archivos en el directorio, por lo que, teniendo en cuenta la reutilización del código, cree una subfunción
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\新建文件夹')

② Escriba el módulo wordtopdf1 que convierte documentos de Word en PDF

"""研究书上的例子三天头都大了,
就是不明白,最后在b站有个老师提到了问题的关键,
下面这串数字的意思是:你正版office的序列号,哈哈
encache.EnsureModule('{00020905-0000-0000-C000-0000000046}',0,8,4)
"""
# 放弃了,换方法,有对这个感兴趣了,可以在论坛搜索一下很多,一模一样的例子
  • Utilice módulos: doc2pdf, pywin32
  • Método de instalación: pip install --user -i https://pypi.tuna.tsinghua.edu.cn/simple/ docx2pdf
    pip install pywin32 == 223
    • Puede haber algunos problemas menores al instalar pywin32. Si no puede instalarlo directamente, puede hacer clic en esta URL para descargar la versión 223 directamente
    • https://sourceforge.net/projects/pywin32/files/pywin32/
      enlace: enlace de descarga de 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)

Supongo que te gusta

Origin blog.csdn.net/baidu_20313315/article/details/112267793
Recomendado
Clasificación