PrintAssist

Other

Print any file (PDF, Word, Excel, PowerPoint, photos) with a plain-language instruction. Handles 2-up layout, duplex, page ranges, rotation, watermarks, and photo editing via Adobe CC — without touching a single print dialog.

Install

openclaw skills install @nilsgollub/printassist

Print Assist

Print any file by describing what you want. No more fighting with print dialogs.

What you can say

Print this PDF double-sided, A4, black and white.
Drucke das zweimal nebeneinander auf ein Querformat-Blatt.
Print pages 2-5 of this document, 2 copies.
Rotate all pages 90 degrees and print.
Merge these three PDFs and print the result.
Remove the background from this photo and print it on A4.
Show me a preview before printing.

Tool Routing

TaskScriptKey function
Print PDFscripts/print.pyprint_file(path, printer, params)
Print Office file (Word/Excel/PPT)scripts/print.pyauto-converts via LibreOffice, then prints
Print image/photoscripts/print.pyPillow + win32print
2-up (two pages side by side)scripts/pdf_tools.pyimpose_2up(input, output)
Merge PDFsscripts/pdf_tools.pymerge_pdfs(inputs, output)
Split PDFscripts/pdf_tools.pysplit_pdf(input, output_dir, pages_per_file)
Rotate pagesscripts/pdf_tools.pyrotate_pages(input, output, degrees, pages)
Add watermarkscripts/pdf_tools.pyadd_watermark(input, watermark, output)
Encrypt / decrypt PDFscripts/pdf_tools.pyencrypt_pdf() / decrypt_pdf()
Extract pagesscripts/pdf_tools.pyextract_pages(input, output, page_numbers)
Compress PDFscripts/pdf_tools.pycompress_pdf(input, output)
Edit Word contentscripts/office_tools.pyreplace_text_docx(), format_paragraph_docx()
Edit Excel cellsscripts/office_tools.pywrite_cell_xlsx(), replace_value_xlsx()
Edit PowerPoint slidesscripts/office_tools.pyreplace_text_pptx(), add_slide_pptx()
Preview before printingscripts/pdf_tools.pypreview_pdf() → copy to preview.png
Photo editing (exposure, crop, bg remove)Adobe CC MCP connectorsee Adobe routing table in CLAUDE.md

Print parameters

Pass as a dict to print_file():

KeyValuesExample
paperA4, A3, Letter, Legal"A4"
orientationportrait, landscape"landscape"
duplexduplex, duplexshort, simplex"duplex"
colorcolor, monochrome"monochrome"
scalefit, shrink, noscale"fit"
pagesSumatraPDF range string"1-3,5"
copiesinteger2

Setup

First-time (per device)

# Windows — run once per machine
powershell -ExecutionPolicy Bypass -File setup.ps1

This installs SumatraPDF and LibreOffice via winget, runs pip, and guides you through entering your printer name.

Printer config

Edit config/printers.yaml:

default:
  printer_name: "Your Printer Name"   # get via: wmic printer get name
hosts:
  YOUR-HOSTNAME:
    printer_name: "Your Printer Name"

Preview workflow

Always offer a preview for layout-heavy requests (2-up, booklet, rotated):

from scripts.pdf_tools import preview_pdf
import shutil

previews = preview_pdf("output.pdf", dpi=150)
shutil.copy(previews[0], "preview.png")
# Tell user: "Preview saved as preview.png — click it in the file explorer."

What this skill cannot do

  • Edit text inside a PDF → direct user to Acrobat
  • Upscale images beyond native resolution
  • Replace backgrounds generatively (only remove them)
  • Wake the PC remotely over WiFi (WoL requires Ethernet)