FAQ

Cannot connect, options ignored, preview versus paper, more than one file per job — the questions that come up most.

Last updated

  1. Check PrintLink is running: the tray icon should say the service is running;
  2. If it says paused, start the service;
  3. Check the port in your page matches the console setting;
  4. 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.

On this page