16#include <initializer_list>
32std::vector<size_t>
findAmountTokenIndices(
const core::application::importing::transaction::internal::OcrLine& line,
int valutaX = -1,
int bandPx = 0) noexcept;
45std::optional<
int>
findTokenCenterX(const core::application::importing::transaction::internal::
OcrLine& line, const std::
string& tokenLower) noexcept;
52std::optional<
int>
findPhraseCenterX(const core::application::importing::transaction::internal::
OcrLine& line, std::initializer_list<const
char*> phraseLower) noexcept;
60bool hasTokenNearX(const core::application::importing::transaction::internal::
OcrLine& line,
int x,
int bandPx) noexcept;
82bool hasAmountNearValuta(const core::application::importing::transaction::internal::
OcrLine& line,
int valutaX,
int bandPx) noexcept;
97std::optional<
double>
findAndParseAmountInLine(const core::application::importing::transaction::internal::
OcrLine& line,
int valutaX = -1, std::vector<std::
string>* debugOut =
nullptr) noexcept;
116std::vector<core::application::importing::transaction::internal::OcrLine>
buildOcrLinesFromWords(
const std::vector<core::ports::text_recognition::Word>& words);
Declares helpers for parsing imported transaction amount strings.
Declares runtime configuration values for the import parsers.
Declares date-detection helpers for the import parser.
Declares heuristics used to classify statement parser lines.
Result types for text recognition operations.
Declares the OCR transaction parser model types.
std::vector< RawLineLite > groupMergeLinesRaw(const std::vector< RawLineLite > &lines, int maxGapPx)
Merges raw lines using a gap-based heuristic.
std::string normalizeAlnumLower(const std::string &s) noexcept
Normalizes alphanumeric text to lower-case ASCII for matching.
std::vector< core::application::importing::transaction::internal::OcrLine > buildOcrLinesFromWords(const std::vector< core::ports::text_recognition::Word > &words)
Builds OCR lines from raw Tesseract word output.
std::optional< int > findPhraseCenterX(const core::application::importing::transaction::internal::OcrLine &line, std::initializer_list< const char * > phraseLower) noexcept
Locates the horizontal center of a multi-token phrase in an OCR line.
ColumnGuess inferColumnModelFromLines(const std::vector< core::application::importing::transaction::internal::OcrLine > &lines, size_t scanN=16) noexcept
Infers a column layout from a set of OCR lines.
core::application::importing::transaction::internal::OcrLine toOcrLineFromRawWords(const RawLineLite &src, size_t i0, size_t i1) noexcept
Converts a range of raw words into one OCR line.
bool isLooseTransactionLine(const core::application::importing::transaction::internal::OcrLine &line, int valutaX) noexcept
Checks whether the line looks like a loosely formatted transaction row.
bool hasAmountLikeTokenInLine(const core::application::importing::transaction::internal::OcrLine &line, int valutaX) noexcept
Checks whether the line contains amount-like tokens near the valuta column.
std::vector< size_t > findAmountTokenIndices(const core::application::importing::transaction::internal::OcrLine &line, int valutaX=-1, int bandPx=0) noexcept
Finds the indices of amount-like tokens in an OCR line.
core::application::importing::transaction::internal::TransactionMainRow splitMainRowFromOcrLine(const core::application::importing::transaction::internal::OcrLine &src, int valutaX, int debitX, int creditX) noexcept
Splits an OCR line into the main transaction row representation.
bool hasAmountNearValuta(const core::application::importing::transaction::internal::OcrLine &line, int valutaX, int bandPx) noexcept
Checks whether an amount appears close to the valuta reference.
std::optional< int > findTokenCenterX(const core::application::importing::transaction::internal::OcrLine &line, const std::string &tokenLower) noexcept
Locates the horizontal center of a token inside an OCR line.
std::optional< double > findAndParseAmountInLine(const core::application::importing::transaction::internal::OcrLine &line, int valutaX=-1, std::vector< std::string > *debugOut=nullptr) noexcept
Finds and parses an amount token inside an OCR line.
bool hasLeftDescriptiveText(const core::application::importing::transaction::internal::OcrLine &line, int valutaX) noexcept
Checks whether the line contains descriptive text to the left of the valuta column.
bool hasTokenNearX(const core::application::importing::transaction::internal::OcrLine &line, int x, int bandPx) noexcept
Checks whether any token in the line is close to a horizontal position.
core::application::importing::transaction::internal::TransactionMainRow splitMainRowFromRaw(const RawLineLite &src, int valutaX, int debitX, int creditX) noexcept
Splits a raw line into the main transaction row representation.
Stores the inferred column positions for an OCR page.
Lightweight raw-line representation used during grouping and splitting.
std::vector< std::pair< int, int > > wordSpans
Represents one OCR line with its bounding box and recognized text.
Represents the parsed main row of a transaction block.