fix(core): 增强WeasyPrint可用性检测逻辑
添加实际PDF生成测试以验证WeasyPrint依赖库是否真正可用 捕获并记录所有异常情况,确保PDF功能状态准确
This commit is contained in:
@@ -18,10 +18,20 @@ def is_weasyprint_available():
|
|||||||
if WEASYPRINT_AVAILABLE is None:
|
if WEASYPRINT_AVAILABLE is None:
|
||||||
try:
|
try:
|
||||||
from weasyprint import HTML
|
from weasyprint import HTML
|
||||||
|
# 测试WeasyPrint是否真正可用,检查依赖库
|
||||||
|
test_html = HTML(string="<html><body>Test</body></html>")
|
||||||
|
# 尝试生成PDF以验证依赖库是否可用
|
||||||
|
import tempfile
|
||||||
|
with tempfile.NamedTemporaryFile(suffix='.pdf', delete=True) as tmp:
|
||||||
|
test_html.write_pdf(tmp.name)
|
||||||
WEASYPRINT_AVAILABLE = True
|
WEASYPRINT_AVAILABLE = True
|
||||||
|
logger.info("WeasyPrint库可用,PDF功能正常")
|
||||||
except ImportError:
|
except ImportError:
|
||||||
logger.warning("WeasyPrint库无法导入,PDF功能将不可用")
|
logger.warning("WeasyPrint库无法导入,PDF功能将不可用")
|
||||||
WEASYPRINT_AVAILABLE = False
|
WEASYPRINT_AVAILABLE = False
|
||||||
|
except Exception as e:
|
||||||
|
logger.warning(f"WeasyPrint依赖库不可用: {str(e)},PDF功能将不可用")
|
||||||
|
WEASYPRINT_AVAILABLE = False
|
||||||
return WEASYPRINT_AVAILABLE
|
return WEASYPRINT_AVAILABLE
|
||||||
|
|
||||||
from .models import (
|
from .models import (
|
||||||
|
|||||||
Reference in New Issue
Block a user