Agent Skills
返回列表
Windows 图片打印

Windows 图片打印

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_6da1df82/windows-print-image。

技能介绍

要解决的问题

在 Windows 上把一张图片送到打印机,看起来是件小事,但落到自动化脚本里很容易翻车。最常见的坑是路径里带中文:调用链经过 bash 或 git-bash 再进 cmd /c mspaint /pt 时,命令行参数会在多层编码转换中被破坏,画图收到的是乱码路径,打印任务发不出去。另一个坑是走 PowerShell 的 Start-Process -Verb Print,它会弹出确认对话框等着人工点确定,自动化流程当场卡死。

技能如何工作

思路很直接:绕开 bash 这条编码污染链,改用 Python 的 subprocess 直接拉起 mspaint,并且强制使用原始字符串传路径。

核心步骤:

  1. 确认文件存在 —— 先校验待打印图片的路径有效,避免把无效参数交给画图。
  2. 列出可用打印机(可选) —— 需要时枚举系统打印机,并可检查当前默认打印机。
  3. 执行打印 —— 以 Python 原始字符串 r'...' 传路径,调用 mspaint /pt。

关键在于 r'...':原始字符串原样保留字节序列,中文路径不再经过 bash 转码,mspaint /pt 拿到的就是文件系统里的真实路径。另外 mspaint /pt 只吃两个参数,/pt 加文件路径就够了,不需要额外指定驱动或端口。

适用边界与注意点

  • 不要在 bash 里执行 cmd /c mspaint /p 或 cmd /c mspaint /pt,中文路径会被破坏。
  • 不要用 PowerShell 的 Start-Process -Verb Print,它会弹出需要手动确认的对话框。
  • 路径必须写成 Python 原始字符串。
  • 判断成功与否看返回码:returncode: 0 表示任务已成功提交。真正的纸张输出仍需到打印机物理出纸口确认。

使用场景

  • 在 Windows 办公电脑上把生成的报表截图自动发送到指定打印机,无需手动打开图片
  • 图片存放在含中文的目录中,需要调用 mspaint 打印而不被路径乱码打断
  • 先列出系统可用打印机并确认默认打印机,再把一张图片打印到目标设备
  • 脚本需要确认打印任务是否成功提交,通过返回码判断并核对打印机出纸结果

适合人员

  • 在 Windows 上编写自动化脚本的开发者:需要在流程末尾把图片结果真实打印出来
  • 维护批量出图与报表工具的运维工程师:常遇到中文路径打印失败,需要稳定方案
  • 用 Python 驱动 Windows 外部程序的集成开发者:需要绕过 bash 编码坑直接调用 mspaint
  • 为团队搭建内部打印自动化工具的工程师:需要在无人值守场景下确认任务成功提交