如何通过PowerShell脚本设置爱普生收据打印机默认纸张尺寸
解决EPSON TM-T20IIIL收据打印机自定义纸张尺寸的PowerShell脚本方案
因为Set-PrintConfiguration的-PaperSize参数仅支持标准纸张枚举值(如A4、Letter),无法直接设置卷式收据打印机的自定义长尺寸纸张,可通过以下两种方法实现:
方法一:通过WMI直接修改打印机默认纸张参数
该方法无需创建自定义表单,直接修改打印机的默认纸张尺寸(单位为百分之一毫米):
# 指定目标打印机名称 $printerName = "EPSON TM-T20IIIL Receipt" # 获取打印机的WMI对象 $printer = Get-WmiObject -Class Win32_Printer | Where-Object { $_.Name -eq $printerName } # 定义目标纸张尺寸:80mm(转为8000)×3276mm(转为327600) $targetWidth = 8000 $targetLength = 327600 # 构建打印机配置参数 $configParams = $printer.GetMethodParameters("SetPrinter") $configParams["DefaultPaperSize"] = $printer.DefaultPaperSize $configParams["DefaultPaperSize"].Width = $targetWidth $configParams["DefaultPaperSize"].Length = $targetLength # 应用配置 $printer.InvokeMethod("SetPrinter", $configParams, $null)
方法二:创建自定义表单并设置打印机使用该表单
先创建匹配目标尺寸的自定义打印表单,再将打印机默认纸张切换为该表单:
# 配置参数 $printerName = "EPSON TM-T20IIIL Receipt" $customFormName = "Roll Paper 80x3276mm" # 检查表单是否已存在,不存在则创建(需管理员权限) if (-not (Get-PrinterForm | Where-Object { $_.Name -eq $customFormName })) { Add-PrinterForm -Name $customFormName ` -PaperSize Custom ` -Width 8000 ` -Height 327600 ` -MarginLeft 0 -MarginRight 0 -MarginTop 0 -MarginBottom 0 } # 设置打印机默认使用该自定义表单 Set-PrintConfiguration -PrinterName $printerName -PaperSize $customFormName
注意事项
- 脚本需以管理员权限运行,否则无法修改打印机配置或创建表单
- 确保打印机驱动支持自定义长尺寸纸张(EPSON TM-T20IIIL默认支持卷纸自定义尺寸)
- 若方法二执行报错,可先通过
Get-PrinterForm命令检查目标表单是否已存在,避免重复创建
内容的提问来源于stack exchange,提问作者svalaie
相关产品推荐
相关产品推荐

