Payments Invoice

The PaymentsInvoice preset on the structured invoice model — a diagonal band crossing the masthead, a half-split issuer and metadata header, two addressed parties, marked service lines that repeat their header across pages, and a settlement row pairing bank details against the totals.

1 page

Use this template

Maven
<dependency>
  <groupId>io.github.demchaav</groupId>
  <artifactId>graph-compose-bundle</artifactId>
  <version>2.4.1</version>
</dependency>
Gradle
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.PaymentsInvoice

Data model com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData

Compose this preset
import com.demcha.compose.document.templates.invoice.presets.PaymentsInvoice;

DocumentTemplate<StructuredInvoiceData> template = PaymentsInvoice.create();

try (DocumentSession document = GraphCompose.document(Path.of("invoice-payments-v2.pdf")).create()) {
    template.compose(document, data);   // data: StructuredInvoiceData
    document.buildPdf();
}
Run the example
./mvnw -f examples/pom.xml exec:java -Dexec.mainClass=com.demcha.examples.templates.invoice.v2.PaymentsInvoiceV2Example

Writes examples/target/generated-pdfs/templates/invoice/invoice-payments-v2.pdf