A one-glance map of what GraphCompose can do, the main API for each,
and its stability tier. "Stability" rows use the tiers defined in the
API stability policy; "Guide" links to the page that
shows it in context.
This is a feature catalogue, not the contract — the
API stability policy is authoritative for what each
tier promises, and canonical ⇄ legacy parity
tracks what is Partial or Planned.
| Capability |
Main API |
Stability |
Guide |
| Open a document session |
GraphCompose.document(...) → DocumentSession |
Stable |
Your first document |
| Describe content in reading order |
pageFlow(...), module(...), addSection(...) |
Stable |
Getting started |
| Maintained document templates |
InvoiceTemplateV2, ProposalTemplateV2, cv.v2.*, coverletter.v2.* |
Stable |
Templates |
| Reusable building blocks (helpers) |
helper methods / widgets over the DSL |
Stable |
Diagrams |
| Custom node / backend |
NodeDefinition, render-handler SPI, FixedLayoutBackend |
Extension SPI (@Beta) |
Extending |
| Capability |
Main API |
Stability |
Guide |
| Paragraphs & rich inline text |
addParagraph(...), addRich(...), RichText |
Stable |
Recipes — rich text |
| Lists (flat & nested) |
addList(...), ListBuilder |
Stable |
Recipes |
| Tables (spans, zebra, totals, repeat header) |
addTable(...), DocumentTableCell |
Stable |
Advanced tables |
| Raster images |
addImage(...), fit modes |
Stable |
Shapes & images |
| Vector shapes, dividers, lines |
addShape(...), addLine(...), addEllipse(...) |
Stable |
Shapes |
| Charts (bar / line / pie) |
chart(ChartSpec...), ChartData |
Stable |
Charts |
| Barcodes & QR |
addBarcode(...) |
Stable |
Recipes |
| Capability |
Main API |
Stability |
Guide |
| Columns that still flow |
addRow(row -> row.weights(...)) |
Stable |
Layered page design |
| Page-wide fills / bands |
pageBackground(...), pageBackgrounds(...) |
Stable |
Page backgrounds |
| Overlap & alignment |
addLayerStack(...) |
Stable |
Layered page design |
| Shape-as-container |
addContainer(...), addCircle(...), addEllipse(...) |
Stable |
Shape as container |
| Fixed (x, y) placement |
addCanvas(w, h, canvas -> canvas.position(...)) |
Stable |
Absolute placement |
| Bleed to page edge |
bleedToEdge(...) |
Stable |
Page backgrounds |
| Transforms (rotate / scale) |
DocumentTransform |
Stable |
Transforms |
| Capability |
Main API |
Stability |
Guide |
| Write a PDF file |
buildPdf(), buildPdf(Path) |
Stable |
Getting started |
| Stream to a caller-owned stream |
writePdf(OutputStream) |
Stable |
Streaming |
| In-memory bytes |
toPdfBytes() |
Stable |
Getting started |
| Editable Word (semantic) |
export(new DocxSemanticBackend()) |
Stable (semantic, not PDF parity) |
Troubleshooting |
| PDF chrome (metadata / watermark / header / footer / protection) |
metadata(...), watermark(...), header(...), footer(...), protect(...) |
Stable |
Getting started |
| Layout snapshot regression |
LayoutSnapshotAssertions.assertMatches(...) |
Stable |
Layout snapshot testing |
| Visual (pixel) regression |
PdfVisualRegression |
Stable |
Layout snapshot testing |
| Render-only debug overlays |
guideLines(...), debug(...) |
Stable |
Getting started |
| Capability |
Main API |
Stability |
Guide |
| External links |
addLink(...), inlineLink(...) |
Stable |
Getting started |
| Internal jumps |
anchor("x") + linkTo("x") |
Stable |
Getting started |
| PDF outline bookmarks |
bookmark(new DocumentBookmarkOptions(...)) |
Stable |
Getting started |
These ship from 1.9.0 onward — confirm your dependency version before relying on them:
| Capability |
Main API |
| Printed page references |
addPageReference("anchor") |
| Generated Table of Contents |
addTableOfContents(toc -> toc.entry(...)) |
| Page preview images |
toImage(pageIndex, dpi), toImages(dpi) |