feat(P1): 변환 그래프 엔진 + 멀티홉 경로탐색 + PDF 압축
ProviderRegistry를 ConversionGraph로 승격하고 ConversionEngine이 자체 Dijkstra로 멀티홉 경로를 자동 합성하도록 전환. 손실을 LossClass 가중치로 SSOT화. - ConversionGraph: (node,hop) 라벨링 Dijkstra로 홉 제약 최단경로 (일반 Dijkstra의 hops 오염 false negative 회피) - ConversionEngine.ExecuteChainAsync: 멀티홉 체이닝, 중간 다중출력 거부, 마지막 홉 Status 존중 - PdfToolProvider: pdf->pdf 구조 압축 (PDFsharp, Save 원자화) - PairsFromMatrix 자기쌍 제외 (png->png 재인코딩 회귀 방지), PDF->이미지 Rasterize 표시 - xUnit 테스트 프로젝트 신설 + 그래프/회귀 14개 통과 - 적대적 병렬 리뷰(27 agents)로 확정된 13건 중 정확성 핵심 수정 SSOT: P1 done
This commit is contained in:
parent
232f453e15
commit
e3ef59e009
16 changed files with 641 additions and 30 deletions
|
|
@ -54,6 +54,18 @@ public sealed class ConvertOptions
|
|||
|
||||
public OcrOptions Ocr { get; set; } = new();
|
||||
|
||||
// --- 변환 그래프 경로 옵션 (P1) ---
|
||||
/// <summary>멀티홉 경로 자동 합성 허용. false면 직접(1홉) 변환만.</summary>
|
||||
public bool AllowMultiHop { get; set; } = true;
|
||||
|
||||
/// <summary>멀티홉 최대 홉 수.</summary>
|
||||
public int MaxHops { get; set; } = 3;
|
||||
|
||||
/// <summary>래스터화 같은 큰 손실 엣지를 회피한다.</summary>
|
||||
public bool AvoidLossy { get; set; } = false;
|
||||
|
||||
public PdfCompressOptions PdfCompress { get; set; } = new();
|
||||
|
||||
public static ConvertOptions Quick() => new();
|
||||
}
|
||||
|
||||
|
|
@ -122,3 +134,9 @@ public sealed class OcrOptions
|
|||
public bool PreserveLayout { get; set; } = true;
|
||||
public string Backend { get; set; } = "auto";
|
||||
}
|
||||
|
||||
public sealed class PdfCompressOptions
|
||||
{
|
||||
/// <summary>Light(구조 최적화·무손실) | Strong(렌더 재인코딩) | Max(Ghostscript). P1은 Light만 구현.</summary>
|
||||
public string Level { get; set; } = "Light";
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue