Contributions are very welcome. Before investing serious effort, please create an issue to discuss target functionality and architecture.
TTF reader/writer:
- read TTF
- write TTF
- create TTF subsets
- provide font dimensions to measure text
PDF backend:
- print images
- print & style drawings (lines & rectangles)
- print & style text
- use TTF fonts
- use UTF-8 text
paragraphs:
- support different text styles in same paragraphs
- calculate dimensions of text
- automatic line-breaking
- alignment (center, right-align, justify)
layouts:
- design layout system
- implement block
- implement flow
- implement grid
- implement table
layout blocks:
- margin
- padding
- border (color, thickness, stroke style)
- background (color)
extended PDF support:
- meta data
- tags
- more content types (png, svg, esp, ...)
- more drawings (circles, polynomials)
extend layout support:
- collapse margins (i.e. margin of child and parent not added, but MAXed)
- alignment for blocks
- column/row spans for grids, tables
- auto, contain, cover for content types
- top/right/bottom/left different weight borders
non-targets:
- forms -> PDF is meant for printing
- compress (string) streams -> produced PDFs should remain machine readable
technical:
- optimize rectangle position (do not modify transform matrix)
This is a large, long-lived project, and as such there are maintenance and architecture topics.
Topics:
- Use
enum
instead ofconst
- Add snapshot-based unit tests
- Add consistent edge-case testing (images of size 0, newline/spaces at the of a line, ...)
- Refactor compiler configuration approach