代码
def convert_file_format(word_path):
"""
将word 转换成pdf
Args:
word_path: word路径
Returns:
"""
from win32com.client import constants, gencache
import pythoncom
try:
word = gencache.EnsureDispatch("Word.Application")
except AttributeError as e:
raise Exception("删除c盘下的gen_py")
except pythoncom.com_error as err:
logger.info(err)
raise err
except Exception as e:
logger.error(e)
raise e
doc = word.Documents.Open(word_path, ReadOnly=1)
pdf_path = word_path.replace('DOC', 'PDF')
try:
doc.ExportAsFixedFormat(pdf_path, constants.wdExportFormatPDF)
doc.Close(word_path)
except Exception as e:
logger.error(e)
return pdf_path
解决方法
本次遇到的这个问题是由于计算机内wps未注册word/excel等COM组件造成的。导致提供prog_id无法找到相关COM组件。win32com版本大小并未造成影响。下面记录一下wps重新注册组件的方法
路径:wps 配置工具 → 高级→重置修复→重新注册组件