GraphCompose Emoji

August 1, 2026 · View on GitHub

io.github.demchaav:graph-compose-emoji

Colour-emoji SVG glyphs (Noto Emoji) plus a GitHub-shortcode index, packaged as an independently-versioned companion artifact (its own emoji-v* tag line — it changes only when the glyph set or shortcode index does, so it does not track the engine version).

When to depend on it

Add it only to render colour emoji. Text without emoji needs nothing, and an unknown shortcode falls back to its literal text — so a document renders unchanged with or without this artifact. graph-compose-bundle includes it.

Smallest complete example

A shortcode resolves to an inline vector glyph inside a rich run, which the flow places like any other content. Rendering still needs a backend — graph-compose-render-pdf, or the graph-compose wrapper that brings it:

Path out = Path.of("rated.pdf");
try (DocumentSession doc = GraphCompose.document(out).create()) {
    doc.pageFlow()
       .addRich(RichText.text("Rated ").emoji(":star:", 12))
       .build();
    doc.buildPdf();                 // -> rated.pdf
}

It is a resource-only jar (glyphs + emoji-index.properties); the shortcode resolver in the engine reads it from the classpath.

Install

Independent version line (emoji-v*) — pinned, not the engine version:

<dependency>
    <groupId>io.github.demchaav</groupId>
    <artifactId>graph-compose-emoji</artifactId>
    <version>1.0.0</version>
</dependency>
dependencies { implementation("io.github.demchaav:graph-compose-emoji:1.0.0") }

The full "which artifact?" table: root README → Installation.