FAQ
Cannot connect, options ignored, preview versus paper, more than one file per job — the questions that come up most.
Last updated
The page says it cannot reach PrintLink
- Check PrintLink is running: the tray icon should say the service is running;
- If it says paused, start the service;
- Check the port in your page matches the console setting;
- In code,
PrintLink.detect()can probe this and guide the user.
The port is already in use
Console → Settings → change the service port → check it is free → save and restart the service. The tray and the UI both report conflicts clearly.
Why does the first print ask for authorisation?
The first time any web page uses printing, the user must confirm on that computer. That is the security design: only the user can let a page put paper out. Once accepted, the token is stored in the browser and the user is not asked again. Authorised sites can be reviewed and revoked under Security & sites.
An option did not take effect
PrintLink never drops options silently: an unsupported value is downgraded
compatibly and the reason appears in the result and the job details. Use
validate() to get the "requested versus effective" comparison before
printing — see print options.
Will the print differ from the preview?
No. The preview window shows exactly what the printer receives (same file, same hash); confirming does not re-render.
What can it print?
PDFs, images (PNG / JPEG), templates built in code or in the designer, web pages, and converted Hiprint templates. See content sources.
Can one job print several files?
Yes, and that is how it should be done. Put them in one job in page order and the user sees one preview with one entry in the print queue:
await client
.compose({ queueId })
.paper('A4')
.addPdf(coverBytes)
.addPdf(reportBytes).pageRange('2-4')
.preview();Do not loop over print() — that becomes N jobs. See
composite jobs.
The pages have different sizes
One job, one sheet. paper is the single size and every page lands on it.
Without it, PrintLink derives one: identical pages use their size, differing pages
take the largest with MIXED_PAGE_SIZES_UNIFIED, and images only fall back to the
printer default with PAPER_DEFAULTED. The preview's status bar shows the size
actually used.
Why can I not set paper per image?
Because with mixed content "each image on its own sheet" and "one sheet for the
whole job" conflict, and only the job's paper wins. To change paper, change the
job's paper; to move an image around on it, use
.imageLayout().
Photos come out washed out and grainy
Whether an inkjet enters photo mode is decided by the media type, not the
quality level. Put a photo paper keyword from
capabilities.mediaTypes.supported into options.mediaType — see
print options.
Is my document uploaded anywhere?
No. PrintLink listens on the local machine only, so documents move only between your page and that computer, with no cloud relay. The log never records document content or tokens either.
If an administrator has separately enabled LAN or remote access, that network hop is theirs to protect — documents travel over the network you chose, never through any PrintLink-operated server.
Which systems are supported?
Windows 10+, macOS (Apple silicon) and mainstream Linux distributions (CUPS). See install.
Nothing prints — where do I start?
Work through troubleshooting in order, and export a log bundle when you need someone else to look.