paper-TPCTC-PocketData/pytex/bin/rotateandstitch

34 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python
from optparse import OptionParser
import sys, subprocess, time, re, shlex
parser = OptionParser()
(options, args) = parser.parse_args()
pagesize = re.compile(r'Page size:\s+(\d+)\s+x\s+(\d+)')
files = []
outpdf = args.pop(0)
for arg in args:
output = subprocess.Popen("pdfinfo \"%s\"" % (arg), shell=True, stdout=subprocess.PIPE).communicate()[0]
pagematch = pagesize.search(output)
if pagematch == None:
continue
if pagematch.group(1) < pagematch.group(2):
files.append(arg)
continue
infile = arg
outfile = re.sub(r'.pdf', '.rotate.pdf', infile)
output = subprocess.Popen("pdftk \"%s\" cat 1-endW output \"%s\"" % (infile, outfile), shell=True, stdout=subprocess.PIPE).communicate()[0]
files.append(outfile)
def order(pdf):
nummatch = re.search(r'(\d+)', pdf)
if nummatch == None:
return 0
else:
return int(nummatch.group(1))
files = sorted(files, key=order)
output = subprocess.Popen("pdftk %s cat output \"%s\"" % (' '.join(['"%s"' % (file) for file in files]), outpdf), shell=True, stdout=subprocess.PIPE).communicate()[0]