Chapter 1How it fits together
spooler has four moving parts. Once you can name them, every screen makes sense.
| Part | What it is | Where you find it |
|---|---|---|
| Workspace | Your company. Labels, printers, people, jobs and data all belong to it and are invisible to other companies. Larger companies split a workspace into sites. | Created when you sign up; managed on the Team page |
| Labels | Designs, kept in folders in My Labels. A label mixes fixed content with tags such as {product} that are filled in when it prints. Every save keeps a version. | The designer (/app) |
| Printers & the Print Bridge | Saved printers are shared with the team. Browsers can't talk to printers directly, so a small helper on each printing PC, the Print Bridge, carries the job the last metre: over the network to an IP address, or to a USB printer plugged into that PC. | Printers page; bridge download on the queue |
| Print Queue | Where jobs wait to be released to a printer. Jobs come from your own systems through the API, from spreadsheets, or are queued by hand. Nothing prints until a person releases it, and every release is audited. | Print Queue page |
Two printer families are supported: Honeywell / Intermec printers speaking Fingerprint, and Zebra printers speaking ZPL. One design prints on either; you set the language per saved printer, and the print engine generates the right code.
Chapter 2Getting started
- Create your workspace. Sign up with your name, work email, company name and a password, then confirm the email. You become the Owner of a new workspace.
- Set the label size. Open the designer. In Label settings, enter your stock's width and height in millimetres, the printer's resolution (203, 300 or 600 dpi) and whether it prints direct thermal or thermal transfer.
- Design. Add text, barcodes, lines, boxes and images from the toolbar; drag them into place. Wherever a value changes per label, type a tag such as
{batch}instead of a value. - Save. Click Save, name the label, and pick a folder. It now appears in My Labels for your whole team.
- Save a printer. On the Printers page add a printer: a name, its IP address and port (usually 9100) or, for USB, its Windows name, and the language: Honeywell or Zebra.
- Install the Print Bridge on the PC you print from: Windows installer or macOS app from the Print Queue page. It runs in the background from then on.
- Print a test. In the designer click Print, choose the saved printer and Preview data, and send one label.
- Invite the team. Team page → Invite a teammate, choosing each person's role. Operators who only print get exactly that.
Chapter 3Accounts and signing in
Getting an account
Accounts are set up for you rather than self-served. Request an account on the site asks for your name, work email, company and a line about what you print; the team replies with an invitation email, usually within a working day. The link in it lets you choose a password and lands you in your new workspace as its Owner. If a colleague already has a workspace, ask them for an invite from the Team page instead. Sign-in and account requests are not available over the Tor network.
Joining by invitation
An Owner invites you from the Team page. The email contains a link that lets you set your name and password; the role and, if used, the site were chosen by the person who invited you. Invitations expire, and an Owner can revoke a pending invite at any time.
Forgotten password
Use Forgot your password? on the sign-in page. The reset link is emailed to you. If the confirmation email never arrived, Resend confirmation sends a fresh one.
Your account: name and password
Open the menu under your email address in the top bar and choose My account. Change your display name, which is what teammates see in the queue history and audit trail, or your password by entering the current one and the new one twice. Changing the password signs out every other device you were using; the one you are on stays signed in. If you have forgotten the current password, sign out and use Forgot password instead.
Role changes
When an Owner changes your role, site or Floor-only setting, the change reaches you the next time a page fully loads, or immediately the next time you sign in.
Chapter 4The designer
The designer is where labels are made. The canvas in the middle shows the label at true proportions; the toolbar above holds tools and file actions; the panel on the right shows the settings of whatever is selected, or the label's own settings when nothing is.
4.1 The toolbar
| Group | Buttons |
|---|---|
| Add | Text, Barcode, Line, Box, Image. Each drops a new element onto the canvas, selected and ready to edit. |
| Edit | Undo / Redo, Copy / Paste, Delete (shows how many elements are selected). |
| View | At the right: the zoom control (−, the percentage, which resets to 100% when clicked, +, and fit-to-window), a grid toggle, and the ? button listing keyboard shortcuts. The open label's name and size sit beside them. |
| File | New blank label, Save, Save As (a copy under a new name), My Labels (the library), Close (clears the canvas). |
| Output | Print opens the print dialog. |
| Arrange | Align left / centre / right / top / middle / bottom (two or more selected) and distribute horizontally or vertically (three or more). Greyed out until enough is selected. See Positioning. |
| Files | Export saves the design as a portable .xld file; Import loads one. Printer code and capture from other software are imported through the code panel's Import button below the canvas. |
Fields whose values have a syntax, such as Tag, Anchor Point and Ratio, carry a small i button. Click it for a quick explanation with examples, and a link to the relevant chapter here.
Below the canvas, the generated printer code updates live as you edit. You can copy it or save it as a text file, which is handy for pasting into another system or for support.
4.2Label settings
Shown in the right-hand panel when nothing is selected. Set these first, because element positions are measured from the label's edges.
| Setting | Meaning |
|---|---|
| Width / Height (mm) | The physical label. Measure the stock; don't trust the box. Sizes are stored in printer dots internally, so millimetre values round to the nearest dot. |
| DPI | The printer's resolution: 203, 300 or 600. Font sizes are in points and positions in millimetres, so a design moves between resolutions, but check barcode module widths after changing it. |
| Label Direction | How the design sits on the media as it feeds: DIR 1 (0°), DIR 2 (90° clockwise), DIR 3 (180°), DIR 4 (270° clockwise). The canvas always shows the label the way you read it; the direction tells the printer how to turn it. Use it when the roll is loaded sideways relative to how the label is read. |
| Print Method | Direct Thermal for heat-sensitive stock with no ribbon; Thermal Transfer when a ribbon is loaded. Honeywell printers are told which one to use; on Zebra the setting is left to the printer. |
| Margin (mm) | The safe-area guide, drawn as a dashed line inside the label edge. Printers drift a millimetre or so between labels, so keep content inside it. It is guidance only and never printed or enforced. |
4.3Elements
Select an element by clicking it; drag a rectangle to select several; Shift-click adds to a selection. The right-hand panel shows the selected element's properties. Every element has a position, an anchor point and a direction; the rest depends on its type.
Text
- Text is what prints. It may contain tags:
Batch {batch},Packed @date(dd MMM yyyy). - Preview Text is optional example content shown on the canvas in place of tags, so a design full of tags still looks like a real label while you work. It never prints.
- Font is chosen from the printer-resident faces: Swiss 721 (regular, bold, condensed), CG Triumvirate Condensed Bold, CG Times (regular, bold), Century Schoolbook, Letter Gothic, Andale Mono (regular, bold), and the machine-readable OCR-A and OCR-B. On a Zebra printer every face maps to the resident scalable font except the two OCR faces, which use Zebra's OCR fonts.
- Size (pt) is in points, the same on every printer resolution.
- Mag Width / Mag Height stretch the glyphs by whole multiples (1×–4×) for big, blocky text without a huge point size.
- Invert prints white text on a black pad, for headings like "KEEP FROZEN".
Barcode
- Type: Code 128 (automatic subset, or forced A, B or C), Code 39, Code 93, Codabar, Interleaved 2 of 5, EAN-13, EAN-8, UPC-A, UPC-E, QR Code, Data Matrix, PDF417, MaxiCode and POSTNET. The two-dimensional codes (QR, Data Matrix, PDF417, MaxiCode) need a printer that supports them; all current Zebra and Honeywell models do.
- Data is the encoded content and may contain tags:
{sscc},01{gtin}10{batch}. Preview Data is example content for the canvas, like Preview Text. - Height is the bar height; Ratio is the narrow-module width in dots (2 is typical at 203 dpi, 3 at 300). Wider modules scan better from further away and make the symbol wider.
- Human readable prints the digits under a 1D barcode.
- Check digits: for EAN-13, EAN-8 and UPC-A, enter the number with or without its check digit. If you give the full 13, 8 or 12 digits, the check digit is dropped and the printer recalculates it, so a typo never produces an unscannable code.
The canvas draws real barcode patterns from your data, so a value that a symbology cannot encode (letters in an EAN, for instance) shows as a warning outline instead of bars.
Line and Box
A Line has a length and a thickness in millimetres. A Box has a width, a height and a border thickness; make the thickness half the smaller side or more and it prints as a solid block. Both are drawn in the printer's own graphics commands, so they are always crisp.
To resize on the canvas, select the box and drag the blue handle at its bottom-right corner; a line has the handle at its right end and the drag changes its length. Width, height and thickness can still be typed in the panel, and a resize is one undo step. Images resize the same way, keeping their proportions.
Image
- Click Upload in the Image panel and choose any common image file (PNG, JPEG, GIF, BMP…), up to 10 MB. It is converted to pure black and white at the label's resolution, because thermal printers have no grey. Logos with clean edges convert best; photographs come out as hard black shapes.
- Placeholder W / H is the size the image is fitted into: an image larger than the placeholder is shrunk to fit; a smaller one keeps its natural size. Change the placeholder and the stored image is re-sampled from the original upload, so repeated resizing never degrades it.
- Until an image is uploaded the element prints nothing and shows a named placeholder on the canvas, so a design can be laid out before the artwork arrives.
- Images are embedded in the print job itself. Nothing has to be loaded onto the printer beforehand, and the same design prints on Zebra and Honeywell alike.
4.4Positioning, anchors and arranging
Position and anchor
Every element has an X / Y position in millimetres from the label's top-left corner, and an Anchor Point numbered like a telephone keypad turned upside down: 7, 8, 9 across the top; 4, 5, 6 through the middle; 1, 2, 3 along the bottom. The anchor is the point of the element that sits at X, Y. Anchor 7 pins the top-left corner; anchor 8 pins the top-centre, so text stays centred on that point however long it gets; anchor 3 pins the bottom-right, so a right-aligned price grows leftwards.
Choose anchors by what must stay put when content changes. Centred titles want 8 or 2; right-aligned numbers want 9, 6 or 3; most everything else is fine at 7.
Direction
Each element has its own Direction (0°, 90°, 180°, 270°) in addition to the label's direction, for text running up the side of a label or a barcode printed as a ladder.
Moving things
- Drag elements with the mouse; they snap to the grid when it is on. Drag on empty canvas to marquee-select several.
- Type exact X / Y values in the panel for precision.
- Align buttons (two or more selected) line up left, centre, right, top, middle or bottom edges. Aligning re-anchors unrotated elements at the shared edge or centre, so a centred group stays centred when its text changes and lines up identically on paper.
- Distribute (three or more selected) makes the gaps between elements equal, keeping the outermost two where they are. A selection spanning several columns is distributed column by column (rows, for horizontal distribution), so selecting a whole two-column form and distributing vertically tidies both columns without mixing them.
- Bring forward / Send backward change drawing order, which matters when an inverted text pad or a box overlaps something else.
Keyboard shortcuts
| Ctrl+Z / Ctrl+Y | Undo / Redo |
| Ctrl+C / Ctrl+V | Copy / Paste (pastes offset so the copy is visible) |
| Ctrl+D | Duplicate the selection |
| Ctrl+A | Select all |
| Delete | Delete the selection |
| Ctrl++ / Ctrl+− | Zoom in / out |
| Arrow keys | Nudge the selection by one grid step |
On a Mac, use ⌘ where Ctrl is shown.
4.5My Labels, folders and versions
The library
My Labels is your company's shared library: folders on the left with a count per folder, labels in the chosen folder on the right, and a search box that looks across every folder and shows each hit with its folder path. Each row has Open and a ⋯ menu with Rename, Duplicate, Version history, Move to folder, and Delete (system administrators also see Move to company). + New folder creates a folder inside the selected one; the folder header offers Rename and Delete folder. Deleting a folder deletes what is in it, after confirmation.
Saving
Save writes a new version of the open label. Save As creates a separate label with a new name, leaving the original untouched: the right tool for a variant. Label names must be unique within a folder. The canvas title shows an asterisk while there are unsaved changes, and closing the browser tab warns you.
Version history
Every save keeps a version, and History lists the last 20 with who saved them and when. Opening one shows it on the canvas; Restore makes it the current version by saving it again, so nothing is ever lost from the history by restoring. Supplier-key mappings pin a specific version, so restoring never changes what suppliers print unless the mapping is updated.
Two people, one label
If someone else saved the label after you opened it, your Save is refused with their name and time. You can overwrite their version with yours, or cancel and use Save As to keep both. Their version stays in the history either way.
Who can do what
Admins and Owners design and save. Managers and Operators can open labels to look and print but cannot change the library. See Team & roles.
4.6Import and export
Label files (.xld)
Export downloads the open design as a .xld file: a self-describing text format that holds the whole label. Import loads one onto the canvas as a new, unsaved design. Use it to move a design between workspaces, keep an offline backup, or send a label to support.
Printer code
The Paste printer code tab of the Import dialog accepts Honeywell Fingerprint or Zebra ZPL, pasted or loaded from a file, and turns it into an editable design. The language is detected automatically. Text, barcodes, lines, boxes and embedded graphics come through; anything with no equivalent in the designer is listed in the import notes. This is how existing hand-written labels get into spooler without redrawing them.
Capture from other software
The Capture tab turns the Print Bridge into a fake printer so labels from BarTender, NiceLabel, Loftware and similar programs can be printed straight into the designer. It is covered step by step in Migrating from BarTender.
4.7Printing from the designer
Click Print. The dialog has three parts.
Printer
Pick a saved printer, or type an IP address and port for a one-off and, optionally, save it with a name and language for next time. The bridge status box below tells you whether the Print Bridge is running on this PC; without it nothing can print.
Data to send
| Mode | What prints |
|---|---|
| Tags | Production output: the design exactly as saved, with {tags} left in place. Useful for checking the code another system will receive, or for printers that fill tags themselves. |
| Preview data | A test print using each element's Preview Text / Preview Data in place of its tags, with @date-style tags stamped with the current time. This is the mode for proofing a design. |
| CSV batch | One label per row of a spreadsheet you choose (Excel or CSV, up to 1,000 rows). Column headers fill the matching tags; a qty column sets copies per row. For anything more than a one-off, use the Print Queue instead, which keeps a history of what was printed. |
Copies
1 to 99 copies of the label. When the design contains a sequence tag, each copy steps the number.
After sending, the dialog reports how many bytes reached the printer and anything the printer replied. Honeywell printers answer every command, so an error there usually names the problem exactly.
Chapter 6Printers
The Printers page holds the printers your team prints to. Managers, Admins and Owners can change it; everyone can print to what is there.
| Field | Meaning |
|---|---|
| Name | How the printer appears in every printer list. Unique within the company. |
| Connection | Network (IP address): the Print Bridge opens a connection to the printer's address, port 9100 unless yours differs. USB (via Print Bridge): the printer is plugged into the printing PC; see below. |
| Language | Honeywell for Fingerprint printers (Intermec PM, PC, PD and PX series and their Honeywell successors). Zebra (ZPL) for Zebra and ZPL-compatible printers. |
| Site | Which site's operators see this printer. Company-wide is visible to everyone. A manager pinned to a site can only add printers to their own site. |
| Default | Pre-selected in print dialogs. One per company. |
Print stations: printing from tablets, phones and PCs without a bridge
Normally the browser that clicks Print talks to the Print Bridge on the same PC. A print station turns that around: the bridge on a PC in the plant enrols with spooler and keeps a connection open, and any signed-in device can release jobs to that PC's printers. Nothing is opened inbound to your network, because the connection starts from inside.
- On the PC that runs the Print Bridge (1.7 or newer), open the Printers page and click Connect this PC as a station. If you use sites, pick which site it serves first. The PC appears in the stations list within a second, named after the machine; rename it to something operators recognise ("Dock PC", "Packing line 2").
- For a USB printer, edit the printer and set Plugged into to that station. The printer-name list then comes from the station's own report of what is installed, so you can do this from any device.
- Network printers need nothing more: any online station in the printer's site can reach them.
The list shows each station's online state live, its bridge version and how many printers it has installed. Remove revokes the station's connection; Disconnect this PC on the station itself forgets the enrolment locally. A station that is switched off shows as offline and jobs simply wait.
USB printers
- Install the printer in Windows the normal way, with its Zebra or Honeywell driver or the Generic / Text Only driver. Any of them works, because the bridge hands the label code to the driver raw and the driver passes it straight through. Confirm a test page prints.
- Make sure the Print Bridge (1.5 or newer) is running on that PC.
- Add a printer with Connection USB (via Print Bridge). Click List this PC's printers and pick the printer from what the bridge reports, or type its exact Windows name if you are setting it up from another PC.
A USB printer definition is shared with the team but only prints from PCs where a printer of that name is installed and the bridge is running. Give the same printer the same Windows name on each workstation, or save one entry per workstation. Other Windows programs can keep using the printer. Because the job goes one way through the Windows spooler, the printer's reply is not captured for USB printers. On a Mac, the entry is the CUPS queue name.
Licences
Printer counts are licensed: per site when sites are used, otherwise per company. The Printers and Sites pages show the cap, and adding a printer beyond it is refused with a message. Your provider sets the caps.
Chapter 7The Print Bridge
Browsers are not allowed to open raw connections to printers, so a small helper does it. The Print Bridge runs on the PC you print from, listens only to that PC, and forwards each job to the printer: over your network to an IP address, or to a USB printer through the operating system. Nothing is sent anywhere else and no inbound firewall rule is needed.
Installing on Windows
Download the installer from the Print Queue page (Bridge button) or the designer's print dialog, run it, and approve the administrator prompt. The bridge installs as a background Windows service that starts with the PC, and a spooler icon in the taskbar shows its status: blue when running, grey when stopped, with a right-click menu to check or restart. Uninstall from Settings → Apps.
Installing on macOS
Download the disk image, drag Spool Print Bridge to Applications and launch it. A printer icon appears in the menu bar: filled when the bridge is running, hollow when it is not. Its menu offers Check now, Restart bridge, Start at login, Open Help and Show log. The bridge runs as a background login agent; there is no window to keep open. To remove it, choose Stop bridge and quit, then drag the app to the Bin. The app is signed and notarised, so macOS opens it without warnings.
Status in the app
The Print Queue shows a Bridge button: green when the bridge on this PC answers, red when it does not. The designer's print dialog shows the same status. Both offer Re-check, and the queue's button opens the download panel.
Rules of thumb
- For a PC printing its own jobs, the bridge must run on the same PC as the browser you click Print in. To release from other devices, enrol that PC as a print station.
- Install it on every workstation people print from. One bridge serves every printer that PC can reach.
- Upgrading is just installing the new version over the old one. The app tells you when a feature needs a newer bridge.
- The bridge only accepts requests from spooler's own web address, so other websites in the same browser cannot use it.
Chapter 8The Print Queue
The queue separates creating a label job from printing it, so nothing prints to an unattended, empty or wrongly loaded printer, and so every label that leaves a printer is accounted for.
Pending and History
Pending lists jobs waiting for release, newest first, with the design or label type, where it came from, copies and when it arrived. Jobs arrive from your systems through the API or a supplier key, from spreadsheets, or by hand. History holds everything else: printed, failed and cancelled jobs, searchable by transaction, PO, delivery, material or SSCC.
Review and print
Open a job to see its data read-only, a preview of the exact label with that data in place, and the release controls. Data is shown as received; where the design adds a date offset or format to a field, a blue line beneath the value reads prints as 16/09/2026 (+7 days), so a best-before that arrives as the 9th and prints as the 16th is explained rather than alarming. A value the design expected to be a date but could not read is marked prints as received, meaning the offset was skipped. The Floor view shows the same notes. Print via chooses the route: the Print Bridge on this PC, or a print station; when only one route exists it is chosen for you, and a USB printer homed on a station always goes through that station. If the source system left something open, the job asks for it here: the design or label format, the number of copies, or a printer. A suggested printer named by the source is pre-selected when it matches one of yours. Your choices are saved onto the job, so a later reprint reuses them. Click Print to release; the job moves to History as Printed, or stays visible as Failed with the printer's error if it did not work, ready to release again. A design that draws pallet or serial numbers from a sequence lists the counter beneath the data too: next in the sequence before printing, and the exact range the job printed with afterwards.
Print all
When a system drops many jobs at once, Print all (N) on the Pending tab releases every pending job in one run, oldest first, to the printer you choose. Tick use each job's suggested printer to send jobs where their source system asked, when that matches one of your printers. A progress bar and Stop button follow the run. Every job still gets its own history entry and status. Jobs that need a format, design or copies choice are counted and left pending for a person, and if the Print Bridge stops answering mid-run the remaining jobs stay pending rather than being marked failed.
Cancel, restore, reprint
- Cancel moves a pending job to History without printing, after confirmation. Restore to queue brings a cancelled job back.
- Reprint a printed job from History. A reason is required, chosen from a list (damaged label, missing label, printer jam, incorrect placement, print quality issue), and the original data is reused unchanged. A genuinely new carton or pallet should arrive as a new job from the source system.
Queueing by hand
+ Queue a job is available to Managers, Admins and Owners, and to any Operator an Owner has ticked Queue jobs for. Pick a design in the picker: your folders on the left, a searchable list on the right. Not sure which name is which? The eye button on a row opens a preview of that design, drawn with its preview text and today's dates, with a Use this design button beneath it. Then either:
- Single job: fill in the design's tags, set copies and optionally a printer, and queue it.
- From spreadsheet or saved data: upload an Excel or CSV file, or choose a saved data source. Filter the rows, tick the ones to print, and each becomes a job with its tags filled from the columns whose headers match the tag names. The Copies field is the default per row; a
qty,quantityorcopiescolumn overrides it per row.
Everything is audited
Each job's history records who queued, released, reprinted, cancelled or restored it, when, on which printer, through which station, how many copies, the printer's reply, and the reason for a reprint. Owners can see the audit trail across the company.
The Floor view: the queue on a tablet or phone
Floor in the top bar is the queue laid out for a device at the printer: one column of jobs, big Print buttons, the printer and route chosen once at the top, and a short list of recently printed jobs with a Reprint button. Printers that cannot be reached from the device you are holding are greyed out with the reason: a USB printer not homed on a station can only be used from the PC it is plugged into, and a printer whose station is offline waits until that PC is back. Tap a job to see its data and preview; Print releases it through the chosen print station, so the tablet needs nothing installed. Jobs that still need a format, design or copies choice say so and link to the full queue. It works in any phone or tablet browser, and it is a good page to pin to a home screen.
When a job needs something typed at the printer, a weight or a grade the source system left for the operator, the card shows large inputs under Enter before printing; the label redraws with the value as you type, and Print waits until the required ones are filled. See capture in the API chapter.
Tap a job to see the label itself, drawn with the data it will print, before you press Print. For a device that is shared by a bench rather than a person, an Owner can give it a Floor-only sign-in that opens here, hides everything else and signs itself out after a quiet spell; see Team.
Chapter 9Data: saved spreadsheets
Uploading the same product master before every print run gets old. The Data page (under Company in the top bar) keeps spreadsheets for you, so operators pick rows rather than files.
- Add a data source: give it a name and upload an Excel (.xlsx, .xls) or CSV file, up to 20,000 rows. Or, right after a one-off upload in the queue, click Save this spreadsheet for next time.
- Use it: in the queue's spreadsheet mode, pick the data source from the saved list, filter, tick rows, print. Column headers still match the design's tags by name, so nothing about your labels changes.
- Edit it: open a data source to fix a value inline, add a row, or delete rows. Replace from file swaps in a fresh export while keeping the name; Download CSV gives you the current table back for bulk editing in Excel.
- Sites: a user pinned to a site saves data for that site; head office saves company-wide data every site can print from. Site data is edited by its own site, company-wide data at company level.
- Audit: every upload, replacement, row edit and deletion is logged with who and when, like prints.
Chapter 10The Print API
Your own systems (ERP, WMS, EDI translators, a script) can queue jobs directly. An Owner generates a Print API key on the Team page; the key starts with lvk_ and is shown once. Keep it on the server side, never in a browser or a spreadsheet. Rotate key issues a replacement and invalidates the old one; Revoke switches the API off.
Queue a job
Replace YOUR-WORKSPACE-DOMAIN with the address you sign in at; the API lives on the same domain as your workspace.
curl -X POST https://YOUR-WORKSPACE-DOMAIN/api/print/jobs \
-H "X-Api-Key: lvk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"transactionId": "ORDER-10042",
"labelType": "Carton 4x2",
"copies": 3,
"printer": "Dock Zebra",
"site": "Whakatane",
"product": "Frozen Snapper Fillets 5kg",
"batchNo": "B-2026-0825",
"bestBefore": "@date(+30d)",
"barcode": "9421023610046"
}'
| Field | Meaning |
|---|---|
transactionId | Required. Your reference: order number, ASN, delivery. Sending the same id again updates the pending job instead of duplicating it; sending it again after it printed queues a replacement and marks the earlier job superseded. |
labelType | Optional (alias format): the exact name of a design in your library. Leave it out and the operator picks the design when releasing; their choice is remembered on the job. |
copies | Optional (aliases qty, quantity), 1 to 99. Left out, the operator is asked at release. |
printer | Optional: the name of one of your saved printers, pre-selected at release and usable by Print all. |
site | Optional: the exact name of one of your sites; the job appears only in that site's queue. An unknown name is rejected so routing mistakes surface immediately. Left out, the job is company-wide. |
release | Optional: true prints the job immediately through the named printer's print station and returns the result in the same response. Requires printer, a design and copies, and the Owner opt-in Allow API auto-release on the Team page. If the station is offline or anything needs a person, the job stays queued and the response says why. |
| anything else | Becomes a {tag}. A design containing {batchNo} gets that value. Names match case-insensitively; tags with no matching field print as written. Values may contain @date tags, expanded at print time, and a design can shift or reformat a date you send: {packed+14d}, {packed:dd/mm/yyyy}. |
| sequences | A design tag written {palletNo+} steps once per copy: send "palletNo": "PFP000001" with "copies": 10 and the printer receives PFP000001 through PFP000010. The plus lives in the design, not in your JSON. |
Values entered at the printer: capture
Some values only exist once the carton is on the bench: the net weight off the scale, a grade, a count. Leave them out of the job and list them under capture:
"capture": [
{ "name": "netWeight", "label": "Net weight", "type": "number", "unit": "kg", "min": 0.1, "max": 30 },
{ "name": "grade", "type": "choice", "options": ["A", "B"] }
]
When the operator opens the job on the Floor or in the queue, big inputs ask for each field and the label preview redraws as they type; Print stays off until the required ones are filled. The values print on the label through the matching {tags}, are stamped on the job with who entered them and when, and a reprint reuses them. Types are number (with unit, min, max; a comma decimal point is accepted), choice (with options) and text; "required": false makes a field optional. Any tag on the design that your data did not supply is offered as an optional field as well, so a forgotten value can be typed in rather than printing as {tag}. A job with an empty required capture field never prints unattended.
Reading data back
spooler never connects out to your systems; your system pulls. GET /api/print/jobs/ORDER-10042 returns the job's status, printedAt, printer, the data it printed with (your fields with the operator's entries merged over them), captured (the entered values, who and when), sequences (any @seq numbers used) and the history. To collect everything you have not seen, poll GET /api/print/jobs?status=Printed&sinceId=123: it lists jobs with an id above 123, oldest first, and the response carries nextSinceId to store for the next call. since=2026-09-22T00:00:00Z filters by time instead; take caps the page at up to 500.
Check and cancel
GET https://YOUR-WORKSPACE-DOMAIN/api/print/jobs/ORDER-10042returns the job's status (Pending, Printed, Failed, Cancelled, Superseded), the data and entered values it printed with, and its history.DELETE https://YOUR-WORKSPACE-DOMAIN/api/print/jobs/ORDER-10042cancels a job that has not printed.- Errors come back as JSON with an
errormessage and an appropriate HTTP status: 401 for a bad key, 400 for a malformed payload, 404 for an unknown transaction.
Printing immediately
By default nothing prints by itself: API jobs wait in the queue until a person releases them, individually or with Print all. For trusted, unattended lines an Owner can tick Allow API auto-release on the Team page. A call that then carries "release": true and names a printer is printed at once through that printer's print station, recorded in the job history as released by the Print API, and answered with the outcome:
{ "jobId": 812, "transactionId": "ASN-10042", "status": "Printed", "created": true,
"release": { "attempted": true, "printer": "Dock Zebra", "station": "Dock PC", "detail": null } }
The call waits up to about 90 seconds for the printer. A response with "status": "Pending" and a detail means the job was queued instead: no station online for that printer, a USB printer with no station, a missing design or copies, or the opt-in switched off. A Failed status carries the printer's error; the job stays visible in the queue for a person to retry.
Chapter 11Supplier keys: one system, many companies
Sometimes the system that creates labels belongs to one company and the printers belong to others: a retailer's ERP generating inbound carton labels that each supplier prints at their own site. Supplier Keys (Company menu) handle this without giving the source system access to anyone's workspace.
- Create a supplier key for the source system and give it a name such as "Our SAP ECC".
- Map supplier codes to companies. The source system knows suppliers by its own codes,
SUPPLIER_07say; each maps to a company on spooler. A job'ssupplierIdfield routes it into that company's queue. - Map label codes to designs. The system's label codes,
VECTOR_ASN_CARTONfor instance, map to designs in your library, pinned to a specific version, so later edits never silently change what suppliers print until you update the mapping.
Suppliers see only their own jobs and release them on their own printers. You see a dashboard of jobs across every supplier with their status. The payload is the same as the Print API plus the required supplierId; the label type must be one of the mapped codes.
Chapter 12Migrating from BarTender and other label software
BarTender's .btw files are a closed format, but every label program ends up sending printer code through a Windows driver, and that code is something spooler reads. The Print Bridge can pose as a printer: print each format to it once and it lands in the designer as an editable label.
Steps
- In the designer click Import and open the Capture from BarTender / other software tab. The Print Bridge on your PC (1.6 or newer) starts listening on port 9100, and the tab shows this PC's address.
- In Windows add a printer using the Seagull driver for your real printer model (a Zebra driver produces ZPL; an Intermec or Honeywell "DP" driver produces Fingerprint), on a Standard TCP/IP port to that address, port 9100, protocol RAW, with bidirectional support turned off. If BarTender runs on the same PC, the address is
127.0.0.1. - In BarTender, open the format and set each data source to a tag in braces,
{productname},{batch}, so the dynamic fields import as tags. Barcodes that validate their content (EAN, UPC) need a placeholder number instead; retag them after import. - Print one copy to the capture printer. It appears in the tab within a couple of seconds. Choose the printer's resolution, click Import, tidy up, and save to your library. Repeat for the next format.
What to expect
- Text printed with printer fonts imports as editable text. Text the driver rasterised, which is most TrueType fonts, arrives as an image. Where the driver offers it, switch to printer fonts before capturing.
- Barcodes import as barcodes: Code 128, Code 39, EAN and UPC, Interleaved 2 of 5, Codabar, QR, Data Matrix, PDF417 and Aztec. Rarer symbologies import as Code 128 with a note.
- Boxes, lines and logos come through. Circles, diagonal lines and stored-format machinery are skipped and listed in the import notes.
- If the driver did not state the label size, it is set from the content: check it against your media in Label settings.
Captured jobs are held by the bridge for a day and never forwarded to a real printer. Stopping capture, or closing the Import dialog, frees port 9100 again.
From a photo of the label
When there is no software to capture from and no code to paste, a picture will do. In the designer click Import and open From a photo. Choose a JPEG or PNG of the printed label, drag the four handles onto the label's corners so the photo can be flattened, type the label's real width and height in millimetres, and press Read label. Ten to thirty seconds later the design opens as an unsaved draft.
- Barcodes are decoded from the image itself, so the symbology and the data are exact.
- Text and layout are read by a vision model. Positions land within a millimetre or two; font sizes are estimates to nudge.
- Variable fields become tags. Dates, batch numbers, weights, prices and similar values arrive as
{bestBefore},{batchNo}and so on, with the photographed value kept as the preview text, so the design is ready for data straight away. The What was found list under the photo shows every element and which became a tag. - Logos and pictures are skipped; add them as images afterwards. Thin rules and boxes are picked up when they are clear.
Good input matters: shoot straight on in even light with the label filling the frame, or scan it. A curved or glary label reads badly. The photo is sent to the label-reading service (Anthropic) for the text step and is not kept; barcodes never leave the server. The feature is switched on per server by the operator.
Chapter 13Team and roles
The Team page (Owners) lists members with their email, display name, role, site and whether they may queue jobs, plus pending invitations and the Print API key.
Roles
| Role | Print queue | Printer setup | Label design | Team, sites & keys |
|---|---|---|---|---|
| Operator | ✓ | — | — | — |
| Manager | ✓ | ✓ | — | — |
| Admin | ✓ | ✓ | ✓ | — |
| Owner | ✓ | ✓ | ✓ | ✓ |
- Operators run the queue: review, release, reprint, cancel. They can open labels to look and print but not change them.
- Managers also maintain printers and can queue jobs by hand.
- Admins also design labels and manage the library and images.
- Owners also invite and remove people, set roles and sites, manage sites and the Print API key, and see the company audit trail.
Tick Queue jobs against an Operator to let them create jobs by hand without any other rights. Role changes take effect within a few minutes, or immediately at the next sign-in.
The audit trail, including sign-ins
Company → Audit lists what people did in your workspace, newest first: role and site changes, key rotations, sequence edits, data source changes, and every sign-in, failed sign-in, lock-out, sign-out and password change, each with the address and browser it came from. Search by action, detail or person, or tick Sign-ins only to review who has been getting in and from where. Owners see their own company; a failed attempt against an email that has no account is visible only to the service operator.
Floor-only sign-ins for shared devices
The tablet or phone at the printer usually belongs to a bench, not a person. Give it its own sign-in, then tick Floor only against that member. From then on that sign-in opens on the Floor view, the rest of the navigation is hidden, and any other page it is pointed at sends it straight back. Pair it with the Operator role and a Site so the device sees only its own printers and jobs, and it can do exactly one thing: release labels. The change takes effect on the device's next request, so an already-open browser is pinned too; you cannot tick it against yourself.
In the Floor view card, set how many minutes a Floor-only device may sit untouched before it is signed out (0 = never). Any tap, scroll or key press restarts the clock. When it runs out the device returns to the sign-in page with a note saying why, so the next shift signs in fresh rather than inheriting someone else's session.
Inviting and removing
Invite a teammate with an email address, a role and, if you use sites, a site. The invitation email carries a link that sets up their account. Pending invites can be revoked. Remove takes a person out of the workspace; their past actions stay in the audit trail.
Chapter 14Sites: one company, many locations
Companies with several locations define sites (Company menu → Sites, Owners only). Head office designs the labels once; each site runs its own queue and printers.
- People: assign each person to a site on the Team page. A site-pinned person sees only their site's queue, printers and data. People with no site, head office, see everything.
- Printers: pinned to a site on the Printers page. A site-pinned manager's printers always belong to their own site. Company-wide printers, with no site, are visible everywhere.
- Jobs: a job queued by a site user lands in that site's queue. API jobs route with the optional
sitefield. Anything unrouted is company-wide and visible to every site. - Data: saved spreadsheets follow the same rule: a site's data is theirs; company-wide data is for everyone.
- Licensing: printer counts are licensed per site when sites are used. The Sites page shows each site's cap.
- Deleting a site keeps its people, printers, jobs and data; they simply become company-wide again.
Chapter 15For partners: the reseller portal
Partners who offer spooler under their own brand get a Partner portal (Company menu) on their own domain.
- Customers: every company on your brand, with user and label counts, creation date and last activity. Add a customer creates a company; Invite owner emails its first Owner an invitation. Licence sets the company's printer caps, per site where sites are used.
- Your branding: the product name customers see, your logo (PNG, shown on dark backgrounds), accent colour, support email and legal name for footers. Sign-in pages, the app and every email your customers receive carry your brand.
- Customers who sign up on your domain belong to you automatically, and company names are unique within your brand.
- Your pricing page: what visitors to your domain see at
/pricing. Two levels, both priced per printer: Print only for a site that prints labels others designed, priced per printer per month, and Design for the whole company, priced per company with a number of printers included and a price for each extra one. Set your own currency, numbers, wording and button links; leave a price blank to show Talk to us. Nothing is public until you tick Published; the Preview the page link shows the draft to you alone.
Your customers' Print Bridges learn your domain automatically, so they install the standard bridge from the download links on your branded site.
Chapter 16For system administrators
System administrators operate the service across every company. Their extra pages sit under Admin in the menu.
- Companies: every workspace, with a Licence editor for printer caps at company and site level.
- Users: every account, with its company and role; create a user directly when an invitation is impractical.
- White-label partners: create and edit partners: internal name, customer-facing product name, legal name, accent colour, support email, logo, and the domains that resolve to the brand.
- Audit log: the cross-company trail of designs saved, prints, reprints, cancellations, data changes and team changes.
Working inside a customer's workspace
- My Labels gains a Viewing company selector: open, edit and save any company's labels and folders.
- Move to company: each label row offers a picker to move it to another company's root folder, with its full version history and its images. Use it when you design on a customer's behalf in your own workspace and hand the finished label over. It is refused if the target already has a label of that name in its root, or if a supplier-key mapping still points at the label.
- Queue a job lets you switch the design picker to a customer's library, so their label can be queued and printed from your queue for testing.
Chapter 17Troubleshooting
| Symptom | What to check |
|---|---|
| "Print bridge not detected" | The bridge is not running on this PC. Windows: look for the spooler icon in the taskbar; if it is grey, right-click → Restart, or reinstall. macOS: the menu bar printer icon should be filled; choose Restart bridge. Then click Re-check. Browser extensions that block local connections can also cause this. |
| "Connection timed out" on a network printer | The PC running the bridge cannot reach the printer's IP: wrong address, printer off, different network, or a firewall between them. Ping the address from that PC. Check the port is 9100 unless the printer is configured otherwise. |
| "USB printers need Print Bridge v1.5" | Upgrade the bridge on that PC from the queue's download panel. |
| USB printer "was not found on this PC" | The saved printer's Windows name does not match a printer installed on this PC. Edit the printer and pick from List this PC's printers. |
| Job says Printed but nothing came out | Most often a Honeywell printer stuck after an earlier failed job, or a Zebra paused. Look at the job's history for the printer's reply, power-cycle the printer, and reprint with a reason. For USB printers check the Windows print queue is not paused. |
| Label prints rotated or off the edge | Label Direction does not match how the roll is loaded, or the size does not match the stock. Fix in Label settings; use the Preview data mode to test. |
| Barcode will not scan | Module width too small for the scanner or the resolution: raise Ratio. Data not valid for the symbology, shown as a warning outline on the canvas. Quiet zones: leave white space either side, inside the safe area. |
| Text looks different on paper than on screen | Printer-resident fonts differ by make. Use anchors so alignment survives width differences, and proof on each printer family. |
| Image prints as a black blob | Photos and gradients do not survive conversion to black and white. Use a clean high-contrast logo, or trace it as vector shapes elsewhere and upload that. |
| API returns 401 | Wrong or revoked key, or the header name is not X-Api-Key. |
| API returns 400 "Unknown site" | The site value must match a site's name exactly. |
| "Someone else saved this label" | A colleague saved while you were editing. Overwrite to keep yours, or cancel and Save As to keep both; their version is in History regardless. |
| Capture tab shows nothing after printing from BarTender | Windows printer port must be RAW on 9100 with bidirectional support off, pointing at the address shown in the tab. A settings-only job from the driver is ignored; print the label itself. |
Chapter 18Frequently asked questions
Which printers are supported?
Honeywell and Intermec printers speaking Fingerprint, and Zebra printers speaking ZPL, connected by network or USB. Set the language on each saved printer; one design prints on either family.
Does my label data leave my network?
Designs and job data are stored in the service so your team shares one library and queue. The printing itself goes from the Print Bridge on your PC to your printer over your own network. The bridge never sends anything anywhere else.
Can I keep using my existing Fingerprint or ZPL labels?
Yes. Paste the code into Import and keep editing visually. Export back to code any time.
Why does a reprint ask for a reason?
Reprints are the classic source of duplicate-label problems, so each one records who, why, and on which printer. Replacement labels reuse the original data; a genuinely new carton or pallet should come from your source system as a new job.
What happens if a printer is offline when I release?
The job is marked Failed with the error, stays visible, and can be released again once the printer is back.
I sent a job via the API but nothing printed.
By design. API jobs wait in the Print Queue until a person releases them, one at a time or with Print all. Check the Pending tab.
How do I print a numbered run?
Mark the tag as a sequence in the design, {palletNo+}, supply the starting value as normal, and set copies to the run length. See Tags.
How do I print a best-before date?
Three ways, depending on where the date lives. Printed today plus a fixed life: @date(dd/mm/yyyy, +14d). Life varies by product: a spreadsheet column or API field containing @date(+10d) is expanded too. Counted from a packing date in your data: {packed+14d}. See Tags.
Can two companies share a label?
Export it as an .xld file and import it in the other workspace. Partners and administrators can also move labels between companies directly.
How many versions are kept?
The last 20 saves of each label. Restoring an old version saves it as a new one, so restoring never discards history.
Chapter 19Glossary
| Anchor point | The point of an element (1–9, keypad layout) that sits at its X, Y position. |
| Direct thermal / thermal transfer | Printing by heating the label stock directly, or by melting ink from a ribbon onto it. |
| Direction (DIR) | Rotation of the whole label (1–4) or of one element relative to the media feed. |
| Dots / dpi | A printer's smallest mark; 203 dpi is 8 dots per millimetre, 300 dpi is about 12. |
| Fingerprint | Honeywell and Intermec's printer language. |
| Label type | The name a source system uses for a design; the API's labelType field. |
| Module | The narrowest bar or space in a barcode; its width in dots is the Ratio setting. |
| Print Bridge | The helper on each printing PC that carries jobs to printers. |
| Release | Sending a queued job to a printer. |
| Sequence tag | A tag with a trailing plus, {name+}, whose number steps once per copy. |
| Site | A location within a company with its own queue, printers, people and data. |
| Supplier key | An API key that lets one system queue jobs into several companies' queues. |
| Tag | A placeholder in braces, {name}, filled in at print time; or an @date-style system tag. |
| Transaction id | Your reference for an API job; re-sending it updates or replaces the job. |
| Workspace | A company's private space: labels, printers, people, jobs and data. |
| .xld | spooler's portable label file. |
| ZPL | Zebra's printer language. |