pinion-pdf 1.0.0: rebuild a CSV from a spreadsheet printed to PDF

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
This commit is contained in:
daveandClaude Fable 5 committed 2026-09-07 00:34:28 -04:00
commit 3902ce043e
11 files changed
+695

No files matched your search

+14
View File
@@ -0,0 +1,14 @@
"""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"