मेरे पास एक पीडीएफ फाइल है जिसे एक पुस्तिका प्रारूप में बनाया गया था। यह परिदृश्य अभिविन्यास में ए 4 पेपर पर मुद्रित करने के लिए है; यहां पीडीएफ में दो पृष्ठ हैं, जो वास्तविक पुस्तक में चार पृष्ठों के अनुरूप होना चाहिए।
-------------------------------
| | |
| | |
| | |
| (1) | (3) |
| | |
| | |
| | |
-------------------------------
-------------------------------
| | |
| | |
| | |
| (4) | (2) |
| | |
| | |
| | |
-------------------------------
ब्रैकेटेड संख्याएँ अलग-अलग पृष्ठों के क्रम के अनुरूप हैं।
मुझे पता है कि linux पर सभी प्रकार की कमांड्स (pdfbook, pdfnup, आदि) हैं (जो शायद पहले इस बुकलेट को बनाने के लिए उपयोग की जाती थीं)। मैं इसे 'अनबुक' कैसे कर सकता हूं --- अर्थात, मैं इसमें से एक पीडीएफ डॉक्यूमेंट बनाना चाहता हूं, जहां अंतिम उत्पाद का प्रत्येक अलग-अलग पेज पीडीएफ का एक अलग-अलग पेज है, जो सामान्य तरीके से ऑर्डर किया गया है।
संपादित करें
गिलेस के लिए धन्यवाद, मैं निम्नलिखित कोड का उपयोग करने में कामयाब रहा:
import copy, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
second_half = []
for i in range(0,input.getNumPages()):
p = input.getPage(i)
q = copy.copy(p)
print >> sys.stderr, 'splitting page',i
print >> sys.stderr, '\tlowerLeft:',p.mediaBox.lowerLeft
print >> sys.stderr, '\tupperRight:',p.mediaBox.upperRight
p.mediaBox.upperRight = (ur[0], (bl[1]+ur[1])/2)
p.mediaBox.lowerLeft = bl
q.mediaBox.upperRight = ur
q.mediaBox.lowerLeft = (bl[0], (bl[1]+ur[1])/2)
if i % 2 == 0:
output.addPage(p)
qold = q
else:
output.addPage(q)
output.addPage(qold)
output.addPage(p)
output.write(sys.stdout)