Luma Studio Invoice
The LumaStudioInvoice preset on the structured invoice model — a cream sidebar carrying the brand lockup and its ornament, a billed-to / shipped-to pair, priced service lines with a VAT column, and the notes and bank details above a sign-off band.
1 page
Use this template
<dependency>
<groupId>io.github.demchaav</groupId>
<artifactId>graph-compose-bundle</artifactId>
<version>2.4.1</version>
</dependency>
implementation 'io.github.demchaav:graph-compose-bundle:2.4.1'
Why the aggregate this document is drawn in a bundled font, and those ship separately from the engine; the aggregate carries them along with the PDF backend and the templates, in one coordinate
Java 17 or newer
Preset com.demcha.compose.document.templates.invoice.presets.LumaStudioInvoice
Data model com.demcha.compose.document.templates.data.invoice.StructuredInvoiceDocumentSpec
import com.demcha.compose.document.templates.invoice.presets.LumaStudioInvoice;
DocumentTemplate<StructuredInvoiceDocumentSpec> template = LumaStudioInvoice.create();
try (DocumentSession document = GraphCompose.document(Path.of("invoice-luma-studio-v2.pdf")).create()) {
template.compose(document, data); // data: StructuredInvoiceDocumentSpec
document.buildPdf();
}
./mvnw -f examples/pom.xml exec:java -Dexec.mainClass=com.demcha.examples.templates.invoice.v2.LumaStudioInvoiceV2Example
Writes examples/target/generated-pdfs/templates/invoice/invoice-luma-studio-v2.pdf