如何修改enscript脚本使PDF页码从600开始编号?
解决enscript生成起始页码为600的PDF戳记问题
方法一:用enscript内置参数指定起始页码
原脚本的核心问题是没利用enscript的起始页码参数,错误修改循环seq范围无效。直接给enscript添加-N 600参数即可指定页码从600开始,同时调整seq生成与原PDF匹配的300页空行:
enscript -F Times-Roman16 -L1 -N 600 -b'||$% ' -o- < <(for i in $(seq 1 300); do echo; done) | ps2pdf - | pdftk 'original.pdf' multistamp - output numbered.pdf
-N 600(完整写法--start-number=600)是enscript官方参数,用于设置页码起始值,$%变量会从600开始逐页递增- 原脚本
seq 1 900生成的戳记页数远超原PDF的300页,改成seq 1 300确保戳记与原PDF页数完全匹配
方法二:用awk直接生成指定页码文本(兼容旧版enscript)
如果你的enscript版本不支持-N参数,可直接用awk生成600到899的页码文本,再交给enscript排版:
awk 'BEGIN{for(i=600;i<=899;i++) print "||"i" "}' | enscript -F Times-Roman16 -L1 -o- | ps2pdf - | pdftk 'original.pdf' multistamp - output numbered.pdf
这个方法绕过enscript内置页码变量,直接生成目标页码文本,确保起始值准确。
内容的提问来源于stack exchange,提问作者Strider22
相关产品推荐
相关产品推荐

