33 lines
674 B
Python
Executable File
33 lines
674 B
Python
Executable File
#!/usr/bin/env python
|
|
|
|
'''
|
|
usage: unspread.py my.pdf
|
|
|
|
Creates unspread.my.pdf
|
|
|
|
Chops each page in half, e.g. if a source were
|
|
created in booklet form, you could extract individual
|
|
pages.
|
|
'''
|
|
|
|
import sys
|
|
import os
|
|
|
|
from pdfrw import PdfReader, PdfWriter, PageMerge
|
|
|
|
|
|
def splitpage(src):
|
|
''' Split a page into two (left and right)
|
|
'''
|
|
# Yield a result for each half of the page
|
|
for x_pos in (0, 0.5):
|
|
yield PageMerge().add(src, viewrect=(x_pos, 0, 0.5, 1)).render()
|
|
|
|
|
|
inpfn, = sys.argv[1:]
|
|
outfn = 'unspread.' + os.path.basename(inpfn)
|
|
writer = PdfWriter(outfn)
|
|
for page in PdfReader(inpfn).pages:
|
|
writer.addpages(splitpage(page))
|
|
writer.write()
|