web-dev-qa-db-ja.com

PDFページの回転:偶数ページでは90度、奇数ページでは-90度

私はpdfファイルで、pdfページをどのように回転させるのかと思っていました:偶数ページでは90度、奇数ページでは-90度?

Pdftkによって、私が知っているのは、pdftk in.pdf cat 1W output out.pdf、およびpdftk in.pdf cat 1-endW output out.pdf

ありがとう!

27
Tim

これはshuffle演算を追加したpdftk 1.44以降、奇数ページと偶数ページで(他の用途の中で)異なる変換を可能にするため、簡単です。

古いバージョンの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)

pdftkバージョン 1.45(2012年12月6日) 以降では、以下を使用します。

pdftk A=MyPdfFile.pdf shuffle AoddWest AevenEast output MyRotatedFile.pdf

pdftkバージョンがある場合 1.44それを指摘してくれたGillesに感謝! )、次のように使用できます。

pdftk A=MyPdfFile.pdf shuffle AoddL AevenR output MyRotatedFile.pdf

いくつかの類似した事例については、man pdftk(少なくとも最近のバージョンでは)。

30
rozcietrzewiacz

Gilles's 答えの改善として:

#!/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>

1
meinfr13nd