Skip to main content

Component Tour

Every element type in one template, labelled and ready to take apart.

Open it and take it apart

Everything below is generated from the template itself, so it always matches what you get. Start from this template to open an editable copy.

What it teaches​

  • What each of the 15 element types looks like
  • The two ways to iterate an array: a bound table vs a detail band
  • Which elements are superseded (table, page-break)
  • How the five band kinds stack into a document

The data you send​

Pass this as your render payload. The field names come from the template's schema — rename them there and the tokens follow.

{
"customerName": "Acme Corp",
"issueDate": "2026-08-22",
"products": [
{
"name": "Plan",
"units": 12,
"revenue": 1440
},
{
"name": "Plan",
"units": 12,
"revenue": 1440
}
],
"lineItems": [
{
"description": "Onboarding",
"amount": 250
},
{
"description": "Onboarding",
"amount": 250
}
]
}
About the sample rows

The schema stores one sample value per field, so every generated row looks the same. Trimmed to 2 here; your real array can be any length.

How the array reaches the page​

The table's bindingField is products, so its body row repeats once per item in that array. Each cell binds to one property of the item:

ColumnBinds toWidth
Productname56%
Unitsunits20%
Revenuerevenue24%

A token inside a body cell resolves against that row's item, not the document. That is the single thing people get wrong most often.

Band stack​

A Paperwright document is a stack of bands. This template uses:

  • page-header
  • report-header
  • detail
  • report-footer
  • page-footer

Properties that matter​

Only properties this template changed from their defaults — anything omitted is left as-is.

BandElementPropertyValue
page-headertextrolecaption
page-headertexttextPaperwright — Component Tour
page-headertextfontSize9
page-headertextcolor#a3a3a3
report-headertextroleheading
report-headertexttextComponent Tour
report-headertextfontSize26
report-headertextfontWeight700
report-headertexttextEvery element type in one template. Clone it a…
report-headertextfontSize11
report-headertextcolor#525252
report-headertextrolecaption
report-headertexttextTEXT
report-headertextfontSize9
report-headertextfontWeight600
report-headertextcolor#737373
report-headertexttextPlain text. Supports {{customerName}}.
report-headertextfontSize11
report-headertextrolecaption
report-headertexttextFIELD — label + value pair
report-headertextfontSize9
report-headertextfontWeight600
report-headertextcolor#737373
report-headerfieldlabelIssued
report-headerfieldvalue{{issueDate | date:"medium"}}
report-headerfieldvalueFontSize9
report-headertextrolecaption
report-headertexttextMARKDOWN
report-headertextfontSize9
report-headertextfontWeight600
report-headertextcolor#737373
report-headermarkdownsource**Bold**, _italic_ - a list item
report-headertextrolecaption
report-headertexttextRECT — box, ellipse or line
report-headertextfontSize9
report-headertextfontWeight600
report-headertextcolor#737373
report-headerrectfill#eef2ff
report-headerrectborderColor#6366f1
report-headerrectborderWidth1
report-headerrectradius6
report-headertextrolecaption
report-headertexttextICON
report-headertextfontSize9
report-headertextfontWeight600
report-headertextcolor#737373
report-headericoncolor#6366f1
report-headertextrolecaption
report-headertexttextIMAGE
report-headertextfontSize9
report-headertextfontWeight600
report-headertextcolor#737373
report-headerimagesrcdata:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A…
report-headerimagealtSample image
report-headerimagefitcontain
report-headertextrolecaption
report-headertexttextSPACER — reserves space, draws nothing
report-headertextfontSize9
report-headertextfontWeight600
report-headertextcolor#737373
report-headertextrolecaption
report-headertexttextQRCODE — accepts tokens
report-headertextfontSize9
report-headertextfontWeight600
report-headertextcolor#737373
report-headertextrolecaption
report-headertexttextBARCODE
report-headertextfontSize9
report-headertextfontWeight600
report-headertextcolor#737373
report-headerbarcodevaluePAPERWRIGHT-001
report-headertextrolecaption
report-headertexttextLIST — bullet or numbered
report-headertextfontSize9
report-headertextfontWeight600
report-headertextcolor#737373
report-headerlistlistStylenumbered
report-headertextrolecaption
report-headertexttextITERATING AN ARRAY, WAY 1 — a table bound to t…
report-headertextfontSize9
report-headertextfontWeight600
report-headertextcolor#737373
report-headertextrolecaption
report-headertexttextCHART — same products array, summarised
report-headertextfontSize9
report-headertextfontWeight600
report-headertextcolor#737373
report-headerchartbindingFieldproducts
report-headerchartlabelKeyname
report-headerchartvalueKeyunits
report-headercharttitleUnits by product
report-headertextrolecaption
report-headertexttextTABLE — SUPERSEDED, use table-v2
report-headertextfontSize9
report-headertextfontWeight600
report-headertextcolor#737373
report-headertablecolumns2 items
report-headertablerowHeight26
report-headertablestaticRows2 items
report-headertextrolecaption
report-headertexttextPAGE-BREAK — structural; draws nothing
report-headertextfontSize9
report-headertextfontWeight600
report-headertextcolor#737373
detailtexttext{{description}}
detailtextfontSize11
detailtexttext{{amount}}
detailtextfontSize11
detailtextalignright
report-footertextrolecaption
report-footertexttextSIGNATURE
report-footertextfontSize9
report-footertextfontWeight600
report-footertextcolor#737373
report-footersignaturelabelAuthorised signature
report-footersignaturesublabelDate
page-footertextrolecaption
page-footertexttext{{$page}} / {{$pages}}
page-footertextfontSize9
page-footertextcolor#a3a3a3
page-footertextalignright

Start from this template →