| from __future__ import annotations |
| from pathlib import Path |
| import fitz |
| from src.services.pdf_ops import rebuild_pdf |
|
|
| class OfflineValidationAgent: |
| name = "validation_agent" |
|
|
| def run(self, input_pdf: Path, output_pdf: Path) -> tuple[Path, dict]: |
| report = {"validated": False, "rebuilt": False, "page_count": 0} |
| try: |
| doc = fitz.open(input_pdf) |
| report["page_count"] = doc.page_count |
| report["validated"] = True |
| output_pdf.parent.mkdir(parents=True, exist_ok=True) |
| doc.save(output_pdf, garbage=4, deflate=True, clean=True) |
| return output_pdf, report |
| except Exception: |
| rebuilt = rebuild_pdf(input_pdf, output_pdf) |
| doc = fitz.open(rebuilt) |
| report.update({"validated": True, "rebuilt": True, "page_count": doc.page_count}) |
| return rebuilt, report |
|
|