Derives page layout from the file itself (batch size, column edges, row grid, labelling font), places text by start-x to survive cell overflow, detects blackout redactions including filled-path bars and single-character bars, and self-verifies via Excel's printed row-number chain. Output byte-identical to four independently written implementations across a 1,048,576-row reference file. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012bQ28wRBiQYcSR9FzV9U7c
15 lines
584 B
Python
15 lines
584 B
Python
"""pinion-pdf: turn a spreadsheet that was printed to PDF back into a CSV.
|
|
|
|
Someone took a spreadsheet, hit "Print", and handed out the PDF. pinion
|
|
measures the PDF before it reads it -- page size, column widths, column and
|
|
row counts are all derived from the file -- rebuilds every row, detects
|
|
blacked-out cells, and then checks its own working.
|
|
|
|
MAP: page.py - reading what the PDF drew on a page
|
|
measure.py - measuring the layout
|
|
convert.py - rebuilding the rows
|
|
cli.py - run it, then check our own working
|
|
"""
|
|
|
|
__version__ = "1.0.0"
|