【问题标题】:How to change page orientation of PDF? (Ghostscript or PostScript solution needed)如何更改 PDF 的页面方向? (需要 Ghostscript 或 PostScript 解决方案)
【发布时间】:2011-03-06 14:37:30
【问题描述】:

给定一个 PDF 文档,如何更改单个页面的方向?

我正在使用最新版本的 Ghostscript。

【问题讨论】:

    标签: pdf postscript ghostscript


    【解决方案1】:

    没有什么比 -dNORANGEPAGESIZE 对我来说很完美。

    【讨论】:

    • 你必须详细说明答案!
    • 我不知道为什么,但这也为我修复了它,并结合 -dAutoRotatePages=/All 并使页面自动正确旋转
    【解决方案2】:

    您为什么要求使用 Ghostscript?是否可以使用在命令行上运行的其他免费开源软件工具,例如pdftk

    无论如何,这里是使用 Ghostscript 旋转页面的方法。但是,这可能不符合您的意图,因为您不能强制仅针对单个页面的特定方向。它依赖于内部的 Ghostscript 算法,该算法会根据 PDF 中的文本流自动尝试旋转页面:
    * -dAutoRotatePages=/None -- 保留每一页的方向;
    * -dAutoRotatePages=/All -- 根据一种“多数决定”旋转所有页面(或不旋转);
    * -dAutoRotatePages=/PageByPage -- 单独自动旋转页面。

    将其中之一添加到您正在使用的 Ghostscript 命令行中。

    如果页面上没有文本(或者如果将自动页面旋转设置为/None),则Ghostscript 使用setpagedevice 设置。您可以使用 -c 开关在 Ghostscript 命令行上传递此类 setpagedevice 参数,如下所示:
    * -c "<</Orientation 3>> setpagedevice" -- 设置横向方向;
    * -c "<</Orientation 0>> setpagedevice" -- 设置纵向方向;
    * -c "<</Orientation 2>> setpagedevice" -- 设置上下颠倒方向;
    * -c "<</Orientation 1>> setpagedevice" -- 设置海景方向。

    您可能需要在提取页面时为每个页面设置方向。我认为将它们合并回统一文档时它不会起作用(我从未测试过)。

    无论如何,我都建议您查看pdftk(也适用于Windows)。它是一个命令行工具,可以从 PDF 中旋转页面等等。比 Ghostscript 更容易用于您的既定目的,而且速度也更快。特别是,它可以旋转 PDF 文档中的单个页面,而其他页面保持不变。 示例:

    pdftk A=in.pdf           \
      cat A1-3 A4west A5-end \
      output out.pdf
    

    此命令将输出第 1、2 和 3 页以及第 5、6、... 页最后未旋转,但会将第 4 页旋转 90 度(因此页眉面向“西”)。 (但是,请注意,此命令可能会导致意外结果,具体取决于输入页面的原始方向:您应该通过运行pdfinfo -l 1000 input.pdf 检查输入 PDF 的所有页面的方向,然后检查值rot 的输出:如果您看到与 0 不同的值,例如 90180270,则这些页面已经预先旋转...)

    更多详情请看这里:http://www.accesspdf.com/pdftk/

    【讨论】:

    • 嗨,pipitas,我正在尝试这个,但它不起作用:gs -sDEVICE=pdfwrite -sOutputFile="page2rot.pdf" -dNOPAUSE -dEPSCrop -c "<</Orientation 0>> setpagedevice" -f "page2.pdf" -c quit你能看到这个问题吗?
    • @Pureferret:无法访问您的 "page2.pdf" 输入 PDF 我无法查看问题....
    • 我的意思是“特定的 .pdf 文件会改变事情吗”
    • @KurtPfeifle 在看到某些输入文件上的 pdftk 冻结后,我开始使用 ghostscript 处理各种事情。
    • @mirabilos:好的,我现在添加了一个示例。 (这个答案现在是否赢得了您的支持? :) 如果您查看我的其他答案,通常我会在我推荐的所有命令行工具中添加示例...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 1970-01-01
    • 2011-05-05
    相关资源
    最近更新 更多