核心功能
Printer Skill 是基于CUPS(Common UNIX Printing System)的打印工具,支持将PDF和常见图片格式(PNG/JPG/GIF/BMP/TIFF/WebP)输出到任意网络或本地打印机。其核心优势在于PPD动态感知:运行时自动读取打印机的PPD文件,获取真实的纸张尺寸、可打印边距、分辨率、双面/纸盒配置等硬件参数,避免手动设置错误。
显著优点
- 智能图像处理:图片自动按打印机原生DPI转换为PDF,居中置于可打印区域,防止裁切失真
- 原生CUPS深度集成:支持全部CUPS选项透传(
-o KEY=VALUE),包括纸盒选择(InputSlot)、打印质量(cupsPrintQuality)、单双面(sides)等 - 多格式输出:所有命令支持
--json模式,便于脚本集成和自动化工作流 - 跨平台兼容:依赖Python3和Pillow,可在Linux/macOS等支持CUPS的系统运行
潜在局限
- 环境依赖强:必须预装CUPS服务及
lp/lpstat/lpoptions命令行工具,Windows需额外配置 - 安全路径限制:仅允许打印workspace或
/tmp目录下的文件,符号链接需解析后验证 - 无打印预览:直接提交作业,无法交互确认排版
- PPD解析依赖:老旧打印机或驱动不全时可能无法识别全部功能
适合人群
- 远程服务器/无GUI环境的自动化打印需求
- 需要批量处理图片/PDF输出的开发运维人员
- 对打印参数有精细化控制要求的专业场景
风险提示
- 文件路径校验机制可能被符号链接绕过(需确认realpath解析严格性)
- 打印作业提交后不可撤回,敏感文档需确认打印机访问权限
- CUPS服务异常时可能导致作业堆积,需监控
lpstat状态