我最近问this question about changing paper size并且有一个可以在大部分时间正确扩展的命令:
gs -sDEVICE=pdfwrite -sOutputFile= $outFile -dBATCH -dNOPAUSE -q -dDEVICEHEIGHTPOINTS=792 -dDEVICEWIDTHPOINTS=612 -dPDFFitPage -dFIXEDMEDIA $inFile
我们需要让它生成US Letter的输出页面。我有两个可以发布的问题文件。一个人需要额外的空白;另一个只需要一个非常小的重新缩放,但它会产生截然不同的输出。
first file是A4文件。该命令将其缩放到792的高度,宽度缩放到559.667。它的缩放比例准确,但我们需要在两侧或右侧都有空白。如何修改命令(或运行第二个命令)来执行此操作?
second file是8.52“x 11.02”。对于这个我得到一个549.127 x 709.8 pts的输出文件,我根本得不到它。 0.02“在我们的打印公差范围内,所以我们可以放手,但是a)我宁愿只有一个过程b)可能问题不是小的缩放调整,也许这对其他文件来说可能是一个问题。
答案 0 :(得分:1)
这些以及您之前提出的问题都与PDF文件中可用的无数Box有关,以及PDF处理器处理可用Box的各种方式。
第一份文件; pdfwrite的输出有一个612x792的MediaBox,但是[26.1662903 0 585.83374 792.0]的CropBox,当然不是Letter。它是将A4缩小到Letter并使Letter缩小区域缩小的结果。
如果删除CropBox(使用二进制编辑器)并在Acrobat中打开文件,您将看到白色空间均匀分布在页面的左右。
所以真的取决于你的印刷过程。您需要告诉该过程使用MediaBox并忽略CropBox,或者当CropBox与媒体不同时让它将CropBox置于媒体中心。
你的第二个文件有一个684x864的MediaBox,它是9.5x12英寸。但是它有一个TrimBox,它是[33.8027 33.7217 647.533 827.028],运算的算法是8.524x11.018英寸。
显然,Acrobat(或者你用来获取大小的任何东西)都使用的是TrimBox,而不是MediaBox。 Ghostscript默认使用MediaBox,如果你想让它使用不同的* Box,那么你就是这么说的。尝试将-dUseTrimBox
添加到命令行。请参阅我对您上一个问题的回答: - )