当我扫描横向文档时,输出的 PDF 文件是纵向的,因此所有 PDF 查看器都以纵向显示扫描文档。
如何从命令行将 PDF 文件旋转 90 度?
我尝试搜索并找到了一堆解决方案,但我很难找到一个看起来像权威的解决方案[1],它使用稳定而强大的 Linux/Unix 工具。
脚注 [1]
例如,以下是我发现的一些随意解决方案的示例:
- “只需使用 Adobe Acrobat Pro 旋转文件,然后保存文件”
- “使用 pdfjam”
- “使用PDFtk”
- “使用来自 Poppler 的 ${PROGRAM_NAME}”
- “使用 ImageMagick 的转换”——但随后所有的评论都非常负面,并指出“图像质量被破坏了”
- “在 PDF 查看器中打开文件,然后旋转,然后使用 PDF 打印机(例如 CutePDF 或 PDF 打印机等)进行打印”
- “使用 ${PROGRAM_NAME}”,然后我搜索“${PROGRAM_NAME}”,并且有一些关于“Fedora 由于许可问题删除了 ${PROGRAM_NAME}”
答案1
使用PDFtk。
对于顺时针旋转:
pdftk input.pdf cat 1-endeast output output.pdf
对于逆时针旋转:
pdftk input.pdf cat 1-endwest output output.pdf
关于在Fedora上安装PDFtk,我找到了这些链接:
答案2
我只是偶然发现了这个线程,发现还没有提到好的解决方案。我发现(至少在 Debian 和 Ubuntu 上)pdfjam 带有以下命令:
pdf90 input.pdf
pdf180 input.pdf
pdf270 input.pdf
我认为这是最简单、最快的方法。这些是正确使用 pdfjam 命令的脚本。顺便提一句。 pdfjam 是一个虚拟包,附带texlive-extra-utils
更新
上述命令从pdfjam
3.02 版本开始被删除,并且是现在可用(但未维护)在包中pdfjam-extras
。使用的直接命令pdfjam
(如评论中所述)分别是:
pdfjam --landscape --angle 90 input.pdf
pdfjam --angle 180 input.pdf
pdfjam --landscape --angle 270 input.pdf
答案3
在 Linux Mint 18.3 中(我相信其他 Debian 派生发行版也是如此),您有一个简单的命令行工具,名为qpdf
。
您可以使用:qpdf in.pdf out.pdf --rotate=[+|-]angle[:page-range]
。
从文档中:
--rotate=[+|-]角度[:页面范围]
对指定页面应用旋转。选项值的页面范围部分与第 3.5 节“页面选择选项”中的页面范围具有相同的格式。如果省略页面范围,则旋转将应用于所有页面。参数的角度部分可以是 90、180 或 270。如果前面有 + 或 -,则将在指定页面的原始旋转中添加或减去角度。否则,页面的旋转将设置为精确值。例如,该命令
qpdf in.pdf out.pdf --rotate=+90:2,4,6 --rotate=180:7-8
会将第 2、4 和 6 页从其原始旋转方向顺时针旋转 90 度,并强制将第 7 至 9 页旋转到 180 度,而不管其原始旋转方向如何,并且该命令qpdf in.pdf out.pdf --rotate=180
会将所有页面旋转 180 度。
在您的情况下,要将 PDF 中的所有页面顺时针旋转 90 度,您可以执行以下操作:
qpdf --rotate=+90 in.pdf out.pdf
答案4
qpdf
效果很好并且是超级快!:
在 Ubuntu 20.04 上测试qpdf 版本 8.0.2(请参阅 参考资料qpdf --version
),但我怀疑它在 Ubuntu 18.04、16.04 和 14.04 上也能正常工作,因为我qpdf
也在所有这些系统上以其他方式使用过。
sudo apt update
sudo apt install qpdf
# Rotate in.pdf +90 deg and save as out.pdf
qpdf --rotate=+90 in.pdf out.pdf
# Rotate in.pdf -90 deg and save as out.pdf
qpdf --rotate=-90 in.pdf out.pdf
# Rotate in.pdf +/-180 deg and save as out.pdf
qpdf --rotate=+180 in.pdf out.pdf
手册页(man qpdf
) 展示非常很少,但它们确实表明了很重要。这是最后的关键部分(强调):
有关 qpdf 选项的摘要,请运行
qpdf --help
。 A完整手册可以找到/usr/share/doc/qpdf/qpdf-manual.html或者/usr/share/doc/qpdf/qpdf-manual.pdf。
因此,请阅读存储在您计算机本地的完整手册!这是链接。将它们复制并粘贴到浏览器的地址栏中以打开它们。您还可以在此处在线查看手册:https://qpdf.readthedocs.io/。
- Linux 上的本地 QPDF 手册位置:
- QPDF PDF 格式的用户手册:文件:///usr/share/doc/qpdf/qpdf-manual.pdf
- HTML 格式的 QPDF 用户手册:文件:///usr/share/doc/qpdf/qpdf-manual.html
要查看帮助选项,请运行qpdf --help
。或者,更好的是,通过管道传输到less
:
qpdf --help | less -RFX
然后您可以按/
并搜索--rotate
。以下是帮助页面的片段:
--rotate=[+|-]angle[:page-range] rotate each specified page 90, 180, or 270 degrees; rotate all pages if no page range is given
和:
该
--rotate
标志可用于指定页面以将页面旋转 90、180 或 270 度。页面范围的指定格式与--pages
选项相同,如下所述。重复该选项以旋转多组页面。如果角度前面有+
或-
,则会在原始旋转中添加或减去该角度。否则,旋转角度将明确设置为给定值。
参考:
有关的
- 我的答案:如何按页码或页码范围提取PDF页面