Classify line breaks geometrically via PDFBox coordinates and support list indentation
Replaces the heuristic character-count full-width check with real geometric
layout analysis. FontgroessenFilter collects the right-edge X coordinate of
the text runs on each page and classifies line endings against the local
90th percentile of page margins (using a 20-line sliding window) into soft,
hard, or unclassified breaks.
TextBereiniger uses this classification to reflow only soft line wraps (WEICH) and
keep deliberate ones (HART or UNBEKANNT).
Also aligns quote normalization and GII-XML flattening to indent continuation
lines in lists (e.g., hanging definitions in UWG Anhang):
- BefehlAnwender.normalisiereZitatText applies to single-unit Neufassung and indents
continuation lines deeper (4 spaces) than list items (2 spaces).
- ContentFlattener generates the same structure for sibling <LA> elements inside <DD>.
This ensures the paragraph parser correctly groups these lines as child lines.
Change-Id: I1fd7039d4933a273cc2dc55f958d34b439e2302c
5 files changed