求助:如何通过GhostScript或系统预装命令将两个A5 PDF合并为单页A4横向PDF以制作缝纫小册子
求助:如何通过GhostScript或系统预装命令将两个A5 PDF合并为单页A4横向PDF以制作缝纫小册子
嘿Claudio,太懂这种折腾小册子排版的烦躁了——本来搞页码顺序就够费神,还要装一堆陌生工具确实闹心。其实只用GhostScript就能搞定把两个A5页面合并成横向A4单页的需求,你之前的命令只是参数细节没调对而已!
先给你修正后的可行命令,我再解释下问题出在哪:
你之前的GhostScript命令里,PageOffset的单位错了!GhostScript的-g参数用的是1/10点(比如-g8420x5950对应横向A4的尺寸),但setpagedevice里的PageOffset是按整点数算的,所以右边页面的偏移量应该是4210(A4宽度的一半,8420/2),而不是421——这就是为什么两个页面被打到不同页的原因!
正确的GhostScript命令
gs -o combined-a4.pdf -sDEVICE=pdfwrite -g8420x5950 -c "<</PageOffset[0 0]>> setpagedevice" -f left-a5.pdf -c "<</PageOffset[4210 0]>> setpagedevice" -f right-a5.pdf
我给你拆解下关键参数:
-g8420x5950:指定输出页面为横向A4(8420对应297mm宽度,5950对应210mm高度,单位是1/10点)<</PageOffset[0 0]>>:把左侧A5页面放在A4的左半部分<</PageOffset[4210 0]>>:把右侧A5页面偏移到A4的右半部分(正好是宽度的一半)-dPDFFitPage(可选):如果担心A5页面尺寸有偏差,可以加上这个参数,确保页面完全适配偏移区域:
gs -o combined-a4.pdf -sDEVICE=pdfwrite -g8420x5950 -dPDFFitPage -c "<</PageOffset[0 0]>> setpagedevice" -f left-a5.pdf -c "<</PageOffset[4210 0]>> setpagedevice" -f right-a5.pdf
系统预装工具的替代方案
如果你的Slackware默认装了ImageMagick,用montage会更直观:
montage left-a5.pdf right-a5.pdf -geometry 100% -page A4 -orientation landscape combined-a4.pdf
这个命令直接把两个A5页面并排放在横向A4上,-geometry 100%保持原尺寸,不用纠结偏移量。
适配你的小册子工作流
你可以把这个合并逻辑整合到现有bash脚本里:先按小册子需要的页码顺序生成单页A5 PDF,然后每两个一组用上面的GS命令合并成A4横向页,最后用pdfunite把所有A4页拼成最终的小册子PDF——这样打印时直接选打印机的“小册子”模式就能自动完成双面排版了。
备注:内容来源于stack exchange,提问作者Claudio Chicco
相关产品推荐
相关产品推荐

