n8n-nodes-printer-scanner
v0.1.1
Published
This node gives you the ability to print via a CUPS server and scan via SANE.
Maintainers
Keywords
Readme
n8n-nodes-printer

This community node package for n8n provides two nodes for interacting with physical hardware from your workflows:
- Printer — Send files to a printer via a CUPS server
- Scanner — Scan documents to PDF using a SANE-compatible scanner
Installation
Step 1 — Install the package in n8n
n8n has a built-in way to install community packages:
- Open your n8n instance and go to Settings (bottom-left gear icon)
- Click Community Nodes
- Click Install a community node
- Enter the package name:
n8n-nodes-printer-scanner - Tick the checkbox to confirm you understand community nodes are not verified by n8n
- Click Install
The Printer and Scanner nodes will now appear in the node palette when you search for them.
Note: If your n8n instance doesn't show the Community Nodes option, it may have been disabled by an administrator, or you may be on n8n Cloud's free tier. Self-hosted instances have it enabled by default.
Step 2 — Install system dependencies
These nodes call command-line tools that must be available in the environment where n8n is running. Which tools you need depends on which nodes you want to use:
| Node | Requires | Package to install |
|---|---|---|
| Printer | lp command | cups-client |
| Scanner | scanimage command | sane-utils |
If you're running n8n with Docker (most common)
You'll need a custom Dockerfile that installs the required packages. Here's one that covers both nodes:
FROM n8nio/n8n
USER root
RUN apk add --no-cache cups-client sane-utils
USER nodeAlpine vs Debian: The official n8n Docker image is Alpine-based, so use
apk. If you're using a custom Debian/Ubuntu-based image, useapt-get install -y cups-client sane-utilsinstead.
If you only use the Printer node and not the Scanner (or vice versa), you can install just the package you need.
If you're running n8n directly on Linux
Install the packages with your system's package manager. On Debian/Ubuntu:
sudo apt-get install cups-client sane-utilsOn Alpine:
apk add cups-client sane-utilsAfter installing, restart n8n.
Printer Node
What you need
A CUPS print server running somewhere on your network and reachable from the machine running n8n. CUPS runs on Linux and macOS and manages one or more printers.
Usage
- CUPS Server IP — The IP address of your CUPS server (e.g.,
192.168.1.100) - Select Printer — Click the field to auto-discover printers on your server, or type the queue name manually
- Binary Property — The name of the binary field in the incoming data that holds the file to print (usually
data) - Options (all optional):
- Quantity — Number of copies
- Page Range — Which pages to print, e.g.
1-5, 8 - Advanced CUPS Options — A JSON object of extra CUPS flags for full control (see below)
Advanced CUPS Options example
To print A4, landscape, double-sided:
{
"media": "A4",
"orientation-requested": "4",
"sides": "two-sided-long-edge"
}Troubleshooting: 'The printer or class does not exist'
This usually means the CUPS client can't resolve the printer's hostname. Fix it by telling the client the server's IP address directly. Add this to your Dockerfile:
RUN echo "ServerName 192.168.1.100" >> /etc/cups/client.confReplace 192.168.1.100 with your actual CUPS server IP.
Scanner Node
What you need
A scanner supported by SANE (Scanner Access Now Easy) and accessible from the machine running n8n — either via USB or over the network. Many Canon, Epson, HP, and Brother multifunction printers work out of the box with SANE.
To check if your scanner is supported, look it up in the SANE device list.
Usage
- Scanner Device — Click the field to auto-discover scanners, or type the device name manually (e.g.,
pixma:MX920_192.168.1.5orbjnp://192.168.1.5) - Output Binary Property — The name to give the scanned PDF in the output data (default:
data). Downstream nodes can read the PDF from this field. - Options (all optional):
- Resolution — Scan quality in DPI. 150 is fine for reading text, 300 is good general-purpose quality, 600 is high quality (and a much larger file). Default: 300.
- Scan Mode —
Color,Gray(greyscale), orLineart(black and white only). Default: Color. - Source —
Flatbed(place the page on the glass) orADF(Automatic Document Feeder, for scanning a stack of pages). Default: Flatbed.
The node outputs the scanned document as a PDF binary. You can then pass it to other nodes — for example, save it to disk, upload it to cloud storage, or send it by email.
Finding your scanner's device name
If auto-discovery doesn't work (e.g., n8n is running in Docker and can't see the scanner directly), you can find the device name by running this on the host machine where the scanner is connected:
scanimage -LThis will print something like:
device `pixma:MX920_192.168.1.5' is a CANON Canon PIXMA MX920 multi-function peripheralThe part between the backtick and the single quote — pixma:MX920_192.168.1.5 — is what you paste into the Scanner Device field using the manual Name mode.
Scanning over the network from Docker
If your scanner is attached to a different machine on your network (e.g., a Raspberry Pi running saned), you can point SANE at it by setting the SANE_NET_HOSTS environment variable when starting your n8n container:
docker run -e SANE_NET_HOSTS=192.168.1.50 ... n8nio/n8nThen use net:192.168.1.50:pixma:MX920_... as the device name, or let auto-discovery find it.
