Open
Conversation
Add PDF.drawTable() for creating tables with automatic pagination, repeated headers/footers, flexible column widths (fixed/auto/star), text wrapping with break-word support, and a style cascade system. Internal architecture splits into normalize → measure → layout → render pipeline under src/tables/, keeping layout computation pure and testable independent of PDF drawing.
Contributor
|
@ephraimduncan is attempting to deploy a commit to the mythie's projects Team on Vercel. A member of the Team first needs to authorize it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a declarative table layout and rendering API to
@libpdf/core. Define columns, headers, body rows, and footers — the library handles measurement, text wrapping, pagination, and drawing.Features
"auto"(fit content), and"*"(fill remaining space)"word"and"break-word"overflow modes with automatic line breakingalternateRowStyleoptionUsage
Rendered demos
Simple table
simple-table.pdf
Multi-page invoice (page 1)
invoice-multi-page.pdf
Multi-page invoice (last page)
Borderless with alternating row fills
borderless-alternating.pdf
Right-aligned numeric columns
right-aligned-numeric.pdf
Word wrapping (break-word)
break-word.pdf
Sparse footer rows
sparse-footer.pdf
Auto + star column widths
auto-star-widths.pdf
Architecture
Test plan
rgoperatorsbreak-wordwrapping splits long text mid-wordauto+*column widths compute correctlycursorY