鉴于PDF文档,如何更改单个页面方向?
我正在使用最新版本的Ghostscript。
答案 0 :(得分:35)
为什么 需要 使用Ghostscript?使用命令行上运行的另一个免费开源软件工具是否可以接受,例如pdftk
?
无论如何,这里是如何使用Ghostscript旋转页面。但是,这可能不适用于您的意图,因为您不能强制仅针对单个页面的某个方向。它依赖于内部Ghostscript算法,该算法尝试自动旋转页面,具体取决于PDF内的文本流:
* -dAutoRotatePages=/None
- 保留每页的方向;
* -dAutoRotatePages=/All
- 根据“多数决定”的类型轮换所有页面(或无页面);
* -dAutoRotatePages=/PageByPage
- 单独自动旋转页面。
将其中一个添加到您正在使用的Ghostscript命令行中。
如果页面上有 没有 文本(或者如果自动页面旋转设置为/None
),则Ghostscript使用{{1设置。您可以使用setpagedevice
开关在Ghostscript命令行上传递此类setpagedevice
参数,如下所示:
* -c
- 设置风景方向;
* -c "<</Orientation 3>> setpagedevice"
- 设置人像方向;
* -c "<</Orientation 0>> setpagedevice"
- 设置颠倒方向;
* -c "<</Orientation 2>> setpagedevice"
- 设置 seascape 方向。
当提取页面时,您可能需要为每个页面设置方向。我不认为将它们合并回统一文档时会起作用(我从未测试过这个)。
在任何情况下,我都建议您同时查看-c "<</Orientation 1>> setpagedevice"
(也适用于Windows)。它是一个可以从PDF旋转页面的命令行工具,等等。比Ghostscript更容易使用,用于您的声明目的,也更快。特别是,它可以旋转PDF文档中的单个页面,而不会触及其他页面。的 实施例 强>
pdftk
此命令将输出第1,2和3页以及第5页,第6页......最后一次未旋转,但将第4页旋转90度(因此页眉朝向“西”)。 (但是,请注意,此命令可能会导致意外结果,具体取决于输入页面的原始方向:您应该通过运行pdftk A=in.pdf \
cat A1-3 A4west A5-end \
output out.pdf
检查输入PDF的所有页面的方向,然后检查pdfinfo -l 1000 input.pdf
输出的值:如果您看到与rot
不同的值,例如0
,90
和180
,则这些页面已经预先轮换。 ..)子>
有关详情,请参阅此处:http://www.accesspdf.com/pdftk/。
答案 1 :(得分:0)
-dNORANGEPAGESIZE对我来说最合适。