提交 16132fe1 创建 作者: 新的邮箱's avatar 新的邮箱

更新 convertpdf.py

上级 1d01e5ff
......@@ -8,7 +8,7 @@ import docx
import os
# 参考:这是ci文件中的传入参数
# python3 convertpdf.py ${CODECODE_PROTOCOL}${CODECODE_DOMAIN}:3000 ci_job_token ${CI_JOB_TOKEN} ${CI_PROJECT_ID}
# python3 convertpdf.py ${CODECODE_PROTOCOL}${CODECODE_DOMAIN}:3000 ci_job_token ${CI_JOB_TOKEN} ${CI_PROJECT_ID} ${CI_JOB_ID}
# 主机地址和端口号,用于访问api时构造url
host_with_port = sys.argv[1]
......@@ -22,6 +22,9 @@ token = sys.argv[3]
# 传入的项目id
projectid = sys.argv[4]
# 传入的作业id
jobId = sys.argv[5]
# 调用获取主机信息api,用于访问api时使用
gethostinfo_url = host_with_port + "/api/v4/gethostinfo?" + token_type_str + "=" + token
r_host = requests.get(gethostinfo_url)
......@@ -57,12 +60,32 @@ for item in filenames_arr:
# 此处增加空文件的判断
try:
# 尝试打开文件
doc = docx.Document(item)
# 如果成功打开文档,则所需的包存在
except docx.opc.exceptions.PackageNotFoundError:
# 如果出现PackageNotFoundError异常,则所需的包不存在
os.system(item + "是空文件")
continue
except Exception as e:
# 捕获异常并处理
print("打开文件时出错,错误原因:", e)
print("可尝试将文件:", item, "重新另存为docx格式后上传")
# 将错误信息更新到cimsg中
api_url = host_with_port + "/api/v4/addcimsg?" + token_type_str + "=" + token
# 准备向接口发送的参数
data = {
'jobid': jobId,
'msgcode': 9,
'msginfo': "上传的DOCX文件存在兼容性问题,无法转换为PDF文件,可尝试将文件使用Word或WPS打开后另存为DOCX格式,然后再上传。",
'msgtype': "error"
}
try:
r = requests.post(api_url, data)
print(r.json())
except requests.exceptions.Timeout:
print("Timeout requesting")
except KeyboardInterrupt:
raise
except:
print("Unknown error")
sys.exit(1)
# 执行命令,将文件转换成pdf
convert_pdf = "soffice --headless --convert-to pdf " + "\"" + item + "\"" + " --outdir ./public"
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论