From 2b4555e1bce2175cf1c5cb83d7c680ef4dccafc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BC=9F?= <250213850@qq.com> Date: Wed, 7 Sep 2022 13:37:34 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E4=B8=8A=E4=BC=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=9A=84=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/api_v1/endpoints/interview.py | 18 +++++++++++------- utils/func.py | 23 +++++++++++++++++++++++ 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/api/api_v1/endpoints/interview.py b/api/api_v1/endpoints/interview.py index 9ddbdae..858654b 100644 --- a/api/api_v1/endpoints/interview.py +++ b/api/api_v1/endpoints/interview.py @@ -26,7 +26,7 @@ from db import get_database from db.ckdb import get_ck_db, CKDrive from datetime import timedelta from models.interview_zsgc import InterviewDo -from utils import get_time, qujian_time, Download_xlsx, send_str_mail +from utils import get_time, qujian_time, Download_xlsx, send_str_mail, doc2pdf router = APIRouter() @@ -281,8 +281,12 @@ async def file_to_hw( return schemas.Msg(code=400, msg='上传文件有误', data=None) try: - res = obsClient.putFile('legu-cdn-source', 'hrms/' + filename, path_data + '/' + filename) - + fn = path_data + '/' + filename + if fn.endswith('pdf'): # pdf正常上传到华为云 + res = obsClient.putFile('legu-cdn-source', 'hrms/' + filename, path_data + '/' + filename) + else: # doc/docx则转化为pdf上传到华为云 + new_fn,fil = doc2pdf(fn, path_data, filename) + res = obsClient.putFile('legu-cdn-source', 'hrms/' + fil, new_fn) if res.status < 300: # 地址 url = res.body.objectUrl @@ -731,13 +735,13 @@ async def find_criterion( else: data['work_exp'] = '5年以上' if data['work_list'] is not None: - work_list=[] + work_list = [] for i in data['work_list']: - work=json.loads(i) - work['work_name']='工作岗位数据' # 正常数据库有数据后删除,开发的时候用的 + work = json.loads(i) + work['work_name'] = '工作岗位数据' # 正常数据库有数据后删除,开发的时候用的 work['duty'] = '工作职责数据' # 正常数据库有数据后删除,开发的时候用的 work_list.append(work) - data['work_list']=work_list + data['work_list'] = work_list return schemas.Msg(code=200, msg='ok', data=data) diff --git a/utils/func.py b/utils/func.py index 701f4c8..2ce9819 100644 --- a/utils/func.py +++ b/utils/func.py @@ -1,3 +1,6 @@ +#!/usr/bin/python +# coding:utf-8 + import random import time import datetime @@ -335,5 +338,25 @@ def get_current_week(s_date): return sunday +from win32com import client + + +# 转换doc/docx为pdf +def doc2pdf(fn, path_data, filename): + # """ + # :param fn: 'C:\Users\86173\Desktop\陈超峰.docx' + # :param path_data:'C:\Users\86173\Desktop\\' + # :param filename:陈超峰.docx + # :return: 'C:\Users\86173\Desktop\陈超峰.pdf' + # """ + new_filename=filename.split('.')[0] + word = client.Dispatch("Word.Application") # 打开word应用程序 + doc = word.Documents.Open(fn) # 打开word文件 + doc.SaveAs("{}/{}.pdf".format(path_data, new_filename), 17) # 另存为后缀为".pdf"的文件,其中参数17表示为pdf + doc.Close() # 关闭原来word文件 + word.Quit() + return path_data + '/' + new_filename + '.pdf',new_filename + '.pdf' + + if __name__ == '__main__': get_every_months('2022-01-01', '2022-12-31')