asistente de palabras
1. Estructura de la función del sistema
2. Proceso empresarial 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
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
Cree un archivo common.py en la carpeta de herramientas
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) :
fi_d = os. path. join( documentname, filename)
file_ext = os. path. splitext( filename) [ 1 ]
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)