Printers: master data for your print targets
A print task needs to know where it should come out. That destination is a queue name on the print server: exact, unforgiving and easy to mistype, and a typo is only noticed when nothing comes out of the printer. Printers turn that string into master data: a short list of the machines your company actually prints on, each with a readable name, a location and, if you use the WebSocket print service, its broadcast ID.
The print service itself sees none of that. VeloxFactory hands it the queue name of the printer and nothing else. The master data only decides which queue name is sent, and it lets everyone else work with names a human recognises.
printer.index.pngPrinter overview under Configuration with filter bar, type badges and the Active column.
Where to find it
The printer master data lives in the main menu under Configuration → Printers. The overview is a regular VeloxFactory lookup: search over display name, queue name, location and description, filters for type, active state, creator, updater and the creation date, and sortable columns. Like every lookup, the filter settings and the current page are kept in your session, so you come back to the list exactly as you left it.
New opens the create form, the pencil on a row opens an existing record. Deleting is done from the edit page.
The fields of a printer
| Field | Required | Description |
|---|---|---|
| Display Name | yes | The name people use, for example Warehouse Label 01. Three to 50 characters and unique across all printers. |
| Printer Name | yes | The queue name on the print server, for example WH-LABEL-01. This is the value the print service receives. Up to 50 characters and unique as well. |
| Printer Type | yes | One of label-printer, a4-printer, mfc-printer or digital-printer. Purely descriptive, it drives the icon and the filter, not the rendering. |
| Location | no | Where the machine stands, for example Hall 2, Shipping. Shown in the picker so a station is easy to identify. |
| Broadcast ID | no | The WebSocket channel of the print service instance that serves this printer. Set it once here and no one has to remember it again. |
| Description | no | Free note, for example the label size or the media currently loaded. |
| Active | - | On by default. Inactive printers stay in the master data and keep working in existing configurations, but they are not offered in the pickers. |
printer.edit.pngPrinter edit form with display name, queue name, type, location, broadcast ID, description and the Active toggle.
Name resolution
This is the part that makes the master data useful everywhere, including in scripts that know nothing about it. Whenever VeloxFactory receives a printer name, from the frontend, from the API or from an AI assistant, it resolves that name before the print task is stored:
- The name is compared to the queue name of every printer record, ignoring upper and lower case.
- If nothing matches, it is compared to the display name.
- If a record matches, its queue name is stored on the print task, and its broadcast ID is filled in unless the caller sent one explicitly.
- If nothing matches, the name is stored exactly as supplied.
| You send | Stored printer name | Stored broadcast ID |
|---|---|---|
WH-LABEL-01 |
WH-LABEL-01 |
from the record, if it has one |
Warehouse Label 01 |
WH-LABEL-01 |
from the record, if it has one |
warehouse label 01 |
WH-LABEL-01 |
from the record, if it has one |
SOME-OTHER-QUEUE |
SOME-OTHER-QUEUE |
only what you sent |
Resolution runs on every path that accepts a printer name: rendering a report configuration with Create Print Task, creating or updating a print task directly, printing a stored history record again, and every Scan2Print scan. A broadcast ID you send yourself always wins over the one stored on the record.
The printer picker
Wherever a printer is chosen, VeloxFactory shows the same control: a searchable dropdown of all active printers above a plain text field. The dropdown entries read Display Name (queue name) - location, and picking one writes the queue name into the text field and fills a neighbouring Broadcast ID field if the printer has one. The text field stays editable, so a printer that is not in the master data can still be addressed by typing its name.
The picker appears in four places:
- the Output Settings of the Generate PDF page
- the Configuration dialog of Scan2Print
- the edit dialog of a Report Print Task
- the print dialog of a Report History Record
If no printers are configured at all, the picker silently falls back to a plain text field with the note No printers configured yet. The master data is optional: an instance without a single printer record addresses its printers by typing the queue name.
Print tasks and the printer link
Every print task keeps its printer name as text, that text is what the print service consumes. In addition, a print task whose name resolved to a master data record stores a reference to that record. This link is used for one thing only: the print queue can be filtered by printer, including the entry Not linked to a printer for everything that was addressed by free text.
Deleting a printer record therefore never touches history. The print tasks keep their stored printer name, they only lose the link, and the filter moves them to Not linked to a printer.
The API
Printers are a regular API resource under /api/v1/printer, with the same envelope, the same audit segment and the same error format as every other resource.
| Endpoint | Description |
|---|---|
GET /printer |
List printers, optionally narrowed with limit, isActive and printerType. |
GET /printer/{id} |
A single printer, with withAudit=true including its audit segment. |
POST /printer |
Create a printer. displayName, printerName and printerType are required, both names must be unique. |
PATCH /printer/{id} |
Partial update: fields you do not send keep their stored value. |
DELETE /printer/{id} |
Delete a printer. Existing print tasks keep their stored printer name. |
A printer resource is returned as:
{
"model": "Printer",
"id": 1,
"displayName": "Warehouse Label 01",
"location": "Hall 2, Shipping",
"printerName": "WH-LABEL-01",
"printerType": "label-printer",
"printerTypeLabel": "Label Printer",
"broadcastId": "Standard",
"isActive": true,
"description": "4x6\" thermal labels"
}
AI assistants
The VeloxFactory MCP server exposes the same five operations as tools: list_printers, get_printer, create_printer, update_printer and delete_printer. Because name resolution happens inside VeloxFactory, an assistant can simply pass the name a person said. Print this on the warehouse label printer is enough, no lookup up front.
Permissions
Printers use the standard permission scheme. In the user editor they have their own Printers section.
| Permission | Grants |
|---|---|
printer:read |
See the menu entry, the overview and a printer's detail page. |
printer:create |
Create printers. |
printer:update |
Change printers, including the active state. |
printer:delete |
Delete printers. |
printer:full |
All of the above, like global:admin. |
The picker itself needs no printer permission. A user who may only scan labels still sees the configured printers in the Scan2Print dialog, they just cannot open or change the master data.
No comments to display
No comments to display