输出 pdf ghostscript 中的纸张尺寸不合适
paper size not proper in output pdf ghostscript
我尝试通过 ghostscript 命令行调整 pdf 的大小,但输出 pdf 纸张大小不符合我使用命令 gswin64c.exe -o E:\output.pdf -dBATCH -dNOPAUSE -dDOPDFMARKS -sDEVICE=pdfwrite 的输入-dFIXEDMEDIA -dPDFFitPage -dDEVICEWIDTHPOINTS=396 -dDEVICEHEIGHTPOINTS=612 -f E:\comic.pdf
输出 pdf 大小为 396 x 604.653 pts
你能帮我解决这个问题吗?
答案很简单,您正试图将 PDF 水平和垂直缩放不同的量,PDFFitPage 开关不会那样做。
事实上,在 Ghostscript 中根本没有用于执行此操作的固定选项,您需要编写一个 PostScript 程序来执行此操作。
如果我们查看您的原始文件,该页面的 MediaBox 为:/MediaBox[0.0 0.0 495.12 756.0],因此(如您所说)为 495.12 x 756 点。您坚持输出为 396x612。
所以x比例因子为396/495.12 = 0.7998,y比例因子为612/756 = 0.809。因此,为了同构缩放,我们需要使用 0.7998 的缩放因子。 756 * 0.7998 = 604.6488。舍入误差可能解释了细微差异。
我尝试通过 ghostscript 命令行调整 pdf 的大小,但输出 pdf 纸张大小不符合我使用命令 gswin64c.exe -o E:\output.pdf -dBATCH -dNOPAUSE -dDOPDFMARKS -sDEVICE=pdfwrite 的输入-dFIXEDMEDIA -dPDFFitPage -dDEVICEWIDTHPOINTS=396 -dDEVICEHEIGHTPOINTS=612 -f E:\comic.pdf
输出 pdf 大小为 396 x 604.653 pts
你能帮我解决这个问题吗?
答案很简单,您正试图将 PDF 水平和垂直缩放不同的量,PDFFitPage 开关不会那样做。
事实上,在 Ghostscript 中根本没有用于执行此操作的固定选项,您需要编写一个 PostScript 程序来执行此操作。
如果我们查看您的原始文件,该页面的 MediaBox 为:/MediaBox[0.0 0.0 495.12 756.0],因此(如您所说)为 495.12 x 756 点。您坚持输出为 396x612。
所以x比例因子为396/495.12 = 0.7998,y比例因子为612/756 = 0.809。因此,为了同构缩放,我们需要使用 0.7998 的缩放因子。 756 * 0.7998 = 604.6488。舍入误差可能解释了细微差异。