Showing
1 changed file
with
15 additions
and
7 deletions
| @@ -324,10 +324,7 @@ def save_pdf(document_ir_path: str, query: str) -> Optional[str]: | @@ -324,10 +324,7 @@ def save_pdf(document_ir_path: str, query: str) -> Optional[str]: | ||
| 324 | from ReportEngine.renderers import PDFRenderer | 324 | from ReportEngine.renderers import PDFRenderer |
| 325 | renderer = PDFRenderer() | 325 | renderer = PDFRenderer() |
| 326 | 326 | ||
| 327 | - # 生成PDF字节流 | ||
| 328 | - pdf_bytes = renderer.render_to_bytes(document_ir, optimize_layout=True) | ||
| 329 | - | ||
| 330 | - # 保存PDF文件 | 327 | + # 准备输出路径 |
| 331 | timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") | 328 | timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") |
| 332 | query_safe = "".join( | 329 | query_safe = "".join( |
| 333 | c for c in query if c.isalnum() or c in (" ", "-", "_") | 330 | c for c in query if c.isalnum() or c in (" ", "-", "_") |
| @@ -340,13 +337,24 @@ def save_pdf(document_ir_path: str, query: str) -> Optional[str]: | @@ -340,13 +337,24 @@ def save_pdf(document_ir_path: str, query: str) -> Optional[str]: | ||
| 340 | pdf_filename = f"final_report_{query_safe}_{timestamp}.pdf" | 337 | pdf_filename = f"final_report_{query_safe}_{timestamp}.pdf" |
| 341 | pdf_path = pdf_dir / pdf_filename | 338 | pdf_path = pdf_dir / pdf_filename |
| 342 | 339 | ||
| 343 | - pdf_path.write_bytes(pdf_bytes) | 340 | + # 使用 render_to_pdf 方法直接生成PDF文件(与regenerate_latest_pdf.py一致) |
| 341 | + logger.info(f"开始渲染PDF: {pdf_path}") | ||
| 342 | + result_path = renderer.render_to_pdf( | ||
| 343 | + document_ir, | ||
| 344 | + pdf_path, | ||
| 345 | + optimize_layout=True | ||
| 346 | + ) | ||
| 344 | 347 | ||
| 348 | + # 显示文件大小 | ||
| 349 | + file_size = result_path.stat().st_size | ||
| 350 | + size_mb = file_size / (1024 * 1024) | ||
| 345 | logger.success(f"✓ PDF 已保存: {pdf_path}") | 351 | logger.success(f"✓ PDF 已保存: {pdf_path}") |
| 346 | - return str(pdf_path) | 352 | + logger.info(f" 文件大小: {size_mb:.2f} MB") |
| 353 | + | ||
| 354 | + return str(result_path) | ||
| 347 | 355 | ||
| 348 | except Exception as e: | 356 | except Exception as e: |
| 349 | - logger.error(f"❌ PDF 生成失败: {e}") | 357 | + logger.exception(f"❌ PDF 生成失败: {e}") |
| 350 | return None | 358 | return None |
| 351 | 359 | ||
| 352 | 360 |
-
Please register or login to post a comment