Skip to content

Label Studio


Introduction

The T3 Label Studio is the visual label builder inside the T3 Chrome Extension. It lets you design a label, fill it with Metrc data, preview the result, and download a print-ready PDF without writing any configuration by hand.

Everything the Label Studio produces is ordinary T3 Labels configuration. The Studio is a front end over the same label generation API you can call directly, so any label you build here can be reproduced from a script, and any configuration you already have can be loaded into the Studio to keep editing visually.

This page is a reference for the interface. If you would rather follow a guided build from scratch, start with the T3 Label Tutorial.


Opening the Label Studio

  1. Log in to Metrc with the T3 Chrome Extension installed.
  2. Open the T3 menu and choose Label Studio.

Two buttons get you started:

  • SHOW ME AN EXAMPLE loads a complete working label so you can see how the pieces fit together.
  • START FRESH clears everything and gives you a blank 3x1 label to build on.

The Workspace

The Studio is split into a set of tabs on the left and a live PDF preview on the right.

Three primary tabs carry the main workflow:

Tab Purpose
TEMPLATE BUILDER The physical label: its size, padding, and how labels are arranged on a page
LAYOUT BUILDER What is printed on each label
LABEL DATA The list of records to print, one label per record

A row of secondary tabs holds everything else:

Tab Purpose
My Templates Templates you have saved
My Layouts Layouts you have saved
Default Data Values shared by every label
Built-in Data Text and images T3 provides under the t3. namespace
Images Your own uploaded images
Settings Copies, rotation, and printer tuning
Quick Print Defaults used by one-click printing elsewhere in T3
Import/Export Move a whole configuration to or from a file
Debug Raw configuration, for troubleshooting

The preview column on the right stays visible while you work. It regenerates as you make changes, so you can see the effect of an edit immediately.


Template Builder

A template describes the physical label and the sheet it sits on. It says nothing about content — that is the layout's job. The same layout can be printed on any template, which is what makes it easy to move a design from a thermal roll to a sheet of Avery labels.

The top controls set the label itself:

  • Label Width and Label Height, in inches.
  • Label Padding X and Label Padding Y, the unprintable margin inside each label. Padding is useful when your printer cannot reliably reach the very edge of a label.

The controls below describe the page the labels are arranged on: Page Size X/Y, Page Margin Left/Top, X Gap, Y Gap, Number of Columns, and Number of Rows. When a page holds more than one label, a page layout preview appears showing the grid.

Each control maps to one field in the template config. For the underlying field names and worked examples, see Label Templates.

The Thermal Label Toggle

Most thermal printers print one label per page, where the "page" is exactly the size of the label. The Thermal Label toggle is a shortcut for that arrangement.

Turning it on pins eight values at once: page size becomes the label size, columns and rows become 1, and all margins and gaps become 0. If any of those values would change, you are shown exactly what will be overwritten and asked to confirm first.

While the toggle is on:

  • The eight page settings are locked, and a note explains why.
  • Page Size X and Page Size Y follow the label dimensions automatically, so resizing the label resizes the page with it.

Turning the toggle off unlocks those settings and changes nothing else — your saved template is left exactly as it was. Uncheck it whenever you need to print on a sheet of labels rather than a roll.


Layout Builder

A layout is a stack of elements — text, barcodes, images, boxes — each positioned within the label. Layouts are responsive: positions are fractions of the label rather than fixed measurements, so the same layout adapts when printed on a different size.

The Layer Stack

The panel on the left lists every element in the layout. Elements later in the list are drawn on top of earlier ones.

Control What it does
+ Adds a layer. Choose the element type from the dropdown.
Copy Duplicates the selected layer
Trash Deletes the selected layer
Eye Hides a layer without deleting it. Hidden layers are not printed.
Grip Drag to reorder, which changes what is drawn on top

Click any layer to edit it. Give layers a Layer description so the stack stays readable once a layout grows past a few elements.

Position and Size

Above the layer stack is a scale drawing of your label showing every element in place.

  • Drag the middle of the selected element to move it.
  • Drag an edge to resize it.
  • Other layers are shown as outlines. Click one to select it.

You can also type exact values using the X Start, X End, Y Start and Y End fields in the element editor. These are fractions of the printable area, shown as percentages, where Y starts at the bottom of the label.

Dragging and typing do the same thing — both write the xStartFraction / xEndFraction / yStartFraction / yEndFraction values described in Position and Sizing.

Element Types

Type Renders
Text A paragraph of text, with font, size, alignment and spacing controls
Code 128 Barcode A 1D barcode
Code 39 Barcode An alternative 1D barcode format
QR Code A scannable QR code
Image An image from the Images tab or the T3 built-ins
Box A rectangle, with stroke and fill color, width and opacity
Table A table defined with simple HTML
Fragment Another saved layout, embedded inside this one

Each of these corresponds to an elementType in the layout config — TEXT, CODE128_BARCODE, FRAGMENT, and so on. Label Layouts documents every element type and each of its styling fields.

Text and Table elements share the paragraph controls, including Paragraph text resize strategy:

  • Allow Overflow — text may spill outside its box
  • Truncate Text — text is cut off at the boundary
  • Shrink Text — the font shrinks until the text fits

The Value template field accepts Jinja templating, so {{ package.label }} prints the current record's tag. Use Insert Field to browse the fields available in your loaded data. See Value Templates for the full syntax.

Fragments

A Fragment element embeds one saved layout inside another. A compliance warning panel, a barcode with its tag underneath, or a facility footer can be designed once and reused across every label that needs it.

To add one, create a Fragment layer and pick a saved layout. The preview draws the fragment's contents in place, so you can see what you are embedding rather than an empty box.

Three things are worth knowing:

  • Editing a fragment changes every label that embeds it. That is the point, and also the risk.
  • Positions inside a fragment are relative to the fragment, not to the label. Moving or resizing the Fragment layer moves everything inside it.
  • Font sizes do not scale. Text set at 10pt stays 10pt whether the fragment fills the label or sits in a narrow strip, because font sizes are absolute. Barcodes, QR codes and images do scale. If text must fit its box, set its resize strategy to Shrink Text.

Fragments can embed other fragments, up to five levels deep, though more than two levels is rarely useful. For how fragments are sent to the API, and the full list of limits, see Reusing Layouts With Fragments.


Label Data

The LABEL DATA tab supplies the list of records to print. One record produces one label, so a list of 30 packages prints 30 labels.

There are four sources:

Source Use it for
Load from Metrc Pulling packages, plants or plant batches directly. Max 500 records.
Import from File Uploading a CSV or JSON file
Manual Entry Typing or pasting label data directly
Demo Packages Sample data for exploring label features without touching real records

Loading from Metrc offers Active Packages, In-Transit Packages, Active Superpackages, In-Transit Superpackages, Vegetative Plants, Flowering Plants and Active Plant Batches.

Once data is loaded, every field on the record is available to your value templates. For a package, that includes:

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

Use Insert Field in the Layout Builder rather than typing these from memory — it lists exactly what your loaded data contains, with an example value beside each one.

Default Data, Built-in Data, and Images

Three secondary tabs round this out:

  • Default Data holds values shared by every label, such as a facility address. These are available to templates the same way record data is. See Default Data.
  • Built-in Data lists what T3 provides for free under the t3. namespace — state warning images, compliance disclosures, and Poison Control Center contact info. For example, {{ t3.images["t3_logo.png"] }} renders the T3 logo. See Built-In Data.
  • Images is where you upload your own logos and graphics for use in Image elements.

Saving Templates and Layouts

Templates and layouts are saved separately, so a layout you design once can be printed on any template you have.

When a template or layout is loaded, a card at the top of the tab shows its name and status:

  • Starter marks a built-in template or layout provided by T3. These are read-only. To change one, use Make a Copy to create your own editable version.
  • Custom marks something you saved yourself.
  • Auto-save saves your changes as you work. Turn it off if you would rather save deliberately with the Save button; the card shows Unsaved changes until you do.
  • Make a Copy duplicates the current design under a new name.
  • RESET clears the current selection and starts over.

Your saved work appears under My Templates and My Layouts, and in the starter autocomplete dropdowns. Saved templates and layouts are visible to Metrc users who have access to the same license, so a design made once can be shared across your team.


Generating and Previewing

Click GENERATE PDF to render your labels. The preview appears in the right column, and from there you can DOWNLOAD PDF or VIEW IN NEW TAB.

Useful controls beside the button:

  • Draw borders outlines every element in the rendered PDF. This is the fastest way to understand why something is positioned oddly.
  • Copies prints each label more than once.
  • Rotate turns the layout on the page.

If a label cannot be rendered, the error panel explains what went wrong and which layer caused it. The most common cause is a Value template referencing a field that does not exist in your loaded data — the message names the field and suggests close matches. Click SHOW LAYER to jump straight to the element at fault. The tutorial's error walkthrough reads one of these messages field by field.

For printer setup, driver installation and troubleshooting, see Printing Label PDFs.


Settings

Setting What it does
Copies How many copies of each label to generate
Reverse print order Thermal printers print labels sequentially, but the spooled order is reversed (last to first). Enable this to print labels in the same order as they appear in the PDF.
Rotation Degrees to rotate the layout. 90 prints sideways.
Barcode bar thickness Adjust if you are using a low-DPI printer and printed barcodes are too thick or unscannable. Higher means thicker bars. 1.0 suits most thermal printers.
Label margin thickness Adjust if your printer has trouble printing the exact center of labels. Higher means thicker margins. 1.0 suits most thermal printers.
Debug Enables rendering debug output
Show help Shows or hides the help cards in each tab

These map to the rendering options documented under Settings.


Quick Print

Elsewhere in T3 you can print a label for a package, plant or plant batch in one click. The Quick Print tab sets which template and layout those shortcuts use, with a separate layout for each object type so a plant tag can differ from a package label.


Import, Export, and Debug

Import/Export writes your entire configuration — template, layout, data, default data, images and settings — to a single file, and loads it back. Use it to move a label design between facilities, hand a design to someone else, or keep a backup before a large change. You can choose which parts to include.

Debug shows the raw configuration behind the Studio. If you are asking for help with a label, the contents of this tab are the most useful thing to share.


Next Steps