diff --git a/app/routes/plans.py b/app/routes/plans.py index 4afae35..72ff456 100644 --- a/app/routes/plans.py +++ b/app/routes/plans.py @@ -660,6 +660,7 @@ def export_pdf(plan_id): content=content, output_dir=current_app.config["PDF_OUTPUT_DIR"], rendered_report=rendered_report, # 传递渲染后的报告 + watermark_text=api_config.get("watermark_text"), ) return send_file( diff --git a/app/services/pdf_generator.py b/app/services/pdf_generator.py index 7633bb6..65bb3cd 100644 --- a/app/services/pdf_generator.py +++ b/app/services/pdf_generator.py @@ -192,7 +192,7 @@ class PianoPDF: self.elements.append(Spacer(1, 5*mm)) -def generate_pdf(plan_id, student_name, content, output_dir, rendered_report=None): +def generate_pdf(plan_id, student_name, content, output_dir, rendered_report=None, watermark_text=None): """生成PDF文件""" os.makedirs(output_dir, exist_ok=True) output_path = os.path.join(output_dir, f"plan_{plan_id}.pdf") @@ -272,7 +272,7 @@ def generate_pdf(plan_id, student_name, content, output_dir, rendered_report=Non # 水印函数(每页都绘制) def draw_watermark(c, doc): - if not CHINESE_FONT_OK: + if not watermark_text or not CHINESE_FONT_OK: return c.saveState() try: @@ -283,7 +283,7 @@ def generate_pdf(plan_id, student_name, content, output_dir, rendered_report=Non c.translate(A4[0]/2, A4[1]/2) c.rotate(45) # 绘制水印文字(居中) - c.drawCentredString(0, 0, "仅供学习参考") + c.drawCentredString(0, 0, watermark_text) except Exception: pass # 字体问题则跳过水印 c.restoreState() diff --git a/app/templates/api_settings.html b/app/templates/api_settings.html index cb354a2..5181932 100644 --- a/app/templates/api_settings.html +++ b/app/templates/api_settings.html @@ -57,6 +57,12 @@ 控制输出的随机性,值越大越有创造性 +