หมุนหน้า pdf: 90 องศาสำหรับหน้าคู่และ -90 องศาสำหรับหน้าคี่


27

ฉันสงสัยในไฟล์ pdf, วิธีหมุนหน้า pdf: 90 องศาสำหรับหน้าคู่และ -90 องศาสำหรับหน้าคี่?

โดย pdftk ทั้งหมดที่ฉันรู้คือการหมุนหน้าโดยและหมุนหน้าทั้งหมดpdftk in.pdf cat 1W output out.pdfpdftk in.pdf cat 1-endW output out.pdf

ขอบคุณ!


FYI: สำหรับรุ่น pdftk ที่ใหม่กว่าไวยากรณ์คือ: pdftk in.pdf cat 1-endwest output out.pdfคือwestแทนที่จะเป็นWหรือsouthแทนที่จะเป็นS...
colidyre

คำตอบ:


11

สิ่งนี้เป็นเรื่องง่ายเนื่องจาก 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)

30

ด้วยpdftkรุ่น1.45 (6 ธันวาคม 2012)หรือในภายหลังใช้:

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(อย่างน้อยในรุ่นล่าสุด)


1

เป็นการปรับปรุงคำตอบของ Gilles :

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.