diff --git a/anonymizer_core_refactored_onnx.py b/anonymizer_core_refactored_onnx.py index b64606a..4d0acae 100644 --- a/anonymizer_core_refactored_onnx.py +++ b/anonymizer_core_refactored_onnx.py @@ -4673,8 +4673,20 @@ def process_pdf( try: redact_pdf_vector(pdf_path, anon.audit, vec_path, ocr_word_map=ocr_word_map) outputs["pdf_vector"] = str(vec_path) - except Exception: - pass + except Exception as e: + # Q-1 D2 : ne plus avaler silencieusement. Le texte (.pseudonymise.txt) + # est déjà sorti avant ce bloc — donc on log + flag quarantaine PDF + # (severity=partial). Le fallback raster + copie texte arrivent en D3. + log.warning("PDF vector redaction failed for %s: %s", pdf_path.name, e) + if quarantine_mgr is not None: + quarantine_mgr.flag( + doc_name=pdf_path.stem, + reason="pdf_redaction_failed", + detail=str(e), + severity="partial", + exc=e, + ) + # Note : pas de raise — texte anonymisé déjà disponible, partial OK if also_make_raster_burn and fitz is not None: ras_path = out_dir / f"{base}.redacted_raster.pdf" redact_pdf_raster(pdf_path, anon.audit, ras_path, ogc_label=ogc_label, ocr_word_map=ocr_word_map)