在PDF文件中,如何将偶数页的页面旋转90度,奇数页的页面旋转-90度?
和PDFtk,我所知道的就是旋转单个页面:
pdftk in.pdf cat 1W output out.pdf
并旋转所有页面:
pdftk in.pdf cat 1-endW output out.pdf
答案1
有pdftk
版本1.45(2012年12月6日)或稍后,使用:
pdftk A=MyPdfFile.pdf shuffle AoddWest AevenEast output MyRotatedFile.pdf
如果你有pdftk
版本1.44(感谢吉尔斯指出这一点!), 您可以使用:
pdftk A=MyPdfFile.pdf shuffle AoddL AevenR output MyRotatedFile.pdf
man pdftk
(至少在最近的版本中) 描述了一些类似的示例案例。
答案2
这很容易,因为 pdftk 1.44 添加了shuffle
允许在奇数页和偶数页上进行不同转换的操作(以及其他用途)。
如果您有旧版本的 pdftk,您可以将此 Python 脚本与pypdf图书馆。 (警告,直接在浏览器中输入。)
#!/usr/bin/env python
import sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
for i in range(0,input.getNumPages()):
output.addPage(input.getPage(i).rotateClockwise(90 if i%2==0 else -90))
output.write(sys.stdout)
答案3
作为改进吉尔斯的回答:
#!/usr/bin/env python
import sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(open(sys.argv[1], "rb"))
output = PdfFileWriter()
for i in range(0,input.getNumPages()):
output.addPage(input.getPage(i).rotateClockwise(90 if i%2==0 else -90))
output.write(open(sys.argv[2], "wb"))
其中程序接受输入和输出文件的命令行参数:python script.py <inputFileName> <outputFileName>