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 |
| Combine sections with different page sizes and chrome |
GraphCompose.documents(...), MultiSectionDocument |
Stable |
Runnable example |
| Maintained document templates |
ModernInvoice, ModernProposal, the templates.cv.* / templates.coverletter.* preset galleries |
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 |
| Inline SVG icons & colour emoji |
addSvgIcon(...), RichText.svgIcon(...), RichText.emoji(...) |
Stable (emoji requires its companion artifact or bundle) |
Rich text |
| Vector shapes, dividers, lines |
addShape(...), addLine(...), addEllipse(...) |
Stable |
Shapes |
| Vector paths, SVG path data & gradients |
addPath(...), SvgPath.parse(...), DocumentPaint |
Stable |
Runnable example |
| Charts & inline sparklines |
chart(ChartSpec...), RichText.sparkline(...) |
Stable |
Charts |
| Timelines & process steps |
addTimeline(...), TimelineBuilder |
Stable |
Timelines |
| 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 |
| Content-driven block with a fixed width |
fixedWidth(points) |
Stable |
Fixed-width flows |
| Different margins by page range |
pageMargins(List<PageMarginRule>) |
Stable |
Runnable example |
| Bleed to page edge |
bleedToEdge(...) |
Stable |
Page backgrounds |
| Transforms (rotate / scale) |
DocumentTransform |
Stable |
Transforms |
| Translucent colours |
DocumentColor.rgba(...), withOpacity(...) |
Stable |
Translucency |
| Keep headings or composites together |
keepWithNext(), keepTogether() |
Stable |
Keep-together pagination |
| 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 |
| Page preview images |
toImage(pageIndex, dpi), toImages(dpi) |
Stable |
Streaming and output |
| Geometry-identical PowerPoint deck |
buildPptx(Path), writePptx(OutputStream), toPptxBytes() — needs graph-compose-render-pptx on the classpath |
Experimental (@Beta, first shipped in 2.1.0) |
Backend capability matrix |
| 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 |
PDF chrome |
| Repeating node-based page zones |
chrome().zone(DocumentPageZone.header(...) / footer(...)) |
Stable |
PDF chrome |
| 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 |
| Printed page references |
addPageReference("anchor") |
Stable |
In-PDF navigation |
| Generated table of contents |
addTableOfContents(toc -> toc.entry(...)) |
Stable |
In-PDF navigation |