The indent trigger was using .abs() which fired on both increased indent (non-indented → indented) AND decreased indent (indented → non-indented). This caused drop-cap style paragraphs (indented first line, flush-left continuation) to incorrectly split into two blocks. Per plan Phase 4.4 heuristic #2, indent change should only trigger when the current line is MORE indented (to the right, larger x0) than the block average - i.e., a new paragraph starting after non-indented text. It should NOT trigger for decreased indent (first line indented, rest flush-left). Fix: Remove .abs() and only check if line_x0 - block_avg_x0 > threshold. Tests: - test_indented_first_line_new_block: PASS (non-indented → indented splits) - test_indented_first_line_of_paragraph_not_split: PASS (drop cap stays together) - All 179 line module tests: PASS
71 lines
1.6 KiB
Swift
71 lines
1.6 KiB
Swift
//
|
|
// Pdftract Swift SDK
|
|
// Auto-generated - do not edit manually
|
|
//
|
|
|
|
#if os(Linux)
|
|
import Foundation
|
|
#else
|
|
import Foundation
|
|
#endif
|
|
|
|
@_exported import PdftractCodegen
|
|
|
|
// Re-export all public types from PdftractCodegen
|
|
public typealias Source = PdftractCodegen.Source
|
|
public typealias BaseOptions = PdftractCodegen.BaseOptions
|
|
public typealias ExtractOptions = PdftractCodegen.ExtractOptions
|
|
public typealias SearchOptions = PdftractCodegen.SearchOptions
|
|
public typealias HashOptions = PdftractCodegen.HashOptions
|
|
public typealias Document = PdftractCodegen.Document
|
|
public typealias Page = PdftractCodegen.Page
|
|
public typealias Span = PdftractCodegen.Span
|
|
public typealias Block = PdftractCodegen.Block
|
|
public typealias Metadata = PdftractCodegen.Metadata
|
|
public typealias Match = PdftractCodegen.Match
|
|
public typealias Fingerprint = PdftractCodegen.Fingerprint
|
|
public typealias Classification = PdftractCodegen.Classification
|
|
public typealias Receipt = PdftractCodegen.Receipt
|
|
public typealias PdftractError = PdftractCodegen.PdftractError
|
|
|
|
|
|
|
|
public typealias CorruptPdfError = PdftractCodegen.CorruptPdfError
|
|
|
|
|
|
|
|
public typealias EncryptionError = PdftractCodegen.EncryptionError
|
|
|
|
|
|
|
|
public typealias SourceUnreachableError = PdftractCodegen.SourceUnreachableError
|
|
|
|
|
|
|
|
public typealias RemoteFetchInterruptedError = PdftractCodegen.RemoteFetchInterruptedError
|
|
|
|
|
|
|
|
public typealias TlsError = PdftractCodegen.TlsError
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public typealias ReceiptVerifyError = PdftractCodegen.ReceiptVerifyError
|
|
|
|
|
|
|
|
// Re-export the main Pdftract struct
|
|
public typealias PdftractClient = PdftractCodegen.Pdftract
|