The Printing Platform is the shared infrastructure behind every organizational print in Karitm: thermal receipts, kitchen tickets, product barcode labels, and A4 invoices are all managed from here. It holds three things together: the printers the organization owns, the rule of "which document, with which template, prints on which printer," and the queue of print jobs that have been sent.
Printing receipts on the POS terminal itself is not covered here; see POS Terminal for that. What follows is for the rest of the organization — the office, the warehouse, and the storefront.
What is the Printing Platform?
Actual printing — sending bytes to the device — is not the browser's job; it is the PC Bridge agent's job, a program installed on the same PC the printer is connected to. The agent stays live-connected to Karitm, announces which printers it holds, and executes the print jobs that reach those printers. The "Live Connection" / "No Live Connection" chip above "Printers" and "Print Jobs" reflects this same live link.
If no agent holds a given printer, its print job sits at "Ready" and never moves forward. This is the most common cause of "nothing prints" — see Troubleshooting.
The one exception is "Print Barcode" from the goods list, which prints entirely from the browser and needs neither the platform nor an agent — covered under Printing Barcode Labels.
Printers
"Printers" is the organization's register of every print device. Columns: name (with its code beneath) · connection · output type (with paper width) · device status · active · actions.
The "New Printer" form has four sections:
| Section | Fields |
|---|---|
| Identity | Name, code (optional, unique per center), output type, paper width |
| Connection | Network (IP address + port, default 9100) or Windows printer (the exact name shown in "Printers & Scanners" on the agent's PC) |
| Thermal output | ESC/POS output type only: print width in dots, offset from the left, resolution (DPI), cut (none/partial/full), feed lines before cut, image conversion (threshold/dithering), cash drawer, beep after printing, hex init sequence |
| Behaviour | Pending-job expiry in minutes (empty = kept until delivered), notify on failure, active/inactive |
Output type has two values: ESC/POS Raster for a thermal receipt/label printer (58 or 80 mm roll), and PDF Direct for a sheet-fed printer that understands PDF itself (A5/A4/Letter). Choosing PDF Direct hides the "Thermal output" section and warns that a network printer must genuinely understand PDF, or pages come out blank or full of garbled characters; a Windows printer needs a PDF-capable driver installed on the agent's PC.
Device status is reported by the agent: Reachable (green) · Unreachable (red) · Paper out · Cover open (amber) · Unmeasured (grey, meaning no agent has checked this printer yet). The chip also shows the last time it was reachable.
Test print
The test-print button on each row registers a real print job — not just a preview — on the matching system template (sys-printer-test-roll80 or roll58 for thermal, the sample A4 invoice for PDF Direct). If that template hasn't been created yet, it tells you to click "Create System Templates" in "Report Templates" first. The job status updates live right there; if it stays at "Ready" and never moves, no agent holds that printer, or the agent isn't connected.
Deleting a printer leaves any print routes that reference it without a destination.
Print Routes
A "print route" answers: "which document, on which event, at which station, should print on which printer(s)?" Each route has a document type (data contract), a station (or empty for "all stations in the center"), a published template, one or more triggers, and one to ten destination printers; each destination can have its own copy count (1–10).
There are three possible triggers, but which ones are valid for a document type is decided by the document type itself — once you pick "Document Type," the form only enables the allowed triggers:
| Trigger | Meaning |
|---|---|
| Manual | Print with one click from the document's own page |
| Preparation ticket created | E.g. a kitchen ticket, the moment the order is placed |
| Invoice settled | The moment a sales invoice is settled |
Only one route can exist for a given "station + document type" combination. If no dedicated route exists for a specific station but an "all stations" route exists for the same document type, that default route is used. If neither a dedicated nor a default route exists, that event simply doesn't auto-print anything — only direct manual printing (like a test print or product label print) still works, since those pick a printer and template explicitly.
The destination-printer picker also enforces a compatibility rule: a receipt template can't sit on a PDF printer and vice versa, and the template's page size must match the printer's paper width; incompatible options appear disabled in the list with the reason shown.
"Rebuild Station Snapshots" is a repair tool, not something you'd need in day-to-day work — it's only useful after an import or a direct data change; saving a route normally keeps these snapshots up to date on its own.
Deleting a route doesn't erase the history of jobs it already produced; it just stops producing new ones.
Report Templates
"Report Templates" is the organization's store of print templates: receipts, kitchen tickets, product labels, A4 invoices, and similar documents. The visual design of the document itself happens in a separate tool called Report Designer; this page is for designer-less management — metadata, versions, validation, assets, and fonts.
Every template has a data contract (the document type it fills, e.g. receipt or product label) and a module (Printing, Export, Sales, Accounting). The filter above the list covers both the module and a "published only" toggle.
Versions
A template can have one published version at a time (what print routes and print jobs see) and at most one draft:
- Publish draft — the current draft becomes the published version immediately.
- Discard draft — the draft is removed; the published version stays untouched.
- Revert to an archived version — that version is published again.
- Validate — checks the document without actually printing and lists any issues.
- Sample PDF output — renders with empty data, just to see the layout.
A system template (purple "System" chip) is read-only for everyone except the company owner or an admin; the way to change it is "Editable Copy," which builds a new template — with a code and name of your choosing — from the published version.
Assets and fonts
Each template can carry several images (a logo and the like, PNG or JPEG up to 2 MB) that the document references at print time. Fonts have their own tier — a TTF file is installed on the shared report server, and uploading one is open only to the company owner.
Default flag and how a template is chosen at print time
The "Default for this contract" toggle marks one template in the list with a gold star. Which template actually gets used at print time, though, is decided elsewhere, not by that star:
- On a print route, the template is chosen when the route is defined; every time that route fires afterward, that same template is used.
- On other manual prints (like a product label print), a template is auto-suggested based on the paper width of the chosen printer (the template's code ends in
roll80/roll58), and the user can change it.
In both cases, only published templates can be selected; a template with only a draft doesn't appear in the list.
Printing Barcode Labels
From Goods there are two separate ways to print barcodes/labels — one entirely from the browser, the other through the printing platform:
"Print Barcode" (from the browser)
Selecting several goods in the table and clicking "Print Barcode" opens a dialog that needs no printer or template at all:
- Pick a label size from six ready-made options: 50×30, 40×25, 58×40, 80×50, 100×50, or 100×70 mm.
- Copies is set once for all rows and can be overridden per good right in the table.
- Two toggles, "Product Name" and "Sale Price," decide whether those two lines print on the label.
- If a good has no registered barcode, enabling "Print the product code for goods without a barcode" prints the code instead; otherwise that row is skipped, marked with a "No Barcode" chip.
- Barcode type is not chosen by you — it's auto-detected from the value: a 13-digit number with a valid check digit → EAN-13, 8 digits → EAN-8, 12 digits → UPC-A, anything else → Code 128.
- A preview of the first printable label appears below the table, along with the total label count and the count of goods without a valid barcode.
Clicking "Print Label" opens a new browser window and automatically triggers printing; each label is its own page sized to the label itself, so a label printer ejects them one at a time. If the browser blocks this window, it shows a message and you'll need to disable the pop-up blocker for the site.
"Print Label" (via the printing platform)
The same goods list also has a separate, teal "Print Label" button that, instead of printing from the browser, creates a real print job on the platform:
- You pick an active thermal printer (the list shows only ESC/POS printers).
- The label template is auto-suggested based on that printer's paper width; if no published template exists for this contract, it tells you to build the system templates from "Report Templates" first.
- Copies range from 1 to 10.
- Up to 100 goods per batch; each good gets its own print job, tracked in "Print Jobs."
These two paths differ fundamentally: "Print Barcode" is instant and needs no registered printer, suited to an ordinary label printer connected to the same PC; "Print Label" goes through the printing platform's queue and agent, and suits network printers or printers shared across several PCs.
Print Jobs
"Print Jobs" shows everything sent to print — from test prints and label prints to jobs that automatic print routes created — with a status that updates live:
| Status | Meaning |
|---|---|
| Pending layout | Just registered, not yet laid out |
| Awaiting POS | Layout is meant to happen on the POS terminal itself |
| Laid out | Document is ready, waiting its turn |
| Ready | Ready for the printer — if it stays here, no agent holds that printer |
| Dispatched | Sent to the agent |
| Printed | Done; can be reprinted |
| Failed / Expired / Cancelled | Terminal; failed and expired can also be reprinted |
Filters: status, printer, trigger, source number, and time range (24h, 7d, 30d, or all). The "Connected Agents" chip lists the live PC Bridge agents along with which printers each one holds — the same thing that explains a stuck "Ready" status.
Each job's detail includes the printer, template, and trigger (and, if it came from a route, that route's name), the source document, copy and attempt counts, layout location (server or client), the created/dispatched/printed timestamps, and, on error, the server's error code and message plus a short hint. Jobs with a saved preview also show an image of the printed page.
Two actions are available on a job: Cancel, only for a job that hasn't finished, and Reprint, only for a job that has (printed, failed, expired, or cancelled); if that printer's settings included a cash drawer, "Reprint" also offers an "Open cash drawer too" option.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Job stays at "Ready" and never moves | No connected PC Bridge agent holds this printer | Check the "Connected Agents" chip in "Print Jobs"; make sure the agent is running on the right PC |
| "Agent could not reach printer" error | Network issue, wrong IP address or port | Check the address/port in the printer form and the agent PC's network connection |
| "Windows print queue with this name not found" error | "Windows Printer Name" doesn't match the real name in "Printers & Scanners" on the agent's PC | Copy the exact name from Windows and replace it in the printer form |
| Paper out / cover open | The printer itself reported this device status | Load paper or close the cover, then click "Reprint" |
| "Printer connection settings incomplete" | The printer's IP/port or Windows name is empty or wrong | Fill in the printer form completely |
| Print went to the wrong printer | That station/document type's print route targets a different printer, or the job was created manually with a different printer instead of going through a route | Check "Print Routes" for that station and document type |
| "Source data not found" | The source record (invoice, ticket, product) was deleted or changed | Usually not reprintable; print again from the source page |
| The problem is the template's font or logo | The font isn't on the report server, or the image can't be read — not a printer fault | Check "Validate" and the "Fonts" section in "Report Templates" |
| "Print Barcode" didn't open anything | The browser treated the print window as a pop-up and blocked it | Turn off the pop-up blocker for the site; this only happens for browser-based barcode printing, not the rest of the platform |
| Layout service unavailable | The server's layout subsystem is temporarily down | The job retries automatically; no manual action needed |
Sample Workflows
Setting up automatic receipt printing for a sales station
Printers ← add a thermal printer for that station ← run a test print to confirm the connection ← Print Routes ← new route with that station, document type Invoice, and trigger "Invoice settled" ← add that printer as the destination.
Printing barcode labels for a batch of goods
Goods ← select the desired goods with the checkbox ← "Print Barcode" for instant printing from a printer connected to this PC, or "Print Label" to send it to a network/shared printer via the printing platform ← track it in "Print Jobs" (for the second option only).
Following up on a failed print
Print Jobs ← filter by status "Failed" ← open the job's details to see the error code, message, and short hint ← fix the underlying issue (paper, connection, font) ← "Reprint" from the same dialog.
FAQ
Why isn't anything printing?
First check the print job's status in "Print Jobs." If it's stuck at "Ready," check the "Connected Agents" chip — it means the PC Bridge agent on that printer's PC isn't running, or doesn't recognize that printer.
What's the difference between "Print Barcode" and "Print Label" on the goods list?
"Print Barcode" is entirely browser-based, needing no registered printer or agent. "Print Label" creates a job on the printing platform and needs a registered thermal printer plus a published template.
Why can't I edit a system template?
System templates are read-only for everyone except the company owner or an admin. Use "Editable Copy" to build a personal version.
What's the difference between "server" and "client" layout on a print route?
Server means the document is prepared on the Karitm server and sent to the printer. Client means the POS terminal itself lays out the document; this is only allowed with the manual trigger or "preparation ticket created," and it's a POS Terminal topic.
I defined my printer but the test print doesn't respond.
First make sure the PC Bridge agent is running on that same PC and shows up in the "Connected Agents" list. If the test template hasn't been created yet, click "Create System Templates" in "Report Templates."
Is the POS terminal's receipt printing also configured here?
Not entirely; printing receipts on the terminal itself is a POS Terminal topic, though its printer and template are also built here, under "Printers" and "Report Templates."