Odpowiedzi:
Jest to łatwe, ponieważ pdftk 1.44 dodał shuffle
operację umożliwiającą różne transformacje na stronach nieparzystych i parzystych (między innymi zastosowaniami).
Jeśli masz starszą wersję pdftk, możesz użyć tego skryptu Python z biblioteką PyPdf . (Ostrzeżenie wpisane bezpośrednio w przeglądarce).
#!/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)
W pdftk
wersji 1.45 (6 grudnia 2012 r.) Lub nowszej użyj:
pdftk A=MyPdfFile.pdf shuffle AoddWest AevenEast output MyRotatedFile.pdf
Jeśli masz pdftk
wersję 1.44 ( dzięki Gillesowi za zwrócenie na to uwagi! ), Możesz użyć:
pdftk A=MyPdfFile.pdf shuffle AoddL AevenR output MyRotatedFile.pdf
Niektóre podobne przykłady przypadków opisano w man pdftk
(przynajmniej w najnowszych wersjach).
Jako ulepszenie odpowiedzi Gillesa :
#!/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"))
Gdy program akceptuje argumenty wiersza polecenia pliku wejściowego i wyjściowego: python script.py <inputFileName> <outputFileName>
pdftk in.pdf cat 1-endwest output out.pdf
tj.west
ZamiastW
lubsouth
zamiastS
...