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

如何让GhostScript在调整页面尺寸时保持页面方向不变?

解决GhostScript中-dPDFFitPage导致页面旋转的问题

问题背景

处理学生作业PDF时,需要通过GhostScript统一页面尺寸(适配Xournal++编辑需求)并压缩文件,但使用-dPDFFitPage时部分页面被意外旋转,添加-dAutoRotatePages=/None也无法解决。

解决方案

核心是通过-dFIXEDMEDIA强制固定页面尺寸,结合-dAutoRotatePages=/None禁用自动旋转,让-dPDFFitPage仅做尺寸适配而非旋转页面。

方案1:固定宽度为1920点(保持A4比例)

使用以下命令,明确指定页面宽高并强制媒体尺寸:

gs -sDEVICE=pdfwrite \
    -dDEVICEWIDTHPOINTS=1920 \
    -dDEVICEHEIGHTPOINTS=2715 \
    -dFIXEDMEDIA \
    -dPDFFitPage \
    -dAutoRotatePages=/None \
    -dCompatibilityLevel=1.4 \
    -dDownsampleColorImages=true \
    -dColorImageResolution=150 \
    -dNOPAUSE -dQUIET -dBATCH \
    -sOutputFile=../output.pdf input.pdf

参数说明:

  • -dFIXEDMEDIA:强制使用指定的页面尺寸,禁止GhostScript根据内容自动调整媒体大小
  • -dDEVICEWIDTHPOINTS=1920 & -dDEVICEHEIGHTPOINTS=2715:按A4宽高比例(210:297)计算的固定尺寸,确保内容缩放时比例正确
  • -dAutoRotatePages=/None:彻底禁用页面自动旋转逻辑
  • -dPDFFitPage:将内容适配到指定的固定页面尺寸,仅缩放不旋转

方案2:直接使用A4纸张尺寸

如果目标是统一为标准A4尺寸,可简化为:

gs -sDEVICE=pdfwrite \
    -sPAPERSIZE=a4 \
    -dFIXEDMEDIA \
    -dPDFFitPage \
    -dAutoRotatePages=/None \
    -dCompatibilityLevel=1.4 \
    -dDownsampleColorImages=true \
    -dColorImageResolution=150 \
    -dNOPAUSE -dQUIET -dBATCH \
    -sOutputFile=../output.pdf input.pdf

原命令问题分析

之前的命令同时使用-sPAPERSIZE=a4和-dDEVICEWIDTHPOINTS=1920,导致GhostScript对媒体尺寸的判断冲突;且未添加-dFIXEDMEDIA,程序仍会根据内容尝试调整页面方向,最终触发意外旋转。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 01:02:42