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): category-first hero, honest DOCX claim, "When to use" block
- Hero leads with "Declarative Java DSL for structured business PDFs";
"Cinematic by default" moves to the closing stamp of the sub-tagline,
unpacked by the existing BusinessTheme/soft-panels bullet.
- Drop "DOCX export is one method call away" from the Why bullets;
link to the support matrix for limitations instead.
- Add "When to use GraphCompose" as the positive mirror of "What
GraphCompose is not": server-side PDF, templated documents,
regression-tested layouts, streaming, niche vs PDFBox/Jasper.
Copy file name to clipboardExpand all lines: README.md
+11-3Lines changed: 11 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,8 +5,8 @@
5
5
</p>
6
6
7
7
<palign="center">
8
-
<b>Java-first declarative document layout engine for cinematic PDFs.</b><br/>
9
-
Describe what the document <i>says</i>; the engine resolves layout, pagination, and PDFBox rendering.
8
+
<b>Declarative Java DSL for structured business PDFs.</b><br/>
9
+
Describe what the document <i>says</i>; the engine resolves layout, pagination, themes, and PDFBox rendering. <b>Cinematic by default.</b>
10
10
</p>
11
11
12
12
<palign="center">
@@ -35,7 +35,7 @@
35
35
-**Author intent, not coordinates.** Fluent DSL for sections, paragraphs, tables, lists, layer stacks, themes — the engine handles measurement, pagination, and rendering.
36
36
-**Deterministic by design.** Two-pass layout. Snapshots are stable across machines, so layout regressions are catchable in tests before any byte ships.
37
37
-**Cinematic-by-default.**`BusinessTheme` + soft panels + accent strips + transforms + advanced tables are first-class primitives, not workarounds.
38
-
-**PDFBox isolated, DOCX optional.** Single backend interface. Apache POI–backed DOCX export is one method call away.
38
+
-**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.
39
39
40
40
Sits between **iText** (low-level page primitives) and **JasperReports** (XML-template-driven layout): a Java DSL describes the document semantically, the engine renders.
41
41
@@ -49,6 +49,14 @@ Sits between **iText** (low-level page primitives) and **JasperReports** (XML-te
49
49
| DOCX | Partial | Semantic export via Apache POI. Unsupported nodes (`shape`, `line`, `ellipse`, `barcode`) are dropped silently — layout fidelity is best-effort for paragraph / list / table content. |
50
50
| PPTX | Skeleton | Validates supported node types and emits a manifest. **Not a real PowerPoint export yet**— planned only if there is demand. |
51
51
52
+
### When to use GraphCompose
53
+
54
+
-**Server-side PDF generation in Java**— invoices, CVs, reports, proposals, statements, schedules.
55
+
-**Templated documents from data**— themed presets (`ModernProfessional`, `InvoiceTemplateV2`, …) you parameterise instead of re-styling every time.
56
+
-**Regression-tested layouts**—`DocumentSession#layoutSnapshot()` makes layout changes visible in PRs before any byte ships.
57
+
-**Streaming PDFs from web backends**— Spring Boot `@RestController` writing straight to the response ([`HttpStreamingExample`](./examples/src/main/java/com/demcha/examples/features/streaming/HttpStreamingExample.java)).
58
+
-**Higher-level than PDFBox, lighter than JasperReports**— Java DSL describes semantics; no XML templates, no manual coordinates.
59
+
52
60
### What GraphCompose is not
53
61
54
62
- Not a hosted PDF rendering service — it is a library you embed.
0 commit comments