Fixed Bug - Fail to Export as PDF

This commit is contained in:
马一丁
2025-11-20 00:34:01 +08:00
parent cad25b63c1
commit a89bf7de89
2 changed files with 76 additions and 3 deletions
+6 -3
View File
@@ -422,8 +422,8 @@ class PDFRenderer:
# 格式: <canvas id="chart-N" data-config-id="chart-config-N"></canvas>
canvas_pattern = rf'<canvas[^>]+data-config-id="{re.escape(config_id)}"[^>]*></canvas>'
# 替换canvas为SVG
html = re.sub(canvas_pattern, svg_html, html)
# 【修复】替换canvas为SVG,使用lambda避免反斜杠转义问题
html = re.sub(canvas_pattern, lambda m: svg_html, html)
logger.debug(f"已替换图表 {widget_id} 的canvas为SVG")
else:
logger.warning(f"未找到图表 {widget_id} 对应的配置脚本")
@@ -468,7 +468,10 @@ class PDFRenderer:
# 暂时使用简单的替换方案
# 找到第一个math-block div并替换
math_block_pattern = r'<div class="math-block">\$\$[^$]*\$\$</div>'
html = re.sub(math_block_pattern, svg_html, html, count=1)
# 【修复】转义svg_html中的反斜杠,避免re.sub将其解释为转义序列
# 使用re.escape处理替换字符串中的特殊字符
escaped_svg_html = svg_html.replace('\\', r'\\')
html = re.sub(math_block_pattern, lambda m: svg_html, html, count=1)
logger.debug(f"已替换公式 {math_id} 为SVG")
return html