#!/usr/bin/python from sys import argv, exit import os import getopt import tempfile options, args = getopt.gnu_getopt(argv[1:], 'o:') if len(args) >= 1: outfile = '' for f in args: if not os.path.exists(f): print "Error: input file '%s' does not exist" % f exit(-1) for option in options: if option[0] == '-o': outfile = os.path.abspath(option[1]) if outfile == '': print "Error: no output file name given" exit(-1) tmpdir = tempfile.mkdtemp() texfile = open(os.path.join(tmpdir, 'tmp.tex'), 'w') texfile.write("""\\documentclass{article} \\usepackage{pdfpages} \\begin{document}""") for infile in args: f = os.path.abspath(infile) texfile.write("\\includepdf[pages=-,fitpaper=true]{%s}" % f) texfile.write("\\end{document}") texfile.close() os.chdir(os.path.dirname(texfile.name)) os.spawnvp(os.P_WAIT, 'pdflatex', ['pdflatex', texfile.name]) os.rename(os.path.join(tmpdir, 'tmp.pdf'), outfile) for f in os.listdir(tmpdir): os.unlink(f) os.removedirs(tmpdir) else: print 'usage: pdfmerge -o OUTPUT INPUTs'