You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ghostscript转换PDF为图片时如何阻止自动旋转?

Ghostscript转换PDF到PNG时禁用自动旋转

问题背景

使用Ghostscript 10.02.0执行以下命令转换PDF到PNG:
gs -o ./test.png -dNumRenderingThreads=1 -sDEVICE=png16m -r72 -dLastPage=1 -dFitPage -dDEVICEWIDTHPOINTS=125 -dDEVICEHEIGHTPOINTS=100 -dUseTrimBox -dInterpolateControl=-1 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 ./text.pdf
转换可完成,但当PDF高度大于dDEVICEHEIGHTPOINTS时,Ghostscript会自动旋转图片。确认是-dFitPage导致的,但需要将任意尺寸PDF缩放到指定维度且保留原有方向。已知-dAutoRotatePages=false仅适用于PDF生成场景,不适用于图片转换。

临时 workaround:将目标宽高设为相同值,Ghostscript会保留PDF原有方向适配。

可行解决方案

1. 命令行参数直接禁用旋转(推荐)

放弃-dFitPage,改用PostScript命令强制固定页面方向并按比例缩放:

gs -o ./test.png -dNumRenderingThreads=1 -sDEVICE=png16m -r72 -dLastPage=1 -dUseTrimBox -dInterpolateControl=-1 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dFIXEDMEDIA -dDEVICEWIDTHPOINTS=125 -dDEVICEHEIGHTPOINTS=100 -c "<</PageSize [125 100] /AutoRotatePages /None>> setpagedevice" -f ./text.pdf

关键参数说明:

  • -dFIXEDMEDIA:锁定目标介质尺寸,不允许自动调整
  • /AutoRotatePages /None:强制禁用页面旋转逻辑
  • 无需-dFitPage,Ghostscript会自动按比例将PDF缩放到指定的PageSize内,同时保持原有方向

2. 修改pdf_main.ps(全局修改,不推荐)

若必须修改源码文件:

  • 找到pdf_main.ps中处理FitPage适配的代码段,通常是判断页面与目标介质宽高比差异后触发旋转的逻辑
  • 注释或删除触发旋转的分支代码,强制仅执行缩放操作,不改变页面方向
  • 注意:此修改会影响所有Ghostscript的PDF处理任务,风险较高,仅在无其他方案时考虑

内容的提问来源于stack exchange,提问作者JamesS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 18:32:57