Skip to content

Label Studio


Label Studio

The T3 Label Studio can instantly generate high-quality, printable label PDFs prefilled with data from Metrc.

  • Fully customizable layouts with support for images, tables, barcodes, and QR codes
  • Compatible with all label sizes and printer types, including thermal, laser, inkjet, and direct-to-tag
  • Automatically populated with data pulled directly from Metrc
  • Built on a powerful templating language for complete control over design and content

Label Generation via the Chrome Extension

The T3 Chrome Extension offers a smooth interface to quickly generate and download label PDFs.

T3 Chrome Extension label generation interface

T3 Chrome Extension label generation interface

Label Generation via the T3 API

Labels can also be generated via the T3 API.


Supported Printers

The T3 label generator uses PDF files as its output format.

Printing PDF labels has been successfully tested on major printer brands and models, including:

  • Zebra thermal printers
  • Rollo thermal printers
  • Dymo thermal printers
  • Sato CL4NX Plus

Printing label PDFs may require some setup and configuration. See the page on printer configuration to learn more.


Customized Labels

Labels in T3 are fully user-configurable. Every label PDF is built from three pieces that you control independently:

  • A template defines the physical medium: label dimensions, page size, margins, padding, and how labels are arranged on a page. See Label Templates.
  • A layout defines what actually appears on each label — text, tables, images, barcodes, and QR codes — and how those elements are positioned within the printable area. See Label Layouts.
  • A data list is the set of per-label values that are injected at render time (for example, a list of package tags).

Layouts are responsive to template dimensions, so you can design a layout once and reuse it across different label sizes. Layouts can be static (every label identical), dynamic (each label filled with different data), or a mix.


Custom Templates

The Label Studio includes preset templates for common label sizes (for example, 3x1 thermal labels and Avery 8160 sheets), but you can define your own template for any rectangular label medium.

A template specifies:

  • labelWidthIn / labelHeightIn — label dimensions
  • pagesizeXIn / pagesizeYIn — page dimensions
  • numColumns / numRows — how many labels are arranged on a page
  • pageMarginTopIn / pageMarginLeftIn — page margins
  • xGapIn / yGapIn — spacing between labels
  • labelPaddingXIn / labelPaddingYIn — inner padding around the printable area of each label

For thermal labels, the label size and page size are identical, with one row and one column. For label sheets (Avery, for example), a single page contains a grid of labels. T3 automatically splits long data lists across multiple pages.

Layouts inside a template support several element types, all of which can be combined to build a complete label:

Element type Use
TEXT A paragraph of text
TABLE An HTML-defined table of rows and columns
IMAGE A base64-encoded image (logos, warnings, product photos)
CODE128_BARCODE A Code 128 barcode (used for Metrc tags)
CODE39_BARCODE A Code 39 barcode
QR_CODE A QR code
BOX A rectangular border or background fill

See Label Layouts for the full list of styling and positioning options.


Metrc Data

Labels can be populated with data pulled directly from Metrc. In the Label Studio's Label Data tab, select a data source:

  • Load demo packages — a set of example packages for trying out layouts.
  • Load data from CSV — upload a CSV to populate labels (see Retail ID for a worked example).
  • Load from Metrc — pull live package, plant, or transfer data from Metrc (T3+ only).

Once loaded, any field on the Metrc object is available inside your value templates via Jinja. For example, a package label layout can reference:

  • {{ package.label }} — the Metrc tag
  • {{ package.item.name }} — the item name
  • {{ package.item.strainName }} — the strain
  • {{ package.quantity }} / {{ package.unitOfMeasureName }} — quantity and unit
  • {{ package.metadata.totalThc }} / {{ package.metadata.totalCbd }} — extracted lab results (when present)

T3 also exposes common built-in values under the t3.* namespace — state warning images, compliance disclosures, and Poison Control Center contact info — so you don't have to manage those yourself. See Built-In Data.


Next Steps