如何通过PowerShell与GhostScript横向打印PDF文件?
解决GhostScript通过PowerShell设置打印方向失败的问题
针对你用GhostScript打印服务器文件时无法设置横竖方向的问题,以下是修正后的命令和关键注意事项:
核心问题分析
你的尝试中忽略了两个关键细节:
- 未添加
-dFIXEDMEDIA强制锁定纸张方向,导致文档自身的页面设置覆盖了命令参数 setpagedevice的参数顺序或配套设置不正确
正确命令示例
横向打印命令
& "C:\Program Files\gs\gs9.27\bin\gswin64c.exe" -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -dNumCopies=1 -sDEVICE=mswinpr2 -dFIXEDMEDIA -c "<< /Orientation 3 >> setpagedevice" -sOutputFile="\\Spool\$printer" "$Filepath$Document"
纵向打印命令
& "C:\Program Files\gs\gs9.27\bin\gswin64c.exe" -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -dNumCopies=1 -sDEVICE=mswinpr2 -dFIXEDMEDIA -c "<< /Orientation 0 >> setpagedevice" -sOutputFile="\\Spool\$printer" "$Filepath$Document"
关键参数说明
-dFIXEDMEDIA:强制使用命令中指定的纸张尺寸和方向,防止文档自带的页面设置覆盖/Orientation 3:代表横向打印;/Orientation 0代表纵向打印-c "<< /Orientation X >> setpagedevice":必须放在待打印文件路径之前,GhostScript按参数顺序执行命令- 确保打印机路径
\\Spool\$printer格式正确,PowerShell中变量$printer、$Filepath$Document需正确展开
额外排查点
如果仍未生效:
- 检查目标打印机的默认打印方向设置,避免打印机自身默认值强制覆盖命令参数
- 若之前出现打印对话框,可添加
-dNOQUERY参数跳过对话框,直接使用命令指定的设置
内容的提问来源于stack exchange,提问作者myjunk316
相关产品推荐
相关产品推荐

