123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- import os
- import sys
- import uuid
- from flask import Flask, request, jsonify
- from add_signature import find_signature_positions, add_signature_to_pdf
- from add_watermark import add_watermark_to_pdf
- from lib import Qiniu
- app = Flask(__name__)
- @app.route('/add_signature', methods=['POST'])
- def add_signature():
- try:
- # 获取请求参数
- data = request.get_json()
- pdf_url = data.get('pdf_url')
- if not pdf_url:
- return jsonify({"error": "缺少pdf_url参数"}), 400
- # 下载PDF文件
- local_pdf = Qiniu.download_file(pdf_url)
- # 查找签名位置(使用默认公章图片)
- signature_img = './static/报告专用章.png' # 确保项目目录下有这个文件
- positions = find_signature_positions(local_pdf)
- if not positions:
- os.remove(local_pdf)
- return jsonify({"error": "未找到签名位置"}), 400
- # 生成带公章的PDF
- signature_pdf = os.path.join("./temp", f"signature_{os.path.basename(local_pdf)}")
- add_signature_to_pdf(local_pdf, signature_pdf, signature_img, positions)
- # 上传到七牛云
- file_key = f"UpImage/{uuid.uuid4()}.pdf"
- new_pdf_url = Qiniu.upload_to_qiniu(signature_pdf, file_key)
- # 清理临时文件
- os.remove(local_pdf)
- os.remove(signature_pdf)
- return jsonify({
- "success": True,
- "signature_pdf_url": new_pdf_url
- })
- except Exception as e:
- return jsonify({
- "error": str(e),
- "success": False,
- }), 500
- @app.route('/add_watermark', methods=['POST'])
- def add_watermark():
- try:
- # 获取请求参数
- data = request.get_json()
- pdf_url = data.get('pdf_url')
- if not pdf_url:
- return jsonify({"error": "缺少pdf_url参数"}), 400
- # 下载PDF文件
- local_pdf = Qiniu.download_file(pdf_url)
- # 水印文件
- pdf_file_mark = './static/watermark.pdf' # 确保项目目录下有这个文件
- # 生成带公章的PDF
- watermark_pdf = os.path.join("./temp", f"watermark_{os.path.basename(local_pdf)}")
- add_watermark_to_pdf(local_pdf, pdf_file_mark, watermark_pdf)
- # 上传到七牛云
- file_key = f"UpImage/{uuid.uuid4()}.pdf"
- new_pdf_url = Qiniu.upload_to_qiniu(watermark_pdf, file_key)
- # 清理临时文件
- os.remove(local_pdf)
- os.remove(watermark_pdf)
- return jsonify({
- "success": True,
- "watermark_pdf_url": new_pdf_url
- })
- except Exception as e:
- return jsonify({
- "error": str(e),
- "success": False,
- }), 500
- if __name__ == '__main__':
- print("项目地址:", os.path.dirname(__file__))
- if len(sys.argv) != 2:
- print("请填写端口号")
- sys.exit()
- app.debug = True # 设置调试模式,生产模式的时候要关掉debug
- # app.config['JSON_AS_ASCII'] = False
- app.run(host='0.0.0.0', port=6500, debug=True)
|