You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(readme): lead with v1.8, retire the v1.6 spotlight (#214)
* docs(readme): lead with v1.8, retire the v1.6 spotlight
The README still centred on v1.6 while the v1.8 'illustrative' work
(native charts, SVG, gradients) was buried in a single overlong
release-status sentence, so the landing page lagged the engine.
- Shrink the Release-status blurb to a one-liner that links to a new
'What's new in v1.8' section (chart preview + capability bullets,
the fonts consumption change, and the ConfigLoader removal).
- Replace 'What's in v1.6' / 'v1.6 primitives in 30 lines' with
'v1.8 primitives in 30 lines' — native chart, overshoot-free line,
SVG import + block alignment, all lifted from runnable examples.
- Correct the iText 7 comparison row: it has a high-level layout API,
not just 'manual + helpers'.
- Keep 'Cinematic by default' but ground it with the new primitives.
* docs(readme): drop the redundant em-dash before the What's-new link
Copy file name to clipboardExpand all lines: README.md
+40-32Lines changed: 40 additions & 32 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,7 @@
19
19
</p>
20
20
21
21
> **Release status**—
22
-
> 🟢 **Latest stable**: [v1.8.0](https://github.com/DemchaAV/GraphCompose/releases/tag/v1.8.0)— codenamed **"illustrative"** (native vector charts — bar / line / pie + inline sparklines, monotone / smooth line interpolation, free-form `ShapeOutline.Path` clip, SVG path / icon import with native gradients, and a leaner publication — the bundled Google fonts split into the separate `graph-compose-fonts`artifact. Engine APIs stay source- & binary-compatible with v1.7; one consumption change — add `graph-compose-fonts` or `graph-compose-bundle` to keep the bundled fonts, see the [migration note](./docs/migration/v1.8.0-fonts.md).)
22
+
> 🟢 **Latest stable**: [v1.8.0](https://github.com/DemchaAV/GraphCompose/releases/tag/v1.8.0)— codenamed **"illustrative"**: native vector charts, SVG & gradient graphics, free-form clipping, and a leaner engine artifact. **[What's new in v1.8 ↓](#whats-new-in-v18)**
23
23
24
24
> · 🟡 **In develop**: next cycle — open (see [CHANGELOG](./CHANGELOG.md))
25
25
> · See [API stability policy](./docs/api-stability.md) for tier definitions.
@@ -46,11 +46,28 @@
46
46
47
47
-**Author intent, not coordinates.** Fluent DSL for sections, paragraphs, tables, lists, layer stacks, themes — the engine handles measurement, pagination, and rendering.
48
48
-**Deterministic by design.** Two-pass layout. Snapshots are stable across machines, so layout regressions are catchable in tests before any byte ships.
49
-
-**Cinematic-by-default.**`BusinessTheme` + soft panels + accent strips + transforms + advanced tables are first-class primitives, not workarounds.
49
+
-**Cinematic by default.**`BusinessTheme`, soft panels, accent strips, transforms, native vector charts, and gradients are first-class primitives, not workarounds.
50
50
-**PDFBox isolated, DOCX optional.** Single backend interface. Apache POI–backed DOCX export is available for compatible semantic content — see [support matrix](#output-support) for limitations.
51
51
52
52
Sits between **iText** (low-level page primitives) and **JasperReports** (XML-template-driven layout): a Java DSL describes the document semantically, the engine renders.
53
53
54
+
## What's new in v1.8
55
+
56
+
The **"illustrative"** release — the engine gains a vector-graphics dimension.
-**Native vector charts**— bar / line / pie, inline sparklines, and `MONOTONE` / `SMOOTH` line interpolation, drawn as native PDF Béziers (no rasterization): `section.chart(ChartSpec.line()…, style)`.
63
+
-**SVG path & icon import**—`SvgIcon.parse(svg)` turns SVG into native vector geometry; recolour per use and place with `addSvgIcon(icon, width, align)`.
64
+
-**Gradients & free-form clipping**— linear / radial `DocumentPaint` fills and arbitrary `ShapeOutline.Path` clip regions.
65
+
-**Block-level alignment**—`addAligned(HorizontalAlign.CENTER, node)` centres or right-aligns any fixed node without a wrapper container.
66
+
-**`keepTogether()` pagination**— keep a section from splitting across a page break.
67
+
-**Leaner publication**— the bundled Google fonts moved to the independently-versioned `graph-compose-fonts` artifact, so the engine jar dropped from ~20 MB to ~2 MB. Pure-text / standard-14 documents need nothing extra; add `graph-compose-fonts` (or `graph-compose-bundle`) to keep the bundled families — see the [migration note](./docs/migration/v1.8.0-fonts.md).
68
+
69
+
Core document APIs stay source- and binary-compatible with v1.7 (`ConfigLoader` is the one removal). Full notes in [`CHANGELOG.md`](./CHANGELOG.md).
70
+
54
71
## Installation
55
72
56
73
**Requires Java 17+** (enforced by the build).
@@ -162,7 +179,7 @@ For a Spring Boot `@RestController` streaming the PDF straight to the response,
162
179
|---|---|---|---|---|
163
180
|**GraphCompose**| Java DSL, semantic nodes | Two-pass, deterministic, snapshot-testable | MIT | Code-first business documents with layout regression tests |
164
181
|**PDFBox**| Low-level text / path primitives | Manual coordinates | Apache 2.0 | Direct PDF manipulation, parsing, extraction |
165
-
|**iText 7**|Low-level page primitives + high-level helpers|Manual + helpers| AGPL / commercial | When AGPL is acceptable or you have a commercial licence |
182
+
|**iText 7**|Object/layout API + low-level canvas|Automatic layout with direct-positioning options| AGPL / commercial | When AGPL is acceptable or you have a commercial licence |
|**JasperReports**| XML templates compiled to `.jasper`| Template-driven | LGPL | Tabular reports with datasource bindings |
168
185
@@ -181,47 +198,38 @@ GraphCompose uses PDFBox under the hood as the rendering backend — the com
181
198
182
199
> **Choosing a template surface**— layered (`cv.v2`), classic (`cv.presets`), or the built-in `*TemplateV2` family? See **[Which template system should I use?](./docs/templates/which-template-system.md)** for the status matrix, decision tree, and `classic → layered` migration map.
183
200
184
-
## What's in v1.6 — "expressive"
185
-
186
-
-**Layered templates**— 16 CV and 15 paired cover-letter presets on the layered `cv.v2` / `coverletter.v2` architecture (data → theme → components → widgets → presets), one-liner `create()` factories over a typed `CvDocument` / `CoverLetterDocument`. Inline markdown, multi-column layouts. The going-forward standard for new template families. See [`docs/templates/v2-layered/README.md`](./docs/templates/v2-layered/README.md). (The earlier `BusinessTheme`-based preset surface is now deprecated.)
-**Architecture hardening**—`@Internal` API stability marker, public `PdfFragmentRenderHandler` SPI, `DocumentRenderingException` on the convenience render path, documented thread-safety contract.
189
-
190
-
Full notes in [`CHANGELOG.md`](./CHANGELOG.md). Upgrade guide: [`docs/roadmaps/migration-v1-5-to-v1-6.md`](./docs/roadmaps/migration-v1-5-to-v1-6.md).
191
-
192
-
## v1.6 primitives in 30 lines
201
+
## v1.8 primitives in 30 lines
193
202
194
-
Three snippets, one per new primitive. Full runnable versions live in the [examples gallery](./examples/README.md).
203
+
Three snippets from the new vector surfaces. Full runnable versions live in the [examples gallery](./examples/README.md).
195
204
196
-
**Nested list**—builder-callback child scopes with a per-depth marker cascade.
205
+
**Native chart**—categories + series in, native vector bars out (no rasterization).
0 commit comments