ฉันสงสัยในไฟล์ pdf, วิธีหมุนหน้า pdf: 90 องศาสำหรับหน้าคู่และ -90 องศาสำหรับหน้าคี่?
โดย pdftk ทั้งหมดที่ฉันรู้คือการหมุนหน้าโดยและหมุนหน้าทั้งหมดpdftk in.pdf cat 1W output out.pdf
pdftk in.pdf cat 1-endW output out.pdf
ขอบคุณ!
ฉันสงสัยในไฟล์ pdf, วิธีหมุนหน้า pdf: 90 องศาสำหรับหน้าคู่และ -90 องศาสำหรับหน้าคี่?
โดย pdftk ทั้งหมดที่ฉันรู้คือการหมุนหน้าโดยและหมุนหน้าทั้งหมดpdftk in.pdf cat 1W output out.pdf
pdftk in.pdf cat 1-endW output out.pdf
ขอบคุณ!
คำตอบ:
สิ่งนี้เป็นเรื่องง่ายเนื่องจาก 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)
ด้วย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
(อย่างน้อยในรุ่นล่าสุด)
เป็นการปรับปรุงคำตอบของ 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>
pdftk in.pdf cat 1-endwest output out.pdf
คือwest
แทนที่จะเป็นW
หรือsouth
แทนที่จะเป็นS
...