Create project in app
This template helps you print onto label sheets with rectangular grids of labels. It provides you with a grid of rectangular regions that you can draw label content into, potentially customizing the content of each individual label.
The main features are the following:
- configure the page dimensions to match the label sheet from your manufacturer: margins, orientation, number of labels per row and column, gutters between labels
- “upside-down” support for cases when the paper should be put into the printer flipped 180°
- configure label layout: optional subdivision of labels into sublabels, content orientation (equivalent to
page.flipped
, but for individual (sub)labels)- “debug” mode in which label edges are shown
- apply content to (sub)labels:
- repeat label contents a specified number of times
- skip labels that have already been used in a previous print
- apply a content-creating function to an array of data, taken e.g. from a JSON or CSV file (this is just vanilla Typst)
Getting Started
Using the Typst web app, you can create a project by e.g. using this link: https://typst.app/?template=etykett&version=latest.
To work locally, use the following command:
typst init @preview/etykett
Usage would the look something like this:
#import "@preview/etykett:0.1.0"
// maybe load the data for your labels from a file, ignoring the columns header
#let data = csv("data.csv").slice(1)
// define how a label should look
#let name-label((first-name, last-name)) = [
#set align(center+horizon)
#set text(14pt)
Hello, my name is\
#set text(1.4em)
*#first-name #last-name*
]
#etykett.labels(
// define the dimensions of the label sheet you're printing onto
sheet: etykett.sheet(
paper: "a6",
margins: 5mm,
gutters: (x: 2.5mm),
rows: 6,
columns: 2,
),
// when preparing the labels, you can display the label dimensions
// debug: true,
// produce the labels for your dataset
..data.map(name-label),
)
Usage
See the manual for details.