Skip to content

Commit fa51d42

Browse files
committed
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.
1 parent b3b4230 commit fa51d42

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

README.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
</p>
66

77
<p align="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>
1010
</p>
1111

1212
<p align="center">
@@ -35,7 +35,7 @@
3535
- **Author intent, not coordinates.** Fluent DSL for sections, paragraphs, tables, lists, layer stacks, themes &mdash; the engine handles measurement, pagination, and rendering.
3636
- **Deterministic by design.** Two-pass layout. Snapshots are stable across machines, so layout regressions are catchable in tests before any byte ships.
3737
- **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&ndash;backed DOCX export is one method call away.
38+
- **PDFBox isolated, DOCX optional.** Single backend interface. Apache POI&ndash;backed DOCX export is available for compatible semantic content &mdash; see [support matrix](#output-support) for limitations.
3939

4040
Sits between **iText** (low-level page primitives) and **JasperReports** (XML-template-driven layout): a Java DSL describes the document semantically, the engine renders.
4141

@@ -49,6 +49,14 @@ Sits between **iText** (low-level page primitives) and **JasperReports** (XML-te
4949
| DOCX | Partial | Semantic export via Apache POI. Unsupported nodes (`shape`, `line`, `ellipse`, `barcode`) are dropped silently &mdash; layout fidelity is best-effort for paragraph / list / table content. |
5050
| PPTX | Skeleton | Validates supported node types and emits a manifest. **Not a real PowerPoint export yet** &mdash; planned only if there is demand. |
5151

52+
### When to use GraphCompose
53+
54+
- **Server-side PDF generation in Java** &mdash; invoices, CVs, reports, proposals, statements, schedules.
55+
- **Templated documents from data** &mdash; themed presets (`ModernProfessional`, `InvoiceTemplateV2`, &hellip;) you parameterise instead of re-styling every time.
56+
- **Regression-tested layouts** &mdash; `DocumentSession#layoutSnapshot()` makes layout changes visible in PRs before any byte ships.
57+
- **Streaming PDFs from web backends** &mdash; 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** &mdash; Java DSL describes semantics; no XML templates, no manual coordinates.
59+
5260
### What GraphCompose is not
5361

5462
- Not a hosted PDF rendering service &mdash; it is a library you embed.

0 commit comments

Comments
 (0)