wenhongquan 3 maanden geleden
bovenliggende
commit
c63654887c
4 gewijzigde bestanden met toevoegingen van 75 en 2 verwijderingen
  1. 50 0
      py/app.py
  2. 23 0
      py/dockerfile
  3. BIN
      py/fzfs.ttf
  4. 2 2
      ruoyi-admin/src/main/resources/application-dev.yml

+ 50 - 0
py/app.py

@@ -0,0 +1,50 @@
+
+from flask import Flask, render_template, request, send_file
+from docxtpl import DocxTemplate
+import subprocess
+import platform
+
+app = Flask(__name__)
+
+
+@app.route('/')
+def index():
+    """显示表单页面"""
+    return "it works"
+
+
+@app.route('/generate', methods=['POST'])
+def generate():
+    """生成 Word 文档"""
+    # 1. 获取用户提交的表单数据
+    context = request.json;
+
+    if context["tpl"]==None :
+        return "请选择模板"
+
+    # 2. 使用 DocxTemplate 渲染模板
+    doc = DocxTemplate(context["tpl"])
+    doc.render(context)
+    savepath = "./save.docx"
+
+    doc.save(savepath)
+
+    if context["type"]=="pdf":
+       pdf_output = "save.pdf"
+       if platform.system() == "Darwin":
+           subprocess.run(["soffice", "--headless",  "--convert-to", "pdf","--outdir","./", savepath])
+       else:
+           subprocess.run(["libreoffice", "--headless",  "--convert-to", "pdf","--outdir","./", savepath])
+       savepath = pdf_output
+
+    # 3. 将生成的文件返回给用户下载
+    return send_file(
+        savepath,
+        as_attachment=True,
+        download_name="generated_report.docx"
+    )
+
+
+if __name__ == "__main__":
+    app.run(host='0.0.0.0', port=9997)
+

+ 23 - 0
py/dockerfile

@@ -0,0 +1,23 @@
+# 使用官方的Python运行时作为父镜像
+FROM k8s.xt.wenhq.top:8082/docker_r/python_office:1.0.0
+# 设置工作目录为/app
+WORKDIR /app
+# 将当前目录内容复制到位于 /app 的容器中
+COPY . /app
+# 安装任何需要的包
+RUN cp /app/fzfs.ttf /usr/share/fonts/
+RUN fc-cache -f -v
+# RUN source /data/python/bin/activate && pip install --upgrade pip && pip install flask requests http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
+#RUN pip install torch-2.0.0+cpu-cp310-cp310-linux_x86_64.whl
+#RUN pip install torchvision-0.15.1+cpu-cp310-cp310-linux_x86_64.whl
+#RUN pip install --no-cache-dir -r requirements_new.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
+# RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
+# 将/etc/localtime链接到上海时区文件
+#RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
+# 对外暴露的端口号
+EXPOSE 9997
+# 定义环境变量
+
+# 当容器启动时运行python app.py
+CMD ["/data/python/bin/python", "app.py"]
+

BIN
py/fzfs.ttf


+ 2 - 2
ruoyi-admin/src/main/resources/application-dev.yml

@@ -50,8 +50,8 @@ spring:
           # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
           # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
           url: jdbc:mysql://${DATABASE_ADDR:200.200.19.121:31000}/jtjai?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
-          username: root
-          password: root
+          username: ${DATABASE_USER:root}
+          password: ${DATABASE_PASSWORD:root}
 #        # 从库数据源
 #        slave:
 #          lazy: true