Design & media

Printer

Try it

Print images and PDFs to any CUPS printer. PPD-aware: reads paper sizes, margins, resolution, and duplex at runtime. Use when the user wants to print files (...

What it does

Print images and PDF files to any CUPS printer. All settings (paper size, margins, resolution, duplex) are read from the printer's PPD file at runtime.

The skill document

Printer

Print images and PDF files to any CUPS printer. All settings (paper size, margins, resolution, duplex) are read from the printer's PPD file at runtime.

Entry point: {baseDir}/scripts/print.py

Setup

See SETUP.md for prerequisites and platform notes.

Commands

List Printers

python3 {baseDir}/scripts/print.py list
python3 {baseDir}/scripts/print.py list --json

Shows available printers with status and which is the system default.

python3 {baseDir}/scripts/print.py print /path/to/file.pdf
python3 {baseDir}/scripts/print.py print /path/to/image.png
python3 {baseDir}/scripts/print.py print /path/to/file.pdf --printer "Custom_Printer"
python3 {baseDir}/scripts/print.py print /path/to/file.pdf -o InputSlot=tray-2
python3 {baseDir}/scripts/print.py print /path/to/file.pdf -o cupsPrintQuality=High -o sides=one-sided
python3 {baseDir}/scripts/print.py print /path/to/file.pdf --json
  • PDFs: Sent directly to the printer with correct media/duplex settings
  • Images (PNG, JPG, GIF, BMP, TIFF, WebP): Converted to PDF at the printer's native DPI, centered within the printable area, then printed
  • -o KEY=VALUE: Pass any CUPS option (repeatable). Use options to discover available settings (tray, quality, media type, duplex, color mode).
  • Symlinks are followed but the resolved path must be inside the workspace or /tmp

Printer Info

python3 {baseDir}/scripts/print.py info
python3 {baseDir}/scripts/print.py info --printer "Custom_Printer"
python3 {baseDir}/scripts/print.py info --json

Shows manufacturer, model, resolution, color support, default paper, duplex mode, input trays, and all paper sizes with margins.

Printer Options

python3 {baseDir}/scripts/print.py options
python3 {baseDir}/scripts/print.py options --printer "Custom_Printer"
python3 {baseDir}/scripts/print.py options --json

Shows all CUPS options with current values and available choices.

Notes

  • Uses the system default printer unless --printer is specified
  • All commands support --json for machine-readable output
  • Image conversion respects the printer's imageable area (margins) from the PPD
  • Only printable file types accepted: PDF, PNG, JPG, GIF, BMP, TIFF, WebP

Tips

Tray / Media Selection

Some PPDs have empty InputSlot command strings, so -o InputSlot=tray-2 alone may not work. Use the combined media keyword instead:

# Print to a specific tray with media type
python3 {baseDir}/scripts/print.py print envelope.pdf -o media=A6,tray-2,envelope

# Format: -o media=SIZE,TRAY,TYPE
# SIZE: A4, A5, A6, EnvDL, EnvC5, Letter, etc.
# TRAY: tray-1, tray-2, auto
# TYPE: stationery, envelope, cardstock, labels, etc.

This passes tray selection via IPP directly, bypassing the PPD.

Related skills

Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.

by nssa.io1.0k installs47 stars

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván855 installs69 stars

Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.

by fly0pants4.3k installs296 stars

Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.

by Iván559 installs18 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai22 installs8 stars

More from odrobnik

Browse all skills

Automate George banking (Erste/Sparkasse AT): balances, transactions, and SEPA file upload in JSON.

by odrobnik132 installs1 stars

Text-to-speech, sound effects, music generation, voice management, and quota checks via the ElevenLabs API. Use when generating audio with ElevenLabs or mana...

by Oliver Drobnik211 installs2 stars

Manage multiple OpenAI Codex accounts by capturing current login tokens, switching between saved accounts, and auto-selecting the best one based on quota bud...

by odrobnik141 installs3 stars

Use when integrating with Tesla's official Fleet API to read vehicle/energy device data or issue remote commands (e.g. start HVAC preconditioning, wake vehic...

by odrobnik151 installs1 stars

Fetches health data from the Withings API for multiple family members including weight, body composition (fat, muscle, bone, water), activity, and sleep. Use...

by odrobnik96 installs1 stars

Control and monitor Snapmaker 2.0 3D printers via their HTTP API. Status, job management, progress watching, and event monitoring.

by odrobnik82 installs1 stars