|
47 | 47 |
|
48 | 48 | The same `DocumentSession` emits both. The PDF backend prints the resolved layout; the PPTX backend (**beta**) rebuilds it as slides. Both consume the same resolved layout graph, so page and slide frames and every positioned element share the same geometry — text, panels, tables, and vectors arrive in PowerPoint as **native, editable shapes**, not screenshots (the page below lands as 69 native shapes; only its clip-masked logo art is a picture). Glyphs are rasterised by the viewer, so the exact text rendering depends on the fonts installed on the viewing machine; see the [backend capability matrix](docs/architecture/backend-capability-matrix.md) for per-feature fidelity. |
49 | 49 |
|
| 50 | +PowerPoint output needs `graph-compose-render-pptx` on the classpath in addition to `graph-compose`; without it `buildPptx` fails with a `MissingBackendException` naming the artifact. See [Which artifact?](#installation) below. |
| 51 | + |
50 | 52 | ```java |
51 | 53 | Path deck = Path.of("twin-output.pptx"); |
52 | 54 | try (DocumentSession doc = GraphCompose.document(Path.of("twin-output.pdf")) |
53 | 55 | .pageSize(DocumentPageSize.SLIDE_16_9) |
54 | 56 | .create()) { |
55 | | - compose(doc); // one description |
| 57 | + // … describe the page (see Hello world below) |
56 | 58 | doc.buildPdf(); // print-ready PDF |
57 | 59 | doc.buildPptx(deck); // editable PowerPoint |
58 | 60 | } |
@@ -119,8 +121,9 @@ engine plus the `graph-compose-render-pdf` backend, so existing 1.x callers upgr |
119 | 121 |
|
120 | 122 | Every 2.0 coordinate shares the `graph-compose` version (the fonts and emoji companions |
121 | 123 | keep their own lines). A bare `graph-compose-core` renders nothing until a backend is on |
122 | | -the classpath — asking it to build a PDF throws `MissingBackendException`, which names the |
123 | | -artifact to add (`graph-compose-render-pdf`, already included in `graph-compose`). |
| 124 | +the classpath — opening a session (`create()`) throws `MissingBackendException`, which |
| 125 | +names the artifact to add (`graph-compose-render-pdf`, already included in |
| 126 | +`graph-compose`). |
124 | 127 |
|
125 | 128 | </details> |
126 | 129 |
|
@@ -172,7 +175,7 @@ class Hello { |
172 | 175 | DocumentColor panel = DocumentColor.rgb(244, 238, 228); |
173 | 176 | DocumentColor accent = DocumentColor.rgb(196, 153, 76); |
174 | 177 | DocumentTextStyle h1 = DocumentTextStyle.builder() |
175 | | - .fontName(FontName.HELVETICA_BOLD).size(28) |
| 178 | + .fontName(FontName.HELVETICA).size(28) |
176 | 179 | .decoration(DocumentTextDecoration.BOLD) |
177 | 180 | .color(DocumentColor.rgb(20, 60, 75)).build(); |
178 | 181 | DocumentTextStyle body = DocumentTextStyle.builder() |
@@ -201,6 +204,12 @@ class Hello { |
201 | 204 |
|
202 | 205 | For a Spring Boot `@RestController` streaming the PDF straight to the response, see [`HttpStreamingExample`](./examples/src/main/java/com/demcha/examples/features/streaming/HttpStreamingExample.java). |
203 | 206 |
|
| 207 | +### Next steps |
| 208 | + |
| 209 | +- [**Your first document**](./docs/first-document.md) — the five-minute path from an empty project to a rendered PDF. |
| 210 | +- [**Getting started**](./docs/getting-started.md) — DSL or templates, and how to choose; the first-render walk-through. |
| 211 | +- [**Examples gallery**](./examples/README.md) — every runnable example, with a PDF you can preview without building anything. |
| 212 | + |
204 | 213 | ## What's new in 2.0 |
205 | 214 |
|
206 | 215 | The **module-first** release — the single jar becomes a family of per-concern artifacts, so you install exactly what you render. |
@@ -325,13 +334,13 @@ Full detail: [architecture overview](./docs/architecture/overview.md) · [ |
325 | 334 |
|
326 | 335 | The repository is a Maven multi-module reactor: the root `pom.xml` is the build aggregator, so `./mvnw clean verify` at the root builds and tests **every** module (scope to one with `-pl :<artifactId>`; the lean engine lives in `core/`). |
327 | 336 |
|
328 | | -- **Published to Maven Central** |
329 | | - - `graph-compose-core` (`core/`) — the lean document engine |
330 | | - - `graph-compose-render-pdf` · `-render-docx` · `-render-pptx` — render backends |
331 | | - - `graph-compose-templates` — built-in CV / cover-letter / invoice / proposal presets |
332 | | - - `graph-compose-testing` — snapshot & visual-regression test helpers |
333 | | - - `graph-compose` — the drop-in wrapper (core + PDF); `graph-compose-bundle` — batteries-included (adds templates + fonts + emoji) |
334 | | -- **Companion artifacts** (independent version lines) — `graph-compose-fonts`, `graph-compose-emoji` |
| 337 | +- **Published to Maven Central** — each links to its own README (what it is, when to depend on it, smallest complete example) |
| 338 | + - [`graph-compose-core`](./core/README.md) (`core/`) — the lean document engine |
| 339 | + - [`graph-compose-render-pdf`](./render-pdf/README.md) · [`-render-docx`](./render-docx/README.md) · [`-render-pptx`](./render-pptx/README.md) — render backends |
| 340 | + - [`graph-compose-templates`](./templates/README.md) — built-in CV / cover-letter / invoice / proposal presets |
| 341 | + - [`graph-compose-testing`](./testing/README.md) — snapshot & visual-regression test helpers |
| 342 | + - [`graph-compose`](./wrapper/README.md) (`wrapper/`) — the drop-in wrapper (core + PDF); [`graph-compose-bundle`](./bundle/README.md) — batteries-included (adds templates + fonts + emoji) |
| 343 | +- **Companion artifacts** (independent version lines) — [`graph-compose-fonts`](./fonts/README.md), [`graph-compose-emoji`](./emoji/README.md) |
335 | 344 | - **Development only** (never published) — `qa` (architecture guards + visual regression), `coverage` (aggregate JaCoCo), `examples`, `benchmarks` |
336 | 345 |
|
337 | 346 | See [CONTRIBUTING](./CONTRIBUTING.md) for the branch-routing table and the full build / verify flow. |
|
0 commit comments