如何使用groff将groff格式文件转换为Letter尺寸的PDF?
解决groff转PDF时Letter纸张尺寸不生效的问题
你遇到的问题核心是ps2pdf默认会沿用系统默认的A4尺寸转换,哪怕groff输出的是Letter规格的PostScript文件。通过同时给groff和ps2pdf明确指定Letter参数,就能强制生成符合要求的PDF。
完整有效命令
groff -Tps -ms -dpaper=letter -P-pletter -P-l foo.ms | ps2pdf -sPAPERSIZE=letter - output.pdf
参数说明
-dpaper=letter:指定groff排版引擎使用Letter作为文档基础尺寸-P-pletter:传递参数给groff的PS输出设备,强制生成Letter尺寸的PostScript文件-P-l:设置文档纵向排版(不需要的话可以直接去掉)-sPAPERSIZE=letter:强制ps2pdf转换时采用Letter尺寸,覆盖其默认的A4设置
分步排查(可选)
如果依然有问题,可以拆分步骤定位原因:
- 先单独生成PostScript文件:
groff -Tps -ms -dpaper=letter -P-pletter -P-l foo.ms > foo.ps
- 检查PS文件的实际尺寸(转成临时PDF后查看):
ps2pdf foo.ps temp.pdf pdfinfo temp.pdf | grep "Page size"
- 如果这里显示Letter尺寸,说明groff输出没问题,只需确保ps2pdf命令加上
-sPAPERSIZE=letter即可 - 如果还是A4,可尝试将groff的
-P-pletter替换为-P-pusletter,部分系统对纸张参数的命名略有差异
内容的提问来源于stack exchange,提问作者null null
相关产品推荐
相关产品推荐

