#! /usr/bin/env python3 # -*- coding: utf-8 -*- #============================================================================== # unirpdf: permite unir los pdf contenidos en un directorio mediante pdftk #------------------------------------------------------------------------------ # FJA - fja@neocipres.com Enero de 2020 (py3 --> 10/07/23) #============================================================================== import fnmatch import os import sys import subprocess __uso__ = ''' ============================= unirpdf [archivo salida] =============================\n''' raiz = "." patron = "*.pdf" aout = "" pdfs = "" if len(sys.argv) == 2: if sys.argv[1] == '-h': print(__uso__) sys.exit(0) else: aout = sys.argv[1] elif len(sys.argv) == 1: aout = "out.pdf" else: print(__uso__) sys.exit(0) if aout.rfind(".") != -1: pos = aout.rfind(".") aout = aout[:pos] aout = aout + ".pdf" else: aout = aout + ".pdf" try: subprocess.call("clear") n = 0 for r, d, f in os.walk(raiz): f.sort() for archivo in fnmatch.filter(f, patron): pdf = os.path.join(r, archivo) print("\t", os.path.abspath(pdf)) pdfs = pdfs + " " + pdf n += 1 cmd = "pdftk" + pdfs + " cat output " + aout #os.system(cmd) #subprocess.call(cmd, shell=True) proc = subprocess.run(cmd, shell=True) print("\n\tSalida: ", proc.stdout) print("\n\t %s pdf unidos en el archivo %s\n" % (str(n), aout)) except Exception as e: print('\n\t') print('\t Error: ', e, sys.exc_info()[0], '\n') print("\n\tError: ", proc.stderr) print(__uso__)