Class: Tabula::Extractors::Basic
- Inherits:
-
ExtractionAlgorithm
- Object
- ExtractionAlgorithm
- Tabula::Extractors::Basic
- Defined in:
- lib/tabula/extractors/basic_extraction_algorithm.rb
Overview
Stream-mode extraction algorithm. Extracts tables by analyzing text positions and gaps without relying on ruling lines.
Instance Method Summary collapse
-
#extract(page) ⇒ Array<Table>
Extract tables from a page.
-
#initialize(columns: nil, guess: true, **options) ⇒ Basic
constructor
A new instance of Basic.
Methods inherited from ExtractionAlgorithm
Constructor Details
#initialize(columns: nil, guess: true, **options) ⇒ Basic
Returns a new instance of Basic.
10 11 12 13 14 |
# File 'lib/tabula/extractors/basic_extraction_algorithm.rb', line 10 def initialize(columns: nil, guess: true, **) super(**) @columns = columns @guess = guess end |
Instance Method Details
#extract(page) ⇒ Array<Table>
Extract tables from a page
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/tabula/extractors/basic_extraction_algorithm.rb', line 19 def extract(page) return [] if page.text_elements.empty? # Get text chunks and lines chunks = page.text_chunks return [] if chunks.empty? lines = TextChunk.group_by_lines(chunks) return [] if lines.empty? # Determine column positions column_positions = determine_columns(lines, page) # Build table table = build_table(lines, column_positions, page.page_number) table.empty? ? [] : [table] end |